Twin-Delayed深决定性策略梯度代理
twin-delayed深决定性策略梯度(TD3)算法是一个模范自由,在网上,off-policy强化学习方法。TD3代理是一个actor-critic强化学习代理搜索最优政策,最大化预期的长期累积奖励。
更多信息在不同类型的强化学习代理,看看强化学习代理。
DDPG TD3算法是一个扩展的算法。DDPG代理可以高估价值函数,它可以产生次优策略。减少价值函数高估,TD3 DDPG算法的算法包括以下修改。
TD3代理学习两个核反应能量函数和使用最小值函数估计在政策更新。
TD3代理更新政策和目标经常小于Q函数。
当更新政策,TD3剂添加噪声目标动作,使政策不太可能利用行动核反应能量高的估计。
您可以使用一个TD3代理实现的训练算法,根据批评您指定的数量。
TD3——火车代理两个核反应能量函数。该算法实现了所有前三的修改。
延迟DDPG——火车代理与单个核反应能量函数。该算法训练DDPG代理与目标政策平滑和延迟更新政策和目标。
TD3代理可以用下面的训练环境中观察和行动空间。
观察太空 | 行动空间 |
---|---|
连续或离散 | 连续 |
TD3代理使用下面的演员和批评。
批评人士 | 演员 |
---|---|
一个或多个核反应能量函数的批评问(年代,一个),您将创建使用 |
确定的政策的演员π(年代),您将创建使用 |
在培训期间,TD3代理:
更新的演员和评论家属性在每个时间步在学习。
商店过去的经验使用循环缓冲区的经验。代理更新经验的演员兼评论家使用mini-batch随机取样的缓冲区。
扰乱行为选择的政策在每个训练步骤使用随机噪声模型。
演员和批判功能
估计策略和价值函数,TD3代理维护以下函数近似者:
确定的演员π(年代;θ)——演员,参数θ需要观察年代并返回相应的行动,最大化的长期回报。
目标的演员πt(年代;θt)——提高稳定性的优化,代理定期更新目标演员参数θt使用最新的演员参数值。
一个或两个核反应能量批评问k(年代,一个;ϕk)——批评者,每个都有不同的参数ϕk,观察年代和行动一个作为输入,并返回相应的预期的长期回报。
一个或两个目标的批评问tk(年代,一个;ϕtk)——提高稳定性的优化,代理定期更新目标评论家参数ϕtk使用最新的相应的评论家参数值。目标数量的批评家批评的数量匹配。
这两个π(年代;θ),πt(年代;θt)具有相同的结构和参数。
对于每一个评论家,问k(年代,一个;ϕk),问tk(年代,一个;ϕtk)具有相同的结构和参数。
当使用两个评论家,问1(年代,一个;ϕ1),问2(年代,一个;ϕ2),每个批评都可以有不同的结构,尽管TD3批评家相同的结构时效果最好。当批评家有相同的结构,他们必须有不同的初始参数值。
更多信息为函数近似创造演员和批评者,明白了创建政策和价值功能。
在培训期间,代理曲调的参数值θ。培训后,参数保持在他们的调谐值和函数近似者存储在训练演员π(年代)。
代理创建
您可以创建和训练在MATLAB TD3代理®命令行或使用强化学习设计应用。有关创建代理使用的更多信息强化学习设计,请参阅使用强化学习设计师创建代理。
在命令行上,您可以创建一个TD3代理与默认的演员和评论家从环境中基于观察和操作规范。为此,执行以下步骤。
为您的环境创建观测规范。如果你已经有一个环境接口对象,您可以获得这些规范使用
getObservationInfo
。为您的环境创建动作规范。如果你已经有一个环境接口对象,您可以获得这些规范使用
getActionInfo
。如果需要,指定数量的神经元在每个可学的层或者是否使用一个LSTM层。为此,创建一个代理初始化选项对象使用
rlAgentInitializationOptions
。如果需要,使用一个指定代理选项
rlTD3AgentOptions
对象。使用一个创建代理
rlTD3Agent
对象。
或者,您可以创建演员兼批评家和使用这些对象来创建你的代理。在这种情况下,确保演员和评论家的输入和输出维度匹配相应的行动和观测环境的规范。
使用一个创建一个演员
rlContinuousDeterministicActor
对象。创建一个或两个评论家使用
rlQValueFunction
对象。使用一个指定代理选项
rlTD3AgentOptions
对象。使用一个创建代理
rlTD3Agent
对象。
更多信息为函数近似创造演员和批评者,明白了创建政策和价值功能。
训练算法
TD3代理使用下面的训练算法,他们更新他们的演员和评论家模型在每个时间步。配置训练算法,使用一个指定选项rlDDPGAgentOptions
对象。在这里,K= 2批评家和数量吗k评论家指数。
初始化每个评论家问k(年代,一个;ϕk)和随机参数值ϕk,初始化每个目标评论家使用相同的随机参数值: 。
初始化的演员π(年代;θ)和随机参数值θ,并初始化目标演员用同样的参数值: 。
对于每一个培训时间步骤:
为当前的观测年代,选择行动一个=π(年代;θ)+N,在那里N随机噪声的噪声模型。配置噪声模型,使用
ExplorationModel
选择。执行动作一个。观察奖励R其次观察年代。
存储经验(年代,一个,R,年代在缓冲区的经验。
样本的随机mini-batch米经验(年代我,一个我,R我,年代我从缓冲区的经验。指定米,可以使用
MiniBatchSize
选择。如果年代我终端状态,设置值目标函数y我来R我。否则,将它设置为
目标函数值的和经验奖励R我和未来的最低折扣奖励的批评。指定折扣因素γ,可以使用
DiscountFactor
选择。首先计算累积奖励,代理计算下一个动作通过下一个观察年代我从采样经验到目标的演员。然后,代理添加噪音ε使用的计算操作
TargetPolicySmoothModel
剪辑,根据上部和更低的噪音限制行动。代理发现累计奖励通过下一个行动目标的批评。在每次训练步骤,更新每个评论家的参数通过最小化损失lk在所有采样的经历。
每一个D1使用以下步骤,更新演员参数采样梯度最大化预期的折扣奖励政策。设置D1,可以使用
PolicyUpdateFrequency
选择。在这里,G人工智能最低的梯度评论家输出对演员的行动计算网络,然后呢Gπi演员的梯度输出对演员的参数。两个梯度是观察评估年代我。
每一个D2步骤,更新目标演员和批评家根据目标更新方法。指定D2,可以使用
TargetUpdateFrequency
选择。有关更多信息,请参见目标更新方法。
为简单起见,这个算法中的演员和评论家更新显示一个梯度更新使用基本随机梯度下降法。实际的梯度更新方法取决于您指定使用的优化器rlOptimizerOptions
对象分配给rlCriticOptimizerOptions
财产。
目标更新方法
TD3代理更新他们的目标演员和评论家参数使用下列目标更新方法之一。
平滑——更新目标参数在每个时间步使用平滑因子τ。指定平滑因子,使用
TargetSmoothFactor
选择。周期——定期更新目标参数不平滑(
TargetSmoothFactor = 1
)。指定更新期间,使用TargetUpdateFrequency
参数。周期性的平滑——定期更新目标参数平滑。
配置目标更新方法,创建一个rlTD3AgentOptions
对象,并设置TargetUpdateFrequency
和TargetSmoothFactor
参数如下表所示。
更新方法 | TargetUpdateFrequency |
TargetSmoothFactor |
---|---|---|
平滑(默认) | 1 |
不到1 |
周期 | 大于1 |
1 |
周期性的平滑 | 大于1 |
不到1 |
引用
[1]藤本,斯科特,Herke范霍夫,David Meger和。“Actor-Critic方法解决函数近似误差”。ArXiv: 1802.09477 (Cs,统计),2018年10月22日。https://arxiv.org/abs/1802.09477。