跳转至

PPO 的基本动机

PPO 是 Proximal Policy Optimization。它的目标是在更新策略时避免一步走太远。

为什么需要限制更新幅度

策略梯度会提高高 advantage 动作的概率。但如果更新太大,新策略可能和旧策略差别很大,导致采样数据不再可靠。

PPO 的核心思想:

允许策略变好,但限制新旧策略概率比不要偏离太多。

概率比

定义:

\[ r_t(\theta) = {\pi_\theta(a_t\mid s_t) \over \pi_{\theta_{\rm old}}(a_t\mid s_t)}. \]

如果 \(r_t=1\),说明新旧策略对这个动作的概率相同。

如果 \(r_t>1\),新策略更倾向该动作。

如果 \(r_t<1\),新策略降低了该动作概率。

未裁剪目标

普通重要性采样形式可写成:

\[ L(\theta) = \mathbb E \left[ r_t(\theta)A_t \right]. \]

\(A_t>0\),希望增加动作概率。
\(A_t<0\),希望降低动作概率。

Clip 目标

PPO 使用裁剪:

\[ L^{\rm clip}(\theta) = \mathbb E \left[ \min \left( r_t(\theta)A_t, \mathrm{clip}(r_t(\theta),1-\epsilon,1+\epsilon)A_t \right) \right]. \]

这会限制 \(r_t\) 偏离 1 的范围。

直觉:

  • 好动作可以提高概率,但不能无限提高。
  • 坏动作可以降低概率,但不能一步降太多。
  • 更新保持在旧策略附近。

PPO 不是完整 RL 教程

PPO 实际实现还会包含:

  • value loss。
  • entropy bonus。
  • advantage estimation。
  • 多轮 epoch 更新。
  • trajectory buffer。

本站只需要掌握 PPO 的核心动机:用概率比和 clip 约束策略更新幅度。

招聘考点

代表题:PPO 中的 \(r_t(\theta)\) 是什么?

\(r_t(\theta)=\pi_\theta(a_t\mid s_t)/\pi_{\theta_{\rm old}}(a_t\mid s_t)\),表示新策略相对旧策略对同一动作的概率变化。PPO clip 目标限制这个比值偏离 1 的幅度,从而避免策略一步更新过大。完整题解见 强化学习与后训练题