主要内容

火车PG代理可以平衡车杆系统

此示例显示如何训练策略梯度(PG)代理以平衡Matlab®建模的推车杆系统。有关PG代理商的更多信息,请参阅政策梯度代理人

有关用基线列举PG代理的示例,请参阅用基线列车PG代理控制双积分系统

车杆Matlab环境

用于该示例的增强学习环境是连接到推车上的unactuat接头的杆,其沿着无摩擦轨道移动。培训目标是使摆锤直立直立而不会摔倒。

对于这个环境:

  • 向上平衡的摆锤位置是0.弧度和向下悬挂的位置是PI.弧度。

  • 摆锤直立,初始角度在-0.05和0.05弧度之间。

  • 来自代理到环境的力动作信号为-10至10 n。

  • 来自环境的观察是推车,摆角和摆角衍生物的位置和速度。

  • 如果杆从垂直或撞车从原始位置移动超过2.4米,杆终止终止。

  • 每次步骤都提供了+1的奖励,杆保持直立。当摆锤下降时,应用了-5的惩罚。

有关此模型的更多信息,请参阅负载预定义控制系统环境

创建环境界面

为摆锤创建预定义的环境界面。

Env = Rlpredefinedenv(“cartpole  - 离散”
Env = CartpoledIscreteAcreacteAdeaction:重力:1 9.8000 Masscart:1 MassPole:0.1000

该接口具有离散的动作空间,其中代理可以将两个可能的力值中的一个应用于推车,-10或10 n。

从环境界面获取观察和动作信息。

ObsInfo = GetobservationInfo(ENV);numobservations = Obsinfo.dimension(1);Actinfo = GetActionInfo(ENV);

修复随机发生器种子以进行再现性。

RNG(0)

创建PG代理

PG代理决定使用演员表示来考虑观察的行动。要创建演员,首先创建一个具有一个输入(观察)和一个输出(动作)的深神经网络。Actor网络具有两个输出,其对应于可能的动作的数量。有关创建深度神经网络策略表示的更多信息,请参阅创建策略和值函数表示

ActorNetWork = [FeatureInputLayer(NumObServations,'正常化''没有任何''名称''状态')全连接列(2,'名称''fc')softmaxlayer('名称''actionprob')];

指定使用的Actor表示的选项rlrepresentationOptions.

Actoropts = RlR​​epresentationOptions('学习',1e-2,'gradientthreshold',1);

使用指定的深神经网络和选项创建演员表示。您还必须指定从环境界面获取的批评者的操作和观察信息。有关更多信息,请参阅rlstochastorrepresentation

Actor = rlstochastOrtorrepresentation(Actornetwork,Obsinfo,Actinfo,'观察',{'状态'},actoropts);

使用指定的Actor表示和默认代理选项创建代理。有关更多信息,请参阅rlpgagent.

代理= rlpgagent(演员);

火车代理

要培训代理,首先指定培训选项。对于此示例,请使用以下选项。

  • 为大多数1000个剧集运行每个训练集,每个集发作持续到最多200个时间步长。

  • 在Episode Manager对话框中显示培训进度(设置绘图选项)并禁用命令行显示(设置verb选择错误的)。

  • 当代理商收到超过195的平均累积奖励超过100个连续发作时停止培训。此时,代理可以在直立位置平衡摆锤。

有关更多信息,请参阅rltringOptions.

训练= rltrainingOptions(......'maxepisodes',1000,......'maxstepperepisode',200,......'verbose', 错误的,......'plots''培训 - 进步'......'stoptrinaincriteria''AverageReward'......'stoptriningvalue',195,......'scoreaveragingwindowlength',100);

您可以使用使用的可视化推车系统系统阴谋培训或模拟期间的功能。

情节(env)

图车杆视觉器包含轴。轴包含6个类型的线,多边形。

使用该代理商培训火车功能。培训此代理是一个计算密集型进程,需要几分钟才能完成。要在运行此示例的同时节省时间,请通过设置加载预制代理用圆形错误的。训练代理人,套装用圆形真的

dotraining = false;如果用圆形%训练代理人。Trainstats =火车(代理,env,训练);别的%加载预磨料的代理。加载('matlabcartpolepg.mat''代理人');结尾

模拟PG代理

要验证培训的代理的性能,请在推车杆环境中模拟它。有关代理模拟的更多信息,请参阅RlsimulationOptions.SIM。即使仿真时间增加到500步,代理也可以平衡推车杆系统。

simoptions = rlsimulation选项('maxsteps',500);体验= SIM(ENV,Agent,SimOptions);

图车杆视觉器包含轴。轴包含6个类型的线,多边形。

TotalReward = Sum(经验.Rward)
TotalReward = 500.

也可以看看

相关话题