【深度强化学习】TRPO、PPO
策略梯度的缺点
-
步长难以确定,一旦步长选的不好,就导致恶性循环
步长不合适 → 策略变差 → 采集的数据变差 → (回报 / 梯度导致的)步长不合适 步长不合适 \to 策略变差 \to 采集的数据变差 \to (回报/梯度导致的)步长不合适 步长不合适→策略变差→采集的数据变差→(回报/梯度导致的)步长不合适 -
一阶信息不限制步长容易越过局部最优,而且很难回来
TRPO 置信域策略优化
思想:
- 步子不要太大,应该保证更新在某个邻域内 ∣ ∣ θ ? θ o l d ∣ ∣ < Δ ||\theta-\theta_{old}||<\Delta ∣∣θ?θold?∣∣<Δ(或者 K L ( π θ ( ? ∣ ? ) ) , π θ o l d ( ? ∣ ? ) ) < Δ \mathrm{KL}(\pi_\theta(\cdot|\cdot)),\pi_{\theta_{old}}(\cdot|\cdot))<\Delta KL(πθ?(?∣?)),πθold??(?∣?))<Δ)
- 利用二阶信息估计邻域 N ( θ o l d ) \mathcal{N}(\theta_{old}) N(θold?) 内的 θ \theta θ
步骤
- 对循环的每一步,用 θ o l d \theta_{old} θold? 策略采样一条轨迹(MC 思想)
- 对每一个轨迹位置,都计算它们的折扣回报 G i G_i Gi?
- 用采样的样本估计期望作为近似的目标函数
L
(
θ
∣
θ
o
l
d
)
L(\theta|\theta_{old})
L(θ∣θold?)(除以
π
o
l
d
\pi_{old}
πold?是因为重要性采样)
L ( θ ∣ θ o l d ) = E a i ~ π [ π ( a i ∣ s i ; θ ) G i ] L(\theta|\theta_{old}) = \mathbb{E}_{a_i\sim\pi}[{\pi(a_i|s_i;\theta)}G_i] L(θ∣θold?)=Eai?~π?[π(ai?∣si?;θ)Gi?]
L ( θ ∣ θ o l d ) = E a i ~ π o l d [ π ( a i ∣ s i ; θ ) π ( a i ∣ s i ; θ o l d ) G i ] \red{L(\theta|\theta_{old}) = \mathbb{E}_{a_i\sim\pi_{old}}[\frac{\pi(a_i|s_i;\theta)}{\pi(a_i|s_i;\theta_{old})}G_i]} L(θ∣θold?)=Eai?~πold??[π(ai?∣si?;θold?)π(ai?∣si?;θ)?Gi?] - 利用某种(二阶)优化方法(涉及 Fisher Information Matrix、共轭梯度法)求邻域内的能够最大化近似代价函数的最大值
优势:
- 训练更稳定,收敛曲线不会剧烈波动,而且对超参数不敏感
- 样本有效,用更少的经验就能达到和 PG 相同的表现
缺点:
- 重要性采样:除法引起高方差
- 有约束优化问题,不容易优化
PPO 近端策略优化
PPO 实际上就是为了解决 TRPO 的这两个问题而提出的,做的改进是:
- Clip 截断重要性采样的值,防止过大(类似于梯度截断)
C l i p { π ( a i ∣ s i ; θ ) π ( a i ∣ s i ; θ o l d ) , 1 ? ? , 1 + ? } \mathrm{Clip} \left\{ \frac{\pi(a_i|s_i;\theta)}{\pi(a_i|s_i;\theta_{old})} , 1-\epsilon, 1+\epsilon \right\} Clip{π(ai?∣si?;θold?)π(ai?∣si?;θ)?,1??,1+?} - KL散度条件转为无约束,自适应
β
\beta
β超参
max ? θ L ( θ ∣ θ o l d ) ? β K L ( θ ∣ θ o l d ) \max_\theta L(\theta|\theta_{old}) - \beta \mathrm{KL} (\theta|\theta_{old}) θmax?L(θ∣θold?)?βKL(θ∣θold?)
总结
策略梯度
REINFORCE (MC,从梯度上升开始、除以
π
\pi
π变成 Ln)
REINFORCE → 基线 REINFORCE (MC,
G
?
v
(
s
)
G-v(s)
G?v(s))→ Actor-Critic(TD,
r
+
γ
v
(
s
)
?
v
(
s
′
)
r+γv(s)-v(s')
r+γv(s)?v(s′))
REINFORCE → TRPO (有约束、二阶信息)→ PPO(有约束转无约束、截断重要性)
REINFORCE → …
More
https://spinningup.openai.com/en/latest/algorithms/trpo.html
https://jonathan-hui.medium.com/rl-the-math-behind-trpo-ppo-d12f6c745f33
https://towardsdatascience.com/trust-region-policy-optimization-trpo-explained-4b56bd206fc2
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!