此示例示出了如何训练双足机器人既使用深确定性政策梯度(DDPG)剂和双延迟深确定性政策梯度(TD3)代理行走。在这个例子中,你还比较这些培训的工作人员的表现。本例中的机器人中的Simscape™多体被建模™。
有关这些代理商的更多信息,请参阅深确定性政策梯度代理和双延迟深度确定性政策梯度代理。
出于该示例中的比较目的,该示例在具有相同模型参数的Biped机器人环境上列出了两个代理。该示例还将代理配置为具有以下内容的常见设置。
双足机器人的初始条件的策略
演员和评论家的网络结构,受到了[1]的启发
演员和批评者的选项
培训选项(采样时间,折扣系数,迷你批量大小,体验缓冲长度,勘探噪声)
这个例子的强化学习环境是双足机器人。培训目标是使在使用最少的控制工作的直线机器人的步行路程。
将模型的参数加载到MATLAB®工作区中。
RobotParametersrl.
打开Simulin金宝appk模型。
mdl ='rlwalkingbipedrobot';Open_System(MDL)
机器人使用Simscape Multibody建模。
对于这个模型:
在中性0 rad位置,两条腿都是直的,脚踝是平的。
脚接触使用模拟的空间接触力(Simscape Multibody)堵塞。
通过施加来自机器人的两条腿,代理可以通过施加扭矩信号来控制3个单独的关节(脚踝,膝盖和臀部)-3
到3.
n·m。实际计算的动作信号是归一化的-1
和1
。
环境提供了以下29个观察到代理。
Y(横向)和躯干质量中心的Z(垂直)翻译。Z方向中的平移标准化为与其他观察相似的范围。
X(向前),Y(横向),以及Z(垂直)平移速度。
躯干的偏航,俯仰和滚动角。
摇摆,沥青和滚动角速度的偏航。
两条腿上的三个关节(脚踝,膝关节,臀部)的角位置和速度。
从前一步的操作值。
如果发生以下任一条件,则会终止。
在Z方向(机器人落下)的机器人躯干中心的质量尺寸小于0.1μm,或者在任一个方向上超过1μm(机器人移动到侧面太远)。
辊,俯仰或偏航的绝对值大于0.7854 rad。
以下奖励功能 ,这是在每个时间步长设置为[2]的启发。
这里:
是机器人的在X方向上的平移速度(向前朝着目标)。
是从目标直线轨迹机器人的横向平移位移。
是机器人质量中心的标准化垂直翻译位移。
是关节的扭矩一世从上一步一步。
是环境的采样时间。
是环境的最终仿真时间。
此奖励功能鼓励代理通过提供积极的前瞻性速度来向前迈进。它还鼓励代理人通过提供不断的奖励来避免派生终止( )在每次步骤。奖励功能中的其他条款是对横向和垂直翻译的大量变化以及使用过度控制努力的惩罚。
创建观察规范。
numobs = 29;ObsInfo = rlnumericspec([numobs 1]);ObsInfo.name =.“意见”;
创建动作规范。
numact = 6;Actinfo = rlnumericspec([Numact 1],'lowerimit',-1,'上限',1);actInfo.Name ='foot_torque';
创建行走机器人模型环境的接口。
blk = [mdl,'/ rl代理'];Env = Rl金宝appsimulinkenv(MDL,BLK,OBSINFO,ACTINFO);env.resetfcn = @(in)walkErresetfcn(inuple_leg_length / 100,depard_leg_length / 100,h / 100);
此示例提供了使用DDPG或TD3代理培训机器人的选项。要使用您选择的代理模拟机器人,请设置鼓励
相应的国旗。
Agentselection =.'TD3';转变鼓励案件'DDPG'代理= createdDpgagent(numobs,obsinfo,numact,actinfo,ts);案件'TD3'代理= createTd3agent(numobs,obsinfo,numact,actinfo,ts);否则DISP(“输入DDPG或TD3为AgentSelection”)结尾
这createdDpgagent.
和createTd3agent.
辅助功能执行以下操作。
创建演员和评论家的网络。
为演员和批评者表示指定选项。
使用已创建的网络和指定选项创建演员和批评者表示。
配置代理特定的选项。
创建代理。
DDPG代理近似于使用批评价值函数表示,给定的长期奖励和操作。DDPG代理决定通过使用演员表示来考虑观察的行动。此示例的演员和批评网络是由[1]的启发。
有关创建DDPG代理的详细信息,请参阅createdDpgagent.
帮手功能。有关配置DDPG代理选项的信息,请参阅rlddpgagentoptions.
。
有关创建深层神经网络值函数表示的更多信息,请参阅创建策略和价值功能交涉。对于那些对DDPG代理商建立神经网络的例子,请参阅火车DDPG代理控制双积分系统。
一个TD3剂接近长期回报给予意见,并使用两个评论家值函数的表示行为。一个TD3代理决定其行动使用演员表示采取给予意见。用于该代理的演员和评论家网络的结构是相同的用于DDPG剂的那些。
DDPG代理可以高估Q值。由于代理使用Q值来更新其策略(Actor),因此所产生的策略可以是次优和累积训练错误可能导致不同行为。TD3算法是DDPG的扩展,具有改进,通过防止高估Q值[3]来使其更加稳健。
两个评论家网 - TD3剂学会独立地为两个评论家网络和使用最小值函数估计更新演员(的政策)。这样做可以防止在后续步骤中值和Q值的过度估计误差的积累。
目标政策的噪声添加 - 添加噪声修剪过度类似的行动值的函数平顺Q函数值。这样做可以防止学习值嘈杂估计的不正确的尖锐的峰。
延迟策略和目标更新 - 对于TD3代理,延迟演员网络更新允许更多时间进行Q函数在更新策略之前减少错误(更接近所需的目标)。这样做可以防止价值估算的方差并导致更高质量的政策更新。
有关创建TD3代理的详细信息,请参阅createTd3agent.
帮手功能。有关配置TD3代理选项的信息,请参阅rltd3agentoptions.
。
在这个例子中,对于DDPG和TD3代理培训选项是相同的。
2000年情节以每集最持久的运行每次训练maxsteps.
时间步骤。
显示在情节管理器对话框的训练进度(设置绘图
选项)并禁用命令行显示(设置verb
选项)。
终止训练只有当它到达事件的最大数量(maxepisodes.
)。这样做允许在整个训练多个代理的学习曲线的比较。
有关更多信息和其他选项,请参阅rltringOptions.
。
maxepisodes = 2000;maxsteps =地板(TF / TS);训练= rltrainingOptions(......'maxepisodes',maxEpisodes,......'maxstepperepisode',maxsteps,......'scoreaveragingwindowlength',250,......'verbose',错误的,......'plots'那'培训 - 进步'那......'stoptrinaincriteria'那'EpisodeCount'那......'stoptriningvalue',maxEpisodes,......'SaveAgentCriteria'那'EpisodeCount'那......'SaveagentValue',maxepisodes);
要培养并行代理,指定下列培训选项。并行训练需要并行计算工具箱™。如果没有并行计算工具箱软件安装,设置使用指α.
到错误的
。
设定使用指α.
选择T.后悔
。
培训代理以异步并行。
每32个步骤后,每个工人送体验到主机。DDPG和TD3代理人要求工人送体验到主机。
训练.Useplate = true;训练.ParlellelizationOptions.Mode =.'async';训练.ParlellelizationOptions.stepsuntataissent = 32;训练.ParlellizationOptions.datatosendfromworkers ='经验';
使用该代理商培训火车
功能。此过程是计算密集的,需要几个小时才能为每个代理完成。要在运行此示例的同时节省时间,请通过设置加载预制代理用圆形
到错误的
。训练代理人,套装用圆形
到真的
。由于在并行训练的随机性,你可以期望从后面的情节不同的训练效果。预训练代理使用四名工人并行培训。
dotraining = false;如果用圆形%培训代理。trainingStats =列车(代理人,ENV,trainOpts);别的%加载所选代理类型的预磨料代理。如果Strcmp(Agentselection,'DDPG') 加载('rlwalkingbipedrebotddpg.mat'那'代理人')别的加载('rlwalkingbipedrobottd3.mat'那'代理人')结尾结尾
对于前面的示例训练曲线,DDPG和TD3代理的每个训练步骤的平均时间分别为0.11和0.12秒。TD3 Agent每步需要更多的培训时间,因为它更新了与用于DDPG的单个评论家相比的两个批评网络。
修正了重复性的随机生成种子。
RNG(0)
要验证培训的代理的性能,请在Biped机器人环境中模拟它。有关代理模拟的更多信息,请参阅RlsimulationOptions.
和SIM
。
simoptions = rlsimulation选项('maxsteps',maxsteps);体验= SIM(ENV,Agent,SimOptions);
对于以下代理比较,每次使用不同的随机种子训练每次尝试五次。由于随机探测噪声和并行训练中的随机性,每个运行的学习曲线都不同。由于多次运行的代理训练需要几天时间来完成,因此这种比较使用预寄存代理。
对于DDPG和TD3代理,绘制集发作奖励(顶部图)的平均和标准偏差和第Q0值(底部图)。第一个Q0值是批评估计每集发作开始时折扣长期奖励的估计鉴于环境初步观察环境。对于精心设计的评论家,第Q0的综合评论者将涉及真正的折扣长期奖励。
comparePerformance('ddpgagent'那'TD3Agent')
基于学习曲线比较图:
DDPG代理似乎更快地提取学习(平均围绕第600号集600),但击中了本地最小值。TD3开始较慢,但最终实现比DDPG更高的奖励,因为它避免了Q值的高估。
TD3代理显示其学习曲线的稳步改善,这表明与DDPG代理相比的稳定性提高。
基于第Q0 Comparison Plot:
对于TD3代理商,与DDPG代理商相比,批评长期奖励(2000集)的批评估计率较低。这种差异是因为TD3算法采用保守方法在更新其目标时使用至少两个Q函数更新其目标。由于目标的延迟更新,此行为进一步增强。
尽管对于这些2000剧集的TD3估计值低,但是TD3代理显示出集中Q0值的稳定增加,与DDPG代理不同。
在这个例子中,培训是停在2000次发作。对于较大的训练期间,TD3剂与估计显示了其稳定增长的潜力收敛到真正的打折长期回报。
有关如何使用DDPG代理训练人形机器人的另一个例子,请参阅训练人形沃克(Simscape Multibody)。有关如何使用DDPG代理训练四足机器人的示例,请参阅使用DDPG代理的四足机器人机器人。
[1] LillicRap,Timothy P.,Jonathan J. Hunt,亚历山大Pritzel,Nicolas Heess,Tom Erez,Yuval Tassa,David Silver和Daan Wierstra。“与深增强学习连续控制。”预印刷品,2019年7月5日提交。https://arxiv.org/abs/1509.02971。
[2] Heess,Nicolas,Dhruva TB,Srinivasan Sriram,Jay Lemmon,Josh Merel,Greg Wayne,Yuval Tassa等。“富裕环境中运动行为的出现。”预印刷品,2017年7月10日提交。https://arxiv.org/abs/1707.02286。
[3] Fujimoto,Scott,Herke Van Hoof和David Meger。“参与演员批评方法中的函数近似误差。”预印刷品,2018年10月22日提交。https://arxiv.org/abs/1802.09477.。