主要内容

使用强化学习设计器设计和训练代理

这个例子展示了如何为使用离散动作空间的环境设计和训练DQN代理强化学习设计

打开强化学习设计器App

打开强化学习设计应用程序。

reinforcementLearningDesigner

初始强化学习设计器窗口。左侧窗格没有显示加载的代理、环境、结果或预览

最初,应用中没有加载代理或环境。

进口Cart-Pole环境

当使用强化学习设计,你可以从MATLAB中导入一个环境®工作区或创建一个预定义的环境。更多信息,请参见为强化学习设计器创建MATLAB环境为强化学习设计器创建Simulink环境

对于本例,使用预定义的离散车极MATLAB环境。要导入该环境,在强化学习选项卡,环境部分中,选择全新>离散式车杆

强化学习设计器窗口,其中扩展了“新环境”部分,显示了要导入的环境的选择

环境窗格,应用程序添加导入离散CartPole环境。要重命名环境,请单击环境文本。也可以在会话中导入多个环境。

要查看观察和动作空间的尺寸,请点击环境文本。应用程序会在预览窗格。

预览窗格显示状态和动作空间的尺寸分别为[4 1]和[1 1]

这种环境有一个连续的四维观测空间(推车和极点的位置和速度)和一个离散的一维行动空间,由-10N或10N两种可能的力组成。这种环境被用在训练DQN代理平衡车杆系统的例子。有关预定义控制系统环境的更多信息,请参见加载预定义控制系统环境

为导入的环境创建DQN代理

要创建一个代理,就强化学习选项卡,代理部分中,点击。在“创建代理”对话框中,指定代理名称、环境和训练算法。默认的代理配置使用导入的环境和DQN算法。在本例中,将隐藏单元的数量从256修改为24。有关创建代理的更多信息,请参见使用强化学习设计器创建代理

创建代理对话框

点击好吧

该应用程序将新代理添加到代理窗格并打开相应的agent1文档。

强化学习设计器,代理窗口打开

点击查看DQN代理功能的简要总结,查看代理的观察和动作规格概述

强化学习设计器,代理窗口打开,显示概述部分

当你创建一个DQN代理强化学习设计,代理为其批评家使用默认的深度神经网络结构。要查看评论家网络,在DQN代理选项卡上,单击视图评论家模型

深度学习网络分析仪打开并显示批评家结构。

深度学习网络分析仪展示了评论家中使用的深度神经网络

关闭深度学习网络分析仪

火车代理

要训练你的代理,就火车选项卡,首先指定训练代理的选项。有关指定训练选项的信息,请参见在强化学习设计器中指定模拟选项

对于本例,通过设置指定训练集的最大数量马克斯集1000。对于其他训练选项,使用默认值。默认的停止标准是每集的平均步数(超过上一集)5集)大于500

强化学习设计器应用程序在工具条中显示训练选项卡

要开始培训,请单击火车

在训练过程中,应用程序会打开训练TAB,显示训练进度培训结果文档。

代理培训后的强化学习设计器

在这里,当每集的平均步数是500步时,训练就停止了。清除显示集Q0选项可视化更好的章节和平均奖励。

要接受训练结果,就上训练选项卡上,单击接受。在代理窗格,应用程序添加了训练有素的代理,agent1_Trained

模拟代理和检查仿真结果

模拟训练有素的代理,在模拟选项卡中,首先选择agent1_Trained代理下拉列表,然后配置仿真选项。在本例中,使用默认的剧集数(10)和最大集长(500)。有关指定模拟选项的更多信息,请参见在强化学习设计器中指定训练选项

模拟将来发布选项卡

模拟座席,点击模拟

该应用程序打开模拟会议选项卡。模拟完成后,仿真结果文档显示了每一集的奖励以及奖励的平均值和标准差。

模拟结果文件,显示每个模拟情节的奖励,以及它们的平均值和标准差

分析仿真结果,点击检查模拟数据

仿真数据检查可以查看每个模拟剧集保存的信号。更多信息,请参见仿真数据检查(模型)

下图为第六模拟集的车-杆系统的第一和第三状态(车的位置和杆的角度)。代理能够成功地平衡柱子500步,即使推车的位置经历了适度的摆动。你可以修改一些DQN代理选项,比如BatchSizeTargetUpdateFrequency促进更快、更健壮的学习。更多信息,请参见训练DQN代理平衡车杆系统

模拟数据检查器显示的位置和速度的推车在第六模拟集

关闭仿真数据检查

要接受仿真结果,就模拟会议选项卡上,单击接受

结果Pane,该应用添加了模拟结果结构,experience1

导出代理和保存会话

将训练过的代理导出到MATLAB工作空间进行额外的模拟,在强化学习选项卡,在出口,选择训练有素的代理。

“强化学习设计器”窗口显示如何导出训练有素的代理

保存应用程序会话,在强化学习选项卡上,单击保存会话。将来,要继续您停止的工作,您可以在强化学习设计

在命令行模拟代理

要在MATLAB命令行中模拟代理,首先加载车极环境。

env = rlPredefinedEnv (“CartPole-Discrete”);

cart-pole环境有一个环境可视化工具,可以让您看到系统在模拟和训练期间的行为。

绘制环境,并使用之前从应用程序导出的经过训练的代理执行模拟。

plot(env) xpr2 = sim(env, agent1_written);

在模拟过程中,可视化工具会显示推车和杆子的运动情况。经过训练的代理能够稳定系统。

购物车杆环境可视化工具,显示在购物车上稳定的杆

最后,显示模拟累积奖励。

总和(xpr2.Reward)
env = 500

不出所料,奖励是到500。

另请参阅

|

相关的话题

Baidu
map