E.3.3 PPO 裁剪、Adam 与更新稳定性
前置知识:E.3.2 策略梯度与优势函数——你需要知道策略梯度和优势函数。
PPO 的裁剪直觉
策略梯度告诉我们"好动作概率往上调,坏动作概率往下调",但没说每次该调多少。如果一次调得太猛,策略可能彻底变形——好比学骑自行车,猛打方向盘比不打方向更危险。PPO 的设计就是为了防止这种情况。它首先关注一个量——概率比(probability ratio):
看一个具体数字。旧策略选择某动作的概率是 ,新策略变成 :
这表示新策略选择该动作的倾向变成原来的 倍。如果优势 ,不裁剪时的目标是:
但 PPO 会把概率比限制在一个范围内。假设裁剪范围是 ,那么 会被压到 :
PPO 承认这个动作好,也愿意提高它的概率,但不允许因为一次样本就做过激的改变。最终取 min 是为了在裁剪和非裁剪之间选择更保守的那一个。
Adam:自适应调节步长的优化器
到目前为止,我们控制更新幅度的手段还只有学习率和 PPO 裁剪。但在实际训练中,梯度的幅度经常剧烈波动——同一批数据里某些参数的梯度可能很大,另一些又很小。如果所有参数共享同一个学习率,要么大梯度的参数更新过猛,要么小梯度的参数几乎不动。Adam 优化器就是为了解决这个"步长不均匀"的问题而设计的。
PPO 裁剪控制的是策略更新幅度,而 Adam 优化器控制的是梯度更新的步长。普通梯度下降只用当前梯度更新参数,但梯度经常忽大忽小,容易造成训练不稳定。Adam 的做法是同时维护两个统计量:
- 一阶矩:梯度的滑动平均,表示常见方向。
- 二阶矩:梯度平方的滑动平均,表示波动尺度。
一个简化的理解方式:如果某个参数最近的梯度总是正的,Adam 会更有信心沿正方向更新;如果梯度忽大忽小、方向不稳定,Adam 会自动缩小有效步长,避免走偏。
强化学习的梯度噪声通常比监督学习更大,因为训练数据不是固定的,而是来自不断变化的策略和环境交互。因此 Adam、梯度裁剪、学习率调度这些稳定训练的手段,在 RL 中几乎是标配。
小结
本篇讨论了两种控制更新稳定性的手段:
| 工具 | 控制对象 | 核心思想 |
|---|---|---|
| PPO 裁剪 | 策略变化幅度 | 限制概率比范围,不让策略一次走太远 |
| Adam | 梯度更新步长 | 用一阶矩和二阶矩自适应调节每个参数的有效学习率 |
两者配合使用:PPO 从宏观上限制策略不偏离太远,Adam 从微观上平滑梯度噪声。下一篇我们来看策略梯度和 PPO 背后的推导骨架。
下一篇:E.3.4 推导工具:log trick 与 Taylor —— 看懂策略梯度和 PPO 的推导骨架。