主要内容

火车PG代理Cart-Pole平衡系统

这个例子展示了如何训练策略梯度(PG)代理来平衡cart-pole MATLAB®系统建模。PG代理的更多信息,请参阅政策梯度代理

例如,火车PG代理基线,明白了火车PG代理与基线控制双积分器系统

Cart-Pole MATLAB环境

强化学习环境对于这个示例是一个极连接到一个unactuated联合手推车,沿着一个无摩擦的轨道。培训的目标是使钟摆直立,没有跌倒。

对于这个环境:

  • 向上的平衡摆位置0弧度,向下悬挂位置π弧度。

  • 钟摆开始直立初始夹角-0.05和0.05弧度。

  • 力行动信号从代理环境从-10年到10 N。

  • 来自环境的观察车的位置和速度,摆角和摆角的导数。

  • 这一事件终止如果北极是超过12度从垂直或如果购物车移动超过2.4从原始位置。

  • + 1的奖励提供了每一个时间步,北极保持正直。一个点球5摆落时应用。

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

创建环境接口

创建一个预定义的钟摆环境界面。

env = rlPredefinedEnv (“CartPole-Discrete”)
env = CartPoleDiscreteAction属性:重力:9.8000 MassCart: 1 MassPole: 0.1000长度:0.5000 MaxForce: 10 Ts: 0.0200 ThetaThresholdRadians: 0.2094 XThreshold: 2.4000 RewardForNotFalling: 1 PenaltyForFalling: 5状态:[4 x1双)

接口有一个离散的行动空间,两种可能的力值的代理可以应用一个购物车,-10年或10 N。

从环境中获得的观察和操作信息界面。

obsInfo = getObservationInfo (env);numObservations = obsInfo.Dimension (1);actInfo = getActionInfo (env);

解决随机发生器再现性的种子。

rng (0)

创建PG代理

PG代理决定哪些操作使用演员表示给定的观测。创建演员,首先创建一个深层神经网络与一个输入(观察)和一个输出(行动)。演员网络有两个输出,对应的数量可能的行动。有关创建深神经网络策略的更多信息表示,看到的创建政策和价值函数表示

actorNetwork = [featureInputLayer numObservations,“归一化”,“没有”,“名字”,“状态”)fullyConnectedLayer (2“名字”,“俱乐部”)softmaxLayer (“名字”,“actionProb”));

使用指定选项演员表示rlRepresentationOptions

actorOpts = rlRepresentationOptions (“LearnRate”1飞行,“GradientThreshold”1);

创建一个演员表示使用指定的深层神经网络和选项。您还必须指定的操作和观察信息评论家,你从环境获得接口。有关更多信息,请参见rlStochasticActorRepresentation

演员= rlStochasticActorRepresentation (actorNetwork obsInfo actInfo,“观察”,{“状态”},actorOpts);

创建代理使用指定的演员表示和默认代理选项。有关更多信息,请参见rlPGAgent

代理= rlPGAgent(演员);

火车代理

培训代理商,首先指定培训选项。对于这个示例,使用以下选项。

  • 运行每个训练集最多1000集,每集持续最多200时间步。

  • 在事件管理器对话框显示培训进展(设置情节在命令行选项)和禁用显示(设置详细的选项)。

  • 停止训练当代理接收到平均累积奖励大于195连续超过100集。在这一点上,代理可以平衡钟摆在直立位置。

有关更多信息,请参见rlTrainingOptions

trainOpts = rlTrainingOptions (“MaxEpisodes”,1000,“MaxStepsPerEpisode”,200,“详细”假的,“阴谋”,“训练进步”,“StopTrainingCriteria”,“AverageReward”,“StopTrainingValue”,195,“ScoreAveragingWindowLength”,100);

你可以想象cart-pole系统使用情节函数在训练或模拟。

情节(env)

图车杆可视化工具包含一个坐标轴对象。坐标轴对象包含6行类型的对象,多边形。

火车代理使用火车函数。培训这个代理是一个计算密集型的过程需要几分钟才能完成。节省时间在运行这个例子中,加载一个pretrained代理设置doTraining。训练自己代理,集doTraining真正的

doTraining = false;如果doTraining%培训代理。trainingStats =火车(代理,env, trainOpts);其他的%加载pretrained代理的例子。负载(“MATLABCartpolePG.mat”,“代理”);结束

模拟PG代理

验证培训代理的性能,模拟在cart-pole环境。代理模拟更多的信息,请参阅rlSimulationOptionssim卡。代理可以平衡cart-pole系统即使在仿真时间增加到500步。

simOptions = rlSimulationOptions (“MaxSteps”,500);经验= sim (env,代理,simOptions);

图车杆可视化工具包含一个坐标轴对象。坐标轴对象包含6行类型的对象,多边形。

totalReward =总和(experience.Reward)
totalReward = 500

另请参阅

相关的话题