主要内容

深度确定性策略梯度(DDPG)代理

深度确定性策略梯度(DDPG)算法是一种无模型、在线、非策略强化学习方法。DDPG代理是一种行动者-批评家强化学习代理,它寻找最优策略,使预期累积长期回报最大化。

有关不同类型的强化学习代理的更多信息,请参见强化学习代理

DDPG特工可以在具有以下观察和行动空间的环境中进行训练。

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

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

评论家 演员

核反应能量函数评论家年代一个),您可以使用rlQValueFunction

确定的政策的演员π年代),您可以使用rlContinuousDeterministicActor

训练期间,DDPG特工:

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

  • 使用循环经验缓冲区存储过去的经验。代理使用从缓冲区中随机抽样的一小批经验来更新演员和评论家。

  • 在每个训练步骤使用随机噪声模型扰动策略选择的动作。

演员和评论家的作用

为了估计策略和价值函数,DDPG代理维护四个函数逼近器:

  • 演员π年代θ) -演员,有参数θ需要观察年代并返回使长期回报最大化的相应行为。

  • 目标的演员πt年代θt) -为了提高优化的稳定性,代理定期更新目标参与者的参数θt使用最新的参与者参数值。

  • 评论家年代一个ϕ) -批评家,有参数ϕ需要观察年代和行动一个作为投入和回报的相应期望长期回报。

  • 目标评论家t年代一个ϕt) -为了提高优化的稳定性,agent定期更新目标临界参数ϕt使用最新的批评家参数值。

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

有关为函数近似创建参与者和批评者的更多信息,请参见创建政策和价值功能

在训练过程中,代理调整参数值θ.训练后,参数保持其调优值,并将训练后的actor函数近似器存储在π年代).

代理创建

您可以在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. 随机抽样一小批经验(年代一个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π我是actor输出相对于actor参数的梯度。对两种梯度进行了观察评估年代

    8. 根据目标更新方法更新目标参与者和批评家参数。有关更多信息,请参见目标更新方法

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

目标更新方法

DDPG代理使用以下目标更新方法之一更新其目标参与者和批评家参数。

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

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

  • 周期-定期更新目标参数,不平滑(TargetSmoothFactor = 1).命令指定更新周期TargetUpdateFrequency参数。

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

要配置目标更新方法,请创建rlDDPGAgentOptions对象,并设置TargetUpdateFrequency而且TargetSmoothFactor参数说明如下表所示。

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

参考文献

[1]利利卡普、蒂莫西·P、乔纳森·j·亨特、亚历山大·普里策尔、尼古拉斯·赫斯、汤姆·埃雷兹、尤瓦尔·塔萨、大卫·西尔弗和达安·威尔斯特拉。“深度强化学习的持续控制。”ArXiv: 1509.02971 (Cs,统计)2015年9月9日。https://arxiv.org/abs/1509.02971

另请参阅

|

相关的话题

Baidu
map