使用强化学习设计器设计和训练智能体
此示例展示如何为具有使用的离散操作空间的环境设计和训练DQN代理强化学习设计师.
打开强化学习设计器App
打开强化学习设计师应用程序。
reinforcementLearningDesigner
最初,应用程序中没有加载代理或环境。
导入车杆环境
当使用强化学习设计师,可以从MATLAB中导入环境®工作区或创建预定义的环境。有关更多信息,请参见在强化学习设计器中创建或导入MATLAB环境和在强化学习设计器中创建或导入Simulink环境.
对于本例,使用预定义的离散卡特杆MATLAB环境。要导入此环境,请在强化学习选项卡,在环境部分中,选择新的>离散车杆.
在环境窗格,应用程序添加导入的离散CartPole
环境。要重命名环境,请单击环境文本。您还可以在会话中导入多个环境。
要查看观察和操作空间的尺寸,请单击环境文本。该应用程序显示的尺寸预览窗格。
这个环境有一个连续的四维观测空间(车和杆的位置和速度)和一个离散的一维作用空间,由两种可能的力组成,-10N或10N。此环境用于训练DQN人员平衡车杆系统的例子。有关预定义控制系统环境的详细信息,请参见负载预定义控制系统环境.
为导入的环境创建DQN代理
上创建代理强化学习选项卡,在代理部分中,点击新.2 .在“创建代理”对话框中,指定代理名称、环境和训练算法。缺省代理配置使用导入的环境和DQN算法。对于本例,将隐藏单元的数量从256更改为20。有关创建代理的详细信息,请参见使用强化学习设计器创建代理.
点击好吧.
应用程序将新代理添加到代理窗格并打开相应的agent1文档。
在Hyperparameter节,在评论家优化选项集学习速率来0.0001
.
单击,可查看DQN代理功能的简要概述,以及该代理的观察和操作规范概述.
中创建DQN代理时强化学习设计师时,代理使用默认的深度神经网络结构作为其评论家。查看评论家网络,在DQN代理选项卡上,单击视图评论家模型.
的深度学习网络分析仪打开并显示评论家结构。
关闭深度学习网络分析仪.
火车代理
来训练你的探员火车选项卡,首先指定训练代理的选项。有关指定培训选项的信息,请参见在强化学习设计器中指定模拟选项.
对于本例,通过设置指定最大训练集数马克斯集来1000
.对于其他培训选项,使用默认值。默认的停止标准是当每集的平均步数(超过上一集)5
集)大于500
.
开始培训,单击火车.
在训练过程中,应用程序会打开训练页签,在界面中显示培训进度培训结果文档。
在培训过程中,您可以随时点击停止或停止训练用于中断训练和在命令行上执行其他操作的按钮。
在这点上重新开始,接受,取消按钮。训练TAB选项分别为恢复培训、接受培训结果(将培训结果和培训代理存储在应用程序中)或完全取消培训。
若要恢复培训,请单击重新开始.
在这里,当每集的平均步数是500步时,训练停止。
接受培训结果,请单击接受.在代理窗格,应用程序添加训练有素的代理,agent1_Trained
.
模拟代理和检查仿真结果
模拟训练过的代理,对模拟选项卡,首先选择agent1_Trained
在代理下拉列表,然后配置仿真选项。对于本例,使用默认的集数(10
)和最大集长(500
).有关指定模拟选项的详细信息,请参见在强化学习设计器中指定模拟选项.
若要模拟代理,请单击模拟.
应用程序打开模拟会议选项卡。模拟完成后,将仿真结果文档显示了每个插曲的奖励,以及奖励的平均值和标准偏差。
有三集,代理人都无法达到500的最大奖励。这表明,经过训练的智能体对不同初始条件的鲁棒性可能会得到提高。在这种情况下,训练代理更长的时间,例如通过选择一个平均窗长的10
而不是5
,具有较好的鲁棒性。您还可以修改一些DQN代理选项,例如BatchSize
和TargetUpdateFrequency
促进更快速和更强大的学习。
单击,分析仿真结果检查仿真数据.这将打开模拟数据检查器.有关更多信息,请参见模拟数据检查器(模型).
中,还可以选择抢先清除模拟数据检查器您可能在前一个会话中加载的任何数据。这样做,下检查仿真数据中,选择清理和检查模拟数据.
在模拟数据检查器您可以查看每个模拟事件保存的信号。
默认情况下,选中上部的绘图区域。为了显示第一集期间的第一个状态(购物车位置),在下面运行1:模拟结果,打开CartPoleStates
变量,然后选择CartPoleStates (1, 1)
.大约390秒后,小车跑出边界,导致模拟结束。
要在上方的图区域显示奖励,请选择奖励
变量。请注意,纵轴上的单位也相应变化。
单击中间的绘图区域,并选择第三个状态(极点角)。然后点击底部区域,选择第二和第四状态(小车速度和极点角导数)。
有关在相同环境中训练DQN代理的相关示例,请参见训练DQN人员平衡车杆系统.
关闭模拟数据检查器.
接受仿真结果,对模拟会议选项卡上,单击接受.
在结果窗格,应用程序添加模拟结果结构,experience1
.
导出代理和保存会话
选择经过培训的代理并打开相应的agent1_Trained文件,在代理窗格,双击agent1_Trained
.
然后,将训练好的代理导出到MATLAB工作空间中强化学习选项卡,在出口,选择训练有素的座席。
上保存应用程序会话强化学习选项卡上,单击保存会话.以后,要继续您停止的工作,可以在中打开会话强化学习设计师.
在命令行模拟代理
为了在MATLAB命令行中模拟代理,首先加载车杆环境。
环境= rlPredefinedEnv(“CartPole-Discrete”);
车杆环境有一个环境可视化工具,允许您查看系统在模拟和训练期间的行为。
绘制环境并使用之前从应用程序导出的经过训练的代理执行模拟。
plot(env) xpr2 = sim(env,agent1_Trained);
在模拟过程中,可视化工具显示推车和杆子的运动。在这个模拟中,经过训练的智能体能够稳定系统。
最后,显示模拟的累积奖励。
总和(xpr2.Reward)
环境= 500
不出所料,累计奖励是500。