主要内容

深决定性策略梯度代理

深决定性策略梯度(DDPG)算法是一个模范自由,在网上,off-policy强化学习方法。DDPG代理是一个actor-critic强化学习代理搜索最优政策,最大化预期的长期累积奖励。

更多信息在不同类型的强化学习代理,看看强化学习代理

DDPG代理可以用下面的训练环境中观察和行动空间。

观察太空 行动空间
连续或离散 连续

DDPG代理使用下面的演员和评论家。

评论家 演员

核反应能量函数评论家(年代,一个),您将创建使用rlQValueFunction

确定的政策的演员π(年代),您将创建使用rlContinuousDeterministicActor

在培训期间,DDPG代理:

  • 更新的演员和评论家属性在每个时间步在学习。

  • 商店过去的经验使用循环缓冲区的经验。代理更新经验的演员兼评论家使用mini-batch随机取样的缓冲区。

  • 扰乱行为选择的政策在每个训练步骤使用随机噪声模型。

演员和批判功能

估计策略和价值函数,DDPG代理维护四个函数近似者:

  • 演员π(年代;θ)——演员,参数θ需要观察年代并返回相应的行动,最大化的长期回报。

  • 目标的演员πt(年代;θt)——提高稳定性的优化,代理定期更新目标演员参数θt使用最新的演员参数值。

  • 评论家(年代,一个;ϕ)——评论家,参数ϕ需要观察年代和行动一个作为输入,并返回相应的预期的长期回报。

  • 目标评论家t(年代,一个;ϕt)——提高稳定性的优化,代理定期更新目标评论家参数ϕt使用最新的评论家参数值。

这两个(年代,一个;ϕ),t(年代,一个;ϕt)具有相同的结构和参数化,两者兼而有之π(年代;θ),πt(年代;θt)具有相同的结构和参数。

更多信息为函数近似创造演员和批评者,明白了创建政策和价值功能

在培训期间,代理曲调的参数值θ。培训后,参数保持在他们的调谐值和函数近似者存储在训练演员π(年代)。

代理创建

您可以创建和训练在MATLAB DDPG代理®命令行或使用强化学习设计应用。有关创建代理使用的更多信息强化学习设计,请参阅使用强化学习设计师创建代理

在命令行上,您可以创建一个DDPG代理与默认的演员和评论家从环境中基于观察和操作规范。为此,执行以下步骤。

  1. 为您的环境创建观测规范。如果你已经有一个环境接口对象,您可以获得这些规范使用getObservationInfo

  2. 为您的环境创建动作规范。如果你已经有一个环境接口对象,您可以获得这些规范使用getActionInfo

  3. 如果需要,指定数量的神经元在每个可学的层或者是否使用一个LSTM层。为此,创建一个代理初始化选项对象使用rlAgentInitializationOptions

  4. 如果需要,使用一个指定代理选项rlDDPGAgentOptions对象。

  5. 使用一个创建代理rlDDPGAgent对象。

或者,您可以创建演员和评论家和使用这些对象来创建你的代理。在这种情况下,确保演员和评论家的输入和输出维度匹配相应的行动和观测环境的规范。

  1. 使用一个创建一个演员rlContinuousDeterministicActor对象。

  2. 创建一个使用一个评论家rlQValueFunction对象。

  3. 使用一个指定代理选项rlDDPGAgentOptions对象。

  4. 使用一个创建代理rlDDPGAgent对象。

更多信息为函数近似创造演员和批评者,明白了创建政策和价值功能

训练算法

DDPG代理使用下面的训练算法,他们更新他们的演员和评论家模型在每个时间步。配置训练算法,使用一个指定选项rlDDPGAgentOptions对象。

  • 初始化批评(年代,一个;ϕ)和随机参数值ϕ和初始化目标评论家参数ϕt相同的价值观: ϕ t = ϕ

  • 初始化的演员π(年代;θ)和随机参数值θ,并初始化目标演员参数θt相同的价值观: θ t = θ

  • 对于每一个培训时间步骤:

    1. 为当前的观测年代,选择行动一个=π(年代;θ)+N,在那里N随机噪声的噪声模型。配置噪声模型,使用NoiseOptions选择。

    2. 执行动作一个。观察奖励R其次观察年代

    3. 存储经验(年代,一个,R,年代在缓冲区的经验。经验中指定缓冲区的长度ExperienceBufferLength财产的rlDDPGAgentOptions对象。

    4. 样本的随机mini-batch经验(年代,一个,R,年代从缓冲区的经验。指定,可以使用MiniBatchSize财产的rlDDPGAgentOptions对象。

    5. 如果年代终端状态,设置值目标函数yR。否则,将它设置为

      y = R + γ t ( 年代 , π t ( 年代 ; θ t ) ; ϕ t )

      目标函数值的和经验奖励R和折现未来的回报。指定折扣因素γ,可以使用DiscountFactor选择。

      首先计算累积奖励,代理计算下一个动作通过下一个观察年代从采样经验到目标的演员。代理发现累积奖励通过下一个行动目标的批评家。

    6. 更新评论家参数通过最小化损失l在所有采样的经历。

      l = 1 = 1 ( y ( 年代 , 一个 ; ϕ ) ) 2

    7. 更新演员使用以下参数采样梯度最大化预期的折扣奖励政策。

      θ J 1 = 1 G 一个 G π G 一个 = 一个 ( 年代 , 一个 ; ϕ ) 在哪里 一个 = π ( 年代 ; θ ) G π = θ π ( 年代 ; θ )

      在这里,G人工智能批评家的梯度输出对演员的行动计算网络,然后呢Gπi演员的梯度输出对演员的参数。两个梯度是观察评估年代

    8. 更新目标演员和评论家参数取决于目标更新方法。更多信息见目标更新方法

为简单起见,这个算法中的演员和评论家更新显示一个梯度更新使用基本随机梯度下降法。实际的梯度更新方法取决于您指定使用的优化器rlOptimizerOptions对象分配给rlCriticOptimizerOptions财产。

目标更新方法

DDPG代理更新他们的目标演员和评论家参数使用下列目标更新方法之一。

  • 平滑——更新目标参数在每个时间步使用平滑因子τ。指定平滑因子,使用TargetSmoothFactor选择。

    ϕ t = τ ϕ + ( 1 τ ) ϕ t ( 评论家参数 ) θ t = τ θ + ( 1 τ ) θ t ( 演员参数 )

  • 周期——定期更新目标参数不平滑(TargetSmoothFactor = 1)。指定更新期间,使用TargetUpdateFrequency参数。

  • 周期性的平滑——定期更新目标参数平滑。

配置目标更新方法,创建一个rlDDPGAgentOptions对象,并设置TargetUpdateFrequencyTargetSmoothFactor参数如下表所示。

更新方法 TargetUpdateFrequency TargetSmoothFactor
平滑(默认) 1 不到1
周期 大于1 1
周期性的平滑 大于1 不到1

引用

[1]Lillicrap,蒂莫西·P。,Jonathan J. Hunt, Alexander Pritzel, Nicolas Heess, Tom Erez, Yuval Tassa, David Silver, and Daan Wierstra. “Continuous Control with Deep Reinforcement Learning.”ArXiv: 1509.02971 (Cs,统计),2015年9月9日。https://arxiv.org/abs/1509.02971

另请参阅

|

相关的话题