# PPO 裁剪目标函数可视化：L^CLIP 与多轮更新

> 来源：https://dqn.cn/tools/ppo-clip ｜ 作者：DQN.CN 编辑部 ｜ 发布：2026-11-01 ｜ 更新：2026-11-01 ｜ 许可：CC BY-NC-SA 4.0（文字）/ MIT（代码）

> （此处为交互工具，请在网页中使用：https://dqn.cn/tools/ppo-clip）

## 目标函数

$$
L^{CLIP}(\theta) = \mathbb{E}_t\Big[\min\big(r_t(\theta)\hat A_t,\ \mathrm{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat A_t\big)\Big],\qquad r_t(\theta) = \frac{\pi_\theta(a_t\mid s_t)}{\pi_{\theta_{old}}(a_t\mid s_t)}
$$

取 min 使它成为未裁剪目标的**悲观下界**：

- $\hat A > 0$：$r$ 超过 $1+\epsilon$ 后目标变平，不再奖励继续提高该动作的概率；但 $r < 1-\epsilon$ 时不裁剪，允许“纠正”。
- $\hat A < 0$：$r$ 低于 $1-\epsilon$ 后目标变平；$r > 1+\epsilon$ 时不裁剪，坏动作概率过高会被全力压下。

## 可以试试

- A = +1，把 r 从 0.5 拖到 2：圆点从绿色（有梯度）变成灰色（梯度为 0）的位置正好是 $1+\epsilon$。
- 切换到 A = −1，平台出现在左边 $1-\epsilon$ 处。
- 下方的多轮更新模拟：K = 20 轮、步长 0.5 时，不裁剪的 r 一路涨到接近 $1/\pi_{old}$（概率被推到接近 1），PPO 的 r 停在 $1+\epsilon$ 附近；把步长调大，最后一步可能“冲过”边界，这也是实践中还要监控 KL 或做早停的原因。
- 增大 ε：允许每轮数据把策略推得更远，学习更快但更不稳定。

## 相关教程

- [PPO](https://dqn.cn/advanced/ppo)
- [TRPO](https://dqn.cn/advanced/trpo)
- [全部交互工具](https://dqn.cn/tools/)
