Skip to content

E.3.3 PPO 裁剪、Adam 与更新稳定性

前置知识E.3.2 策略梯度与优势函数——你需要知道策略梯度和优势函数。


PPO 的裁剪直觉

策略梯度告诉我们"好动作概率往上调,坏动作概率往下调",但没说每次该调多少。如果一次调得太猛,策略可能彻底变形——好比学骑自行车,猛打方向盘比不打方向更危险。PPO 的设计就是为了防止这种情况。它首先关注一个量——概率比(probability ratio):

rt(θ)=πθ(atst)πold(atst).r_t(\theta)=\frac{\pi_\theta(a_t\mid s_t)}{\pi_{old}(a_t\mid s_t)}.

看一个具体数字。旧策略选择某动作的概率是 0.20.2,新策略变成 0.30.3

rt=0.30.2=1.5.r_t=\frac{0.3}{0.2}=1.5.

这表示新策略选择该动作的倾向变成原来的 1.51.5 倍。如果优势 A^t=4\hat{A}_t=4,不裁剪时的目标是:

rtA^t=1.5×4=6.r_t\hat{A}_t=1.5\times4=6.

但 PPO 会把概率比限制在一个范围内。假设裁剪范围是 [0.8,1.2][0.8,1.2],那么 1.51.5 会被压到 1.21.2

clip(rt,0.8,1.2)A^t=1.2×4=4.8.\mathrm{clip}(r_t,0.8,1.2)\hat{A}_t=1.2\times4=4.8.

PPO 承认这个动作好,也愿意提高它的概率,但不允许因为一次样本就做过激的改变。最终取 min 是为了在裁剪和非裁剪之间选择更保守的那一个。


Adam:自适应调节步长的优化器

到目前为止,我们控制更新幅度的手段还只有学习率和 PPO 裁剪。但在实际训练中,梯度的幅度经常剧烈波动——同一批数据里某些参数的梯度可能很大,另一些又很小。如果所有参数共享同一个学习率,要么大梯度的参数更新过猛,要么小梯度的参数几乎不动。Adam 优化器就是为了解决这个"步长不均匀"的问题而设计的。

PPO 裁剪控制的是策略更新幅度,而 Adam 优化器控制的是梯度更新的步长。普通梯度下降只用当前梯度更新参数,但梯度经常忽大忽小,容易造成训练不稳定。Adam 的做法是同时维护两个统计量:

  • 一阶矩:梯度的滑动平均,表示常见方向。
  • 二阶矩:梯度平方的滑动平均,表示波动尺度。

一个简化的理解方式:如果某个参数最近的梯度总是正的,Adam 会更有信心沿正方向更新;如果梯度忽大忽小、方向不稳定,Adam 会自动缩小有效步长,避免走偏。

强化学习的梯度噪声通常比监督学习更大,因为训练数据不是固定的,而是来自不断变化的策略和环境交互。因此 Adam、梯度裁剪、学习率调度这些稳定训练的手段,在 RL 中几乎是标配。


小结

本篇讨论了两种控制更新稳定性的手段:

工具控制对象核心思想
PPO 裁剪策略变化幅度限制概率比范围,不让策略一次走太远
Adam梯度更新步长用一阶矩和二阶矩自适应调节每个参数的有效学习率

两者配合使用:PPO 从宏观上限制策略不偏离太远,Adam 从微观上平滑梯度噪声。下一篇我们来看策略梯度和 PPO 背后的推导骨架。

下一篇E.3.4 推导工具:log trick 与 Taylor —— 看懂策略梯度和 PPO 的推导骨架。

Built for reusable bilingual course delivery