PPO近端策略优化的裁剪机制
PPO(Proximal Policy Optimization)是目前最主流的强化学习算法之一。请详细解释PPO的裁剪替代目标函数、重要性采样和信任区域的设计思路。
回答
Yahuda
PPO由Schulman等人于2017年(OpenAI)提出,通过限制策略更新步长实现了稳定高效的政策优化,成为RLHF和诸多应用的默认算法。
核心挑战: 策略梯度方法的每次更新都可能导致策略剧变(Destructive Big Updates),破坏收集到的数据的有效性。TRPO使用KL散度约束,但计算复杂。PPO追求更简单高效的替代方案。
裁剪替代目标函数(Clipped Surrogate Objective): L^CLIP(θ) = E_t[min(r_t(θ)·Â_t, clip(r_t(θ), 1-ε, 1+ε)·Â_t)]
其中:
- r_t(θ) = π_θ(a_t|s_t) / π_θ_old(a_t|s_t):新旧策略的概率比(重要性采样权重)。
- Â_t:优势估计(GAE)。
- ε:裁剪范围超参数,通常0.1或0.2。
工作原理:
- 当Â_t > 0(该动作好于平均):希望增加其概率。clip限制r_t(θ)不超过1+ε,防止过度更新。
- 当Â_t < 0(该动作较差):希望降低其概率。clip限制r_t(θ)不低于1-ε,防止过度降低。
- clip(r_t(θ), 1-ε, 1+ε)·Â_t是下界(pessimistic bound):裁剪后取min确保优化的是一个保守的目标。
重要性采样: PPO使用重要性采样比率r_t(θ)来重用旧策略收集的轨迹数据。这意味着可以多次使用同批数据进行多轮梯度更新(通常K=3-15 epochs),提高样本效率。
信任区域(Trust Region): 裁剪机制隐式地将策略更新限制在信任区域内(r_t(θ)≈1),防止单次更新过大。这是对TRPO复杂约束的简化近似,实践证明同样有效且更易实现。
完整PPO损失函数: L_t(θ) = L^CLIP_t(θ) - c1·L^VF_t(θ) + c2·Sπ_θ
- L^CLIP:裁剪策略梯度目标。
- L^VF:值函数(Critic)的MSE损失。
- S[π_θ]:策略熵奖励,鼓励探索。
- c1, c2:权重系数(如c1=0.5, c2=0.01)。
PPO算法流程:
- 用当前策略与环境交互,收集T个时间步的轨迹。
- 计算GAE优势Â_t。
- 对收集的数据进行K轮小批量梯度下降(优化裁剪目标)。
- 重复以上过程直到收敛。
优势:实现简单、超参数鲁棒、性能稳定,广泛应用于机器人控制、游戏AI、LLM微调(RLHF)。