深度确定性政策梯度(DDPG)算法是一种无模型的在线,禁止策略强化学习方法。DDPG代理是一个演员 - 评论家加强学习代理,可以搜索最佳政策,以最大化预期的累计长期奖励。
有关不同类型的强化学习代理商的更多信息,请参阅加固学习代理人。
DDPG代理可以在具有以下观察和动作空间的环境中培训。
观察空间 | 行动空间 |
---|---|
连续或离散 | 连续的 |
DDPG代理使用以下演员和批评者表示。
评论家 | 演员 |
---|---|
Q值功能评论家q(s,a),您创建使用 |
确定性政策演员π(s),您创建使用 |
在培训期间,DDPG代理商:
在学习期间每次更新Actor和批评者属性。
使用循环体验缓冲区存储过去的经验。代理使用从缓冲区随机采样的迷你批次体验更新演员和批评者。
在每个训练步骤中使用随机噪声模型选择由策略选择的动作。
要估算策略和值函数,DDPG代理维护四个函数近似器:
演员μ.(S.) - 演员采取观察S.并返回最大化长期奖励的相应操作。
目标演员μ'(S.) - 为了提高优化的稳定性,代理基于最新的Actor参数值定期更新目标actor。
评论家问:(S.那一种) - 评论家采取观察S.和行动一种作为输入并返回相应的长期奖励期望。
目标评论家Q'(S.那一种) - 为了提高优化的稳定性,代理将根据最新的批评参数值定期更新目标批评。
两个都问:(S.那一种) 和Q'(S.那一种)具有相同的结构和参数化,两者都有μ.(S.) 和μ'(S.)具有相同的结构和参数化。
培训完成后,培训的最佳策略存储在演员中μ.(S.)。
有关创建函数近似的演员和批评者的更多信息,请参阅创建策略和值函数表示。
您可以根据环境的观察和操作规范创建具有默认Actor和批评者表示的DDPG代理。为此,请执行以下步骤。
为您的环境创建观察规范。如果您已有环境界面对象,可以使用环境界面对象getobservationInfo.
。
为环境创建动作规范。如果您已有环境界面对象,可以使用环境界面对象getActionInfo.
。
如果需要,请指定每个学习层中的神经元数或是否使用LSTM层。为此,请使用Agent初始化选项对象使用rlagentinitializationOptions.
。
如果需要,请使用一个指定代理选项rlddpgagentoptions.
目的。
使用一个创建代理rlddpgagent.
目的。
或者,您可以创建Actor和批评批读表示,并使用这些表示来创建代理。在这种情况下,确保演员和批评者表示的输入和输出尺寸与环境的相应动作和观察规范匹配。
使用一个创建演员RLDETerminyActorRepresentation
目的。
使用一个批评评论家rlqvalueerepresentation
目的。
使用一个指定代理选项rlddpgagentoptions.
目的。
使用一个创建代理rlddpgagent.
目的。
有关创建函数近似的演员和批评者的更多信息,请参阅创建策略和值函数表示。
DDPG代理使用以下培训算法,在每次步骤中都更新他们的演员和批评模型。要配置培训算法,请使用arlddpgagentoptions.
目的。
初始化评论家问:(S.那一种)随机参数值θ.问:,并使用相同的随机参数值初始化目标批读: 。
初始化演员μ.(S.)随机参数值θ.μ.,并以相同的参数值初始化目标actor: 。
对于每个培训时间步骤:
目前的观察S.,选择Action.一种=μ.(S.)+N, 在哪里N是来自噪声模型的随机噪声。要配置噪声模型,请使用NoteToptions.
选项。
执行动作一种。遵守奖励R.和下一次观察S'。
存储体验(S.那一种那R.那S')在经验缓冲区中。
样本随机迷你批次m经验(S.一世那一种一世那R.一世那S'一世)来自经验缓冲区。指定m, 使用小匹匹匹匹配
选项。
如果S'一世是终端状态,设置值函数目标y一世至R.一世。否则,将它设置为
价值函数目标是经验奖励的总和R.一世和未来的未来奖励。指定折扣因素γ., 使用贴纸物
选项。
要计算累积奖励,代理首先通过通过下次观察来计算下一个操作S.一世'从采样体验到目标演员。通过将下一个措施传递给目标批评者来找到累积奖励。
通过最大限度地减少损失来更新批评者参数L.在所有采样的体验中。
使用以下采样策略渐变更新Actor参数以最大限度地提高预期的折扣奖励。
这里,GAI.是批评者的渐变输出了由演员网络计算的动作以及Gμi.是actor输出相对于actor参数的梯度。评估两个梯度以进行观察S.一世。
根据目标更新方法更新目标演员和批评者参数。有关更多信息,请参阅目标更新方法。
为简单起见,该算法中的演员和批评者更新显示了使用基本随机梯度下降的渐变更新。实际渐变更新方法取决于您使用的优化器rlrepresentationOptions.
。
DDPG代理使用以下目标更新方法之一更新其目标演员和批评者参数。
平滑- 使用平滑因子的每次执行目标参数τ.。要指定平滑系数,请使用targetsmoothfactor.
选项。
定期- 定期更新目标参数而不进行平滑(targetsmoothfactor = 1
)。要指定更新期间,请使用TargetupdateFrequency.
范围。
定期平滑- 使用平滑定期更新目标参数。
要配置目标更新方法,请创建一个rlddpgagentoptions.
对象,并设置TargetupdateFrequency.
和targetsmoothfactor.
参数如下表所示。
更新方法 | TargetupdateFrequency. |
targetsmoothfactor. |
---|---|---|
平滑(默认) | 1 |
少于1 |
定期 | 比...更棒1 |
1 |
定期平滑 | 比...更棒1 |
少于1 |
[1] LillicRap,Timothy P.,Jonathan J. Hunt,亚历山大Pritzel,Nicolas Heess,Tom Erez,Yuval Tassa,David Silver和Daan Wierstra。“与深增强学习连续控制。”arxiv:1509.02971 [CS,Stat],2015年9月9日。https://arxiv.org/abs/1509.02971。
rlddpgagent.
|rlddpgagentoptions.