PPO(Proximal Policy Optimization): 近端策略优化
PG: Policy Gradient
推导过程

PPO 是在 PG 基础上增加了对 $r^t$ 的裁剪,限制策略更新幅度,遵循 “保守更新” 原则。
标准PPO的问题
- $A^t$ < 0, 原始$r^t$(θ) > 1+ϵ时,$r^t$(θ)$A^t$ < (1+ϵ)$A^t$, 此时min操作会选择更小的原始乘积$r^t$(θ)$A^t$,裁剪完全不起作用
- 例子:$A^t$ = −10,离策略下$r^t$(θ) = 100(极易出现的极端值):
- 原始乘积:100×(−10)=−1000
- 裁剪后乘积:1.2×(−10)=−12
- min (-1000, -12) = -1000,裁剪完全失效,损失项直接取极端负值
- 例子:$A^t$ = −10,离策略下$r^t$(θ) = 100(极易出现的极端值):
- 无界性:离策略场景下,$r^t$(θ)可以无限大(当前策略对该动作的概率远高于历史采样策略),$A^t$也可以出现极端负值,因此$r^t$(θ)$A^t$可以无限趋近于负无穷,完全没有任何下界约束
Dual-Clip PPO
Dual-Clip PPO没有修改概率比的裁剪逻辑,而是直接对损失项的最终结果增加了硬下界约束,从根源上解决无界问题:
$L^{DUAL−CLIP}$(θ) = $E^t$[max(min($r^t$(θ)$A^t$, clip($r^t$(θ),1−ϵ,1+ϵ)$A^t$), c⋅A^t)]
其中c>1是超参数(原论文设为3),当$A^t$<0时,c⋅$A^t$就是损失项的硬下界 —— 无论$r^t$(θ)多大、$A^t$多负,损失项都不会小于c⋅$A^t$,彻底解决了标准 PPO 在离策略场景下的无界方差和收敛性问题。

Dual-Clip PPO算法的策略梯度损失计算逻辑:
1 | def compute_policy_loss( |