这个例子展示了如何为一个具有离散动作空间的环境设计和训练DQN代理强化学习设计.
打开强化学习设计应用程序。
钢筋训练器
最初,应用程序中没有加载代理或环境。
当使用强化学习设计,您可以从MATLAB导入一个环境®工作区或创建预定义的环境。有关更多信息,请参见创建MATLAB环境强化学习设计器和为强化学习设计金宝app师创建Simulink环境.
对于此示例,请使用预定义的离散推车MATLAB环境。要导入此环境,请访问强化学习选项卡,环境部分,选择新的>离散车杆.
在里面环境窗格,该应用程序添加导入离散CartPole
环境。要重命名环境,请单击环境文本。您还可以在会话中导入多个环境。
要查看观察和动作空间的尺寸,请单击“环境文本”文本。该应用程序显示了尺寸预览窗格。
这个环境有一个连续的四维观察空间(车和杆的位置和速度)和一个离散的一维动作空间,由两种可能的力组成,-10N或10N。该环境用于培训DQN代理以平衡车杆系统的例子。有关预定义控制系统环境的更多信息,请参见负载预定义控制系统环境.
创建代理人强化学习选项卡,代理部分,点击新.在“创建代理”对话框中,指定代理名称,环境和培训算法。默认代理配置使用导入的环境和DQN算法。在此示例中,将隐藏单元的数量从256更改为24.有关创建代理的更多信息,请参阅使用加强学习设计师创建代理商.
点击好吧.
该应用程序将新的代理添加到代理窗格并打开相应的代理商_1.文档。
对于DQN代理功能的简要摘要,并查看代理的观察和操作规范,请单击概述.
中创建DQN代理时强化学习设计,代理使用默认的深度神经网络结构进行评论家。查看批评网络,在DQN代理选项卡,单击查看评论家模型.
这深度学习网络分析仪打开并显示批评结构。
关上深度学习网络分析仪.
训练你的代理人火车选项卡,首先指定培训代理的选项。有关指定培训选项的信息,请参阅在强化学习设计器中指定模拟选项.
在此示例中,通过设置指定培训剧集的最大数量马克斯集到1000
.有关其他培训选项,请使用其默认值。停止的默认标准是每集的平均步数(最后)5.
情节)是大于500
.
要开始训练,请单击火车.
在培训期间,该应用程序将打开训练课程选项卡中显示训练进度培训结果文档。
在这里,训练停止,当每集的平均步数为500时停止。清除显示集Q0选项可视化剧集和平均奖励更好。
要接受培训的结果,就上训练课程选项卡,单击接受.在里面代理应用程序Pane会添加训练有素的代理人,Agent1_train
.
来模拟训练有素的特工,在模拟选项卡,首先选择Agent1_train
在代理下拉列表,然后配置模拟选项。对于此示例,请使用默认的剧集数(10.
)及最长剧集长度(500
).有关指定模拟选项的更多信息,请参见在加固学习设计师中指定培训选项.
要模拟代理,单击模拟.
该应用程序打开了模拟会话选项卡。仿真完成后仿真结果文档显示每个剧集的奖励以及奖励均值和标准偏差。
分析仿真结果,单击检查模拟数据.
在里面仿真数据检测器您可以查看为每个模拟集保存的信号。有关更多信息,请参见仿真数据检测器(金宝appSimulink).
以下图像示出了第六仿真集的推车极系统(推车位置和极角)的第一和第三状态。即使推车位置经历中等波动,代理商能够成功平衡500步的杆。您可以修改一些DQN代理选项,例如BatchSize
和目标攻击频繁
促进更快、更有活力的学习。有关更多信息,请参见培训DQN代理以平衡车杆系统.
关上仿真数据检测器.
接受模拟结果,在模拟会话选项卡,单击接受.
在里面结果窗格,应用程序添加了模拟结果结构,experience1
.
将训练过的代理导出到MATLAB工作空间进行额外的仿真,在强化学习标签,下面出口,选择培训的代理。
要保存应用程序会话,请强化学习选项卡,单击保存会话.在将来,要继续您停止的工作,您可以打开会话强化学习设计.
要在MATLAB命令行模拟代理,请先加载推车杆环境。
ent = rlpredefinedenv(“CartPole-Discrete”);
车杆环境有一个环境可视化器,允许您查看系统在模拟和训练期间的行为。
绘制环境并使用之前从应用程序导出的经过训练的代理执行模拟。
绘图(env)XPR2 = SIM(ENV,Agent1_Tromate);
在仿真过程中,Visualizer显示推车和杆的运动。培训的代理能够稳定系统。
最后,显示模拟的累积奖励。
总和(xpr2.Reward)
Env = 500.
不出所料,奖励是500。