深决定性策略梯度(DDPG)算法是一个模范自由,在网上,off-policy强化学习方法。DDPG代理是一个actor-critic强化学习代理搜索最优政策,最大化预期的长期累积奖励。
更多信息在不同类型的强化学习代理,看看强化学习代理。
DDPG代理可以用下面的训练环境中观察和行动空间。
观察太空 | 行动空间 |
---|---|
连续或离散 | 连续 |
DDPG代理使用下面的演员和评论家表示。
评论家 | 演员 |
---|---|
核反应能量函数评论家问(年代,一个),您将创建使用 |
确定的政策的演员π(年代),您将创建使用 |
在培训期间,DDPG代理:
更新的演员和评论家属性在每个时间步在学习。
商店过去的经验使用循环缓冲区的经验。代理更新经验的演员兼评论家使用mini-batch随机取样的缓冲区。
扰乱行为选择的政策在每个训练步骤使用随机噪声模型。
估计策略和价值函数,DDPG代理维护四个函数近似者:
演员π(年代|θ)——演员,参数θ需要观察年代并返回相应的行动,最大化的长期回报。
目标的演员πt(年代|θt)——提高稳定性的优化,定期代理设置目标演员参数θt最新的演员参数值。
评论家问(年代,一个|ϕ)——评论家,参数ϕ需要观察年代和行动一个作为输入,并返回相应的预期的长期回报。
目标评论家问t(年代,一个|ϕt)——提高稳定性的优化,定期代理设置目标评论家参数ϕt最新的评论家参数值。
这两个问(年代,一个),问t(年代,一个)具有相同的结构和参数化,两者兼而有之π(年代),πt(年代)具有相同的结构和参数。
当完成训练,训练最优政策是存储在演员π(年代)。
更多信息为函数近似创造演员和批评者,明白了创建政策和价值函数表示。
您可以创建和训练在MATLAB DDPG代理®命令行或使用强化学习设计应用程序。
有关创建代理使用的更多信息强化学习设计,请参阅使用强化学习设计师创建代理。
在命令行上,您可以创建一个DDPG代理与默认的演员和评论家表示基于观察和操作规范的环境。为此,执行以下步骤。
为您的环境创建观测规范。如果你已经有一个环境接口对象,您可以获得这些规范使用getObservationInfo
。
为您的环境创建动作规范。如果你已经有一个环境接口对象,您可以获得这些规范使用getActionInfo
。
如果需要,指定数量的神经元在每个可学的层或者是否使用一个LSTM层。为此,创建一个代理初始化选项对象使用rlAgentInitializationOptions
。
如果需要,使用一个指定代理选项rlDDPGAgentOptions
对象。
使用一个创建代理rlDDPGAgent
对象。
或者,您可以创建演员和评论家表示和使用这些表示创建你的代理。在这种情况下,确保输入和输出尺寸的参与者和评论家表示匹配相应的操作和观察环境的规范。
使用一个创建一个演员rlDeterministicActorRepresentation
对象。
创建一个使用一个评论家rlQValueRepresentation
对象。
使用一个指定代理选项rlDDPGAgentOptions
对象。
使用一个创建代理rlDDPGAgent
对象。
更多信息为函数近似创造演员和批评者,明白了创建政策和价值函数表示。
DDPG代理使用下面的训练算法,他们更新他们的演员和评论家模型在每个时间步。配置训练算法,使用一个指定选项rlDDPGAgentOptions
对象。
初始化批评问(年代,一个)和随机参数值ϕ和初始化目标评论家参数ϕt相同的价值观: 。
初始化的演员π(年代)和随机参数值θ,并初始化目标演员参数θt相同的价值观: 。
对于每一个培训时间步骤:
为当前的观测年代,选择行动一个=π(年代)+N,在那里N随机噪声的噪声模型。配置噪声模型,使用NoiseOptions
选择。
执行动作一个。观察奖励R其次观察年代。
存储经验(年代,一个,R,年代在缓冲区的经验。经验中指定缓冲区的长度ExperienceBufferLength
财产的rlDDPGAgentOptions
对象。
样本的随机mini-batch米经验(年代我,一个我,R我,年代我从缓冲区的经验。指定米,可以使用MiniBatchSize
财产的rlDDPGAgentOptions
对象。
如果年代我终端状态,设置值目标函数y我来R我。否则,将它设置为
目标函数值的和经验奖励R我和折现未来的回报。指定折扣因素γ,可以使用DiscountFactor
选择。
首先计算累积奖励,代理计算下一个动作通过下一个观察年代我从采样经验到目标的演员。代理发现累积奖励通过下一个行动目标的批评家。
更新评论家参数通过最小化损失l在所有采样的经历。
更新演员使用以下参数采样梯度最大化预期的折扣奖励政策。
在这里,G人工智能批评家的梯度输出对演员的行动计算网络,然后呢Gπi演员的梯度输出对演员的参数。两个梯度是观察评估年代我。
更新目标演员和评论家参数取决于目标更新方法。更多信息见目标更新方法。
为简单起见,这个算法中的演员和评论家更新显示一个梯度更新使用基本随机梯度下降法。实际的梯度更新方法取决于您指定使用的优化器rlRepresentationOptions
。
DDPG代理更新他们的目标演员和评论家参数使用下列目标更新方法之一。
平滑——更新目标参数在每个时间步使用平滑因子τ。指定平滑因子,使用TargetSmoothFactor
选择。
周期——定期更新目标参数不平滑(TargetSmoothFactor = 1
)。指定更新期间,使用TargetUpdateFrequency
参数。
周期性的平滑——定期更新目标参数平滑。
配置目标更新方法,创建一个rlDDPGAgentOptions
对象,并设置TargetUpdateFrequency
和TargetSmoothFactor
参数如下表所示。
更新方法 | 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。
rlDDPGAgent
|rlDDPGAgentOptions