核心要点

  • 核心是裁剪代理目标(clipped surrogate):限制新旧策略概率比偏离 1 的幅度

  • 把策略更新步长约束在信赖域附近,避免一次更新崩坏策略

  • 可对同一批数据做多轮 minibatch 更新,样本效率优于普通策略梯度

  • 实现比 TRPO 简单(无需二阶/共轭梯度),稳定、调参友好,故被广泛采用

标准回答

要解决的问题

策略梯度的一大痛点是步长难控:一步走太大可能让策略彻底崩坏,且数据用一次就丢、样本效率低。TRPO 用 KL 约束做信赖域更新很稳但实现复杂(二阶优化)。

PPO 的做法

PPO 用裁剪代理目标近似信赖域。定义新旧策略概率比 r(θ) = π_new/π_old,目标取 min( r·A, clip(r, 1−ε, 1+ε)·A ):

  • 当更新让 r 偏离 1 太多时,clip 把目标截断,梯度不再鼓励继续大幅更新
  • 等于隐式地把每步策略变化限制在一个小范围内

为什么常用

  • 稳定:裁剪防止破坏性的大更新
  • 样本高效:同一批轨迹可做多个 epoch 的 minibatch 更新
  • 简单:一阶优化即可,无需 TRPO 的二阶计算
  • 通用:从游戏控制到 RLHF/RLAIF 的策略优化都在用

常见误区

⚠️ 常见踩坑

PPO 的裁剪作用在「概率比」而非「梯度」或「奖励」上;它是近似信赖域而非严格 KL 约束;裁剪只防过大更新,不保证单调提升。

追问

追问 1PPO 与 TRPO 的关键区别是什么?

TRPO 用硬性 KL 约束做信赖域优化,需共轭梯度、二阶近似,实现复杂。PPO 用一阶的裁剪代理目标近似同样的「小步更新」效果,去掉了二阶计算,工程上更易实现、调参更友好,效果接近甚至更好,因此更流行。

追问 2裁剪系数 ε 过大或过小会怎样?

ε 过小,策略每步几乎不动,学习缓慢、样本利用不充分;ε 过大,裁剪几乎不起作用,退化为普通策略梯度,可能出现破坏性的大更新导致不稳定。常用取值约 0.1~0.3,需按任务调。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。