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