Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MATLAB强化学习 DQN 算法

MATLAB强化学习 DQN 算法

作者头像
万木逢春
发布于 2019-11-18 14:15:56
发布于 2019-11-18 14:15:56
4.6K1
举报
文章被收录于专栏:帮你学MatLab帮你学MatLab

强化学习 DQN 算法将状态和动作当成神经网络的输入, 然后经过神经网络分析后得到动作的 Q 值, 这样不需要在表格中记录 Q 值, 而是直接使用神经网络生成 Q 值.也可以只输入状态值, 输出所有的动作值, 然后按照 Q learning 的原则, 直接选择拥有最大值的动作当做下一步要做的动作.

%% 读取环境

ccc

env = rlPredefinedEnv("CartPole-Discrete");

rng(0)

%% 初始化agent

statePath = [

imageInputLayer([4 1 1],'Normalization','none','Name','state')

fullyConnectedLayer(24,'Name','CriticStateFC1')

reluLayer('Name','CriticRelu1')

fullyConnectedLayer(24,'Name','CriticStateFC2')];

actionPath = [

imageInputLayer([1 1 1],'Normalization','none','Name','action')

fullyConnectedLayer(24,'Name','CriticActionFC1')];

commonPath = [

additionLayer(2,'Name','add')

reluLayer('Name','CriticCommonRelu')

fullyConnectedLayer(1,'Name','output')];

criticNetwork = layerGraph(statePath);

criticNetwork = addLayers(criticNetwork, actionPath);

criticNetwork = addLayers(criticNetwork, commonPath);

criticNetwork = connectLayers(criticNetwork,'CriticStateFC2','add/in1');

criticNetwork = connectLayers(criticNetwork,'CriticActionFC1','add/in2');

figure

plot(criticNetwork)

criticOpts = rlRepresentationOptions('LearnRate',0.01,'GradientThreshold',1);

obsInfo = getObservationInfo(env);

actInfo = getActionInfo(env);

critic = rlRepresentation(criticNetwork,obsInfo,actInfo,'Observation',{'state'},'Action',{'action'},criticOpts);

agentOpts = rlDQNAgentOptions(...

'UseDoubleDQN',false, ...

'TargetUpdateMethod',"periodic", ...

'TargetUpdateFrequency',4, ...

'ExperienceBufferLength',100000, ...

'DiscountFactor',0.99, ...

'MiniBatchSize',256);

agent = rlDQNAgent(critic,agentOpts);

%% 设置训练参数

trainOpts = rlTrainingOptions(...

'MaxEpisodes', 1000, ...

'MaxStepsPerEpisode', 500, ...

'Verbose', false, ...

'Plots','training-progress',...

'StopTrainingCriteria','AverageReward',...

'StopTrainingValue',480);

plot(env)

%% 并行学习设置

trainOpts.UseParallel = true;

trainOpts.ParallelizationOptions.Mode = "async";

trainOpts.ParallelizationOptions.DataToSendFromWorkers = "Experiences";%这里和Acagent不一样

trainOpts.ParallelizationOptions.StepsUntilDataIsSent = 32;

%% 训练

trainingStats = train(agent,env,trainOpts);

%% 结果展示

simOptions = rlSimulationOptions('MaxSteps',500);

experience = sim(env,agent,simOptions);

totalReward = sum(experience.Reward);

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帮你学MatLab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
为啥我的小人不动
为啥我的小人不动
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
MATLAB强化学习训练simulink模型
simulink可以方便地建立物理域模型,这是一个简单的倒立摆,同样可以使用MATLAB的强化学习工具箱进行训练
万木逢春
2020/02/11
2.4K4
MATLAB强化学习训练simulink模型
MATLAB强化学习训练simulink模型优化
simulink物理结构模型用的是前面文章matlab倒立摆环境建模当在solidworks绘制后导入的,去除子模块封装,添加驱动以及传感器接口,就像这个样子
万木逢春
2020/04/14
2.6K7
MATLAB借助openai gym环境训练强化学习模型
虽然openai的gym强化学习环境底层绘图库是pyglet,不太方便自定义,但是已有的环境还是很好用的,有了前面的python环境准备之后,只需要安装gym就可以
万木逢春
2020/07/31
1.8K0
MATLAB借助openai gym环境训练强化学习模型
MATLAB强化学习 PG 算法
采用 policy gradient 学习方法训练agent,并行训练的参数也需要调整
万木逢春
2019/11/24
1.5K0
MATLAB训练CartPole强化学习模型
这次用的环境是移动倒立摆CartPole环境,建立环境模型,主要是对reword进行定义
万木逢春
2022/01/19
1.3K2
MATLAB训练CartPole强化学习模型
通过图像训练强化学习模型
在gym中运行atari环境的时候可以选择同一个游戏的内存方式或者图像方式,内存方式直接返回游戏的状态,图像方式返回当前游戏的画面
万木逢春
2020/04/16
1.1K0
通过图像训练强化学习模型
matlab倒立摆强化学习训练
Actor(玩家):为了得到尽量高的reward,实现一个函数:输入state,输出action。用神经网络来近似这个函数。目标任务就是如何训练神经网络,让它的表现更好(得更高的reward)。这个网络被称为actor Critic(评委):为了训练actor,需要知道actor的表现到底怎么样,根据表现来决定对神经网络参数的调整。这就要用到强化学习中的“Q-value”、但Q-value也是一个未知的函数,所以也可以用神经网络来近似。这个网络被称为critic。
万木逢春
2019/11/10
1.5K0
matlab强化学习-复杂网格环境搭建与训练
先看这个向量式方法生成随机maze来训练Q—learning的agent、主要特点是地图大
万木逢春
2019/10/25
1.6K0
鼠标拖拽搭建强化学习网络模型
在实现了几个针对gym的基础场景的强化学习模型后,我们想要在atari的游戏中试试身手,借助Deep Network Designer,可以方便地设计、修改、观察深度学习神经网络模型。
万木逢春
2022/03/26
1K0
鼠标拖拽搭建强化学习网络模型
MATLAB与深度学习构建神经网络的实用指南
深度学习已经成为现代人工智能研究的一个重要分支,而MATLAB作为一种强大的科学计算工具,为研究人员和工程师提供了构建和训练神经网络的便利。本文将介绍如何在MATLAB中构建神经网络,涵盖基础概念、实用代码示例以及常见问题的解决方案。
一键难忘
2025/01/05
2390
Matlab 使用CNN拟合回归模型预测手写数字的旋转角度
一个深度学习文档分享一下,很简单,但思路不错,在个人项目上也可以按照需求变化数据集来实现CNN回归计算。
用户9925864
2022/07/27
1.6K0
Matlab 使用CNN拟合回归模型预测手写数字的旋转角度
强化学习算法总结(一)——从零到DQN变体
中对应价值最大的动作的Q值进行更新,注意这里只是更新,并不会真的执行这个价值最大的动作。这里的更新策略(评估策略)与我们的行为策略(
CristianoC
2021/04/16
2.7K0
强化学习算法总结(一)——从零到DQN变体
MATLAB中的机器学习算法选择与模型评估
机器学习是人工智能的重要组成部分,MATLAB作为一种强大的科学计算工具,提供了丰富的机器学习工具箱,使得用户能够轻松实现各种机器学习算法。在本文中,我们将探讨如何在MATLAB中选择合适的机器学习算法,并对模型进行评估。我们将通过具体的代码示例来加深理解。
一键难忘
2025/01/24
2530
【RL Base】强化学习核心算法:深度Q网络(DQN)算法
深度Q网络(DQN)是深度强化学习的核心算法之一,由Google DeepMind在2015年的论文《Playing Atari with Deep Reinforcement Learning》中提出。DQN通过结合深度学习和强化学习,利用神经网络近似Q值函数,在高维、连续状态空间的环境中表现出了强大的能力。
不去幼儿园
2024/12/03
4560
【RL Base】强化学习核心算法:深度Q网络(DQN)算法
【强化学习】深度确定性策略梯度算法(DDPG)详解(附代码)
深度确定性策略梯度(Deep Deterministic Policy Gradient、DDPG)算法是一种基于深度强化学习的算法,适用于解决连续动作空间的问题,比如机器人控制中的连续运动。它结合了确定性策略和深度神经网络,是一种模型无关的强化学习算法,属于Actor-Critic框架,并且同时利用了DQN和PG(Policy Gradient)的优点。
不去幼儿园
2025/01/02
3.5K0
【强化学习】深度确定性策略梯度算法(DDPG)详解(附代码)
7个流行的强化学习算法及代码实现
来源:Deephub Imba 本文约4500字,建议阅读5分钟 本文介绍了流行的强化学习算法的发展和改进。 目前流行的强化学习算法包括 Q-learning、SARSA、DDPG、A2C、PPO、DQN 和 TRPO。这些算法已被用于在游戏、机器人和决策制定等各种应用中,并且这些流行的算法还在不断发展和改进,本文我们将对其做一个简单的介绍。 1、Q-learning Q-learning:Q-learning 是一种无模型、非策略的强化学习算法。它使用 Bellman 方程估计最佳动作值函数,该方程
数据派THU
2023/04/18
6660
7个流行的强化学习算法及代码实现
使用Panda-Gym的机器臂模拟进行Deep Q-learning强化学习
强化学习(RL)是一种机器学习方法,它允许代理通过试错来学习如何在环境中表现。行为主体因采取行动导致预期结果而获得奖励,因采取行动导致预期结果而受到惩罚。随着时间的推移,代理学会采取行动,使其预期回报最大化。
deephub
2023/10/31
5950
使用Panda-Gym的机器臂模拟进行Deep Q-learning强化学习
深度强化学习之DQN实战
今天我们会将我们上一篇文章讲解的DQN的理论进行实战,实战的背景目前仍然是探险者上天堂游戏,不过在下一次开始我们会使用OpenAI gym的环境库,玩任何我们想玩的游戏。
CristianoC
2020/05/31
1.5K1
MATLAB对Googlenet模型进行迁移学习
使用训练好的模型进行图像分类 我这里训练的模型是对细胞显微图像进行分类,包括BYST,GRAN,HYAL,MUCS,RBC,WBC,WBCC七种细胞。
全栈程序员站长
2022/09/21
1K0
MATLAB对Googlenet模型进行迁移学习
【SSL-RL】自监督强化学习:事后经验回放 (HER)算法
📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在👉强化学习专栏: 【强化学习】(41)---《【RL】强化学习入门:从基础到应用》
不去幼儿园
2024/12/03
3501
【SSL-RL】自监督强化学习:事后经验回放 (HER)算法
相关推荐
MATLAB强化学习训练simulink模型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档