一、前言
强化学习让智能体自主决策的概念引人入胜。随着深度学习的发展,强化学习与大模型结合,衍生出 AlphaGo、DQN、PPO 等技术。其中 PPO(Proximal Policy Optimization)因收敛稳定、实现简洁而备受关注。OpenAI 在连续控制、游戏及大模型微调中均展示了其威力。
本文将深入剖析 PPO 的创新点与实现细节,从基础概念到代码落地,帮助读者理解其在机器人控制、游戏 AI 及大模型训练中的实际应用。
二、强化学习基础:MDP 与策略迭代
PPO 属于策略梯度方法,理解 MDP 是前提。
2.1 马尔可夫决策过程(MDP)
MDP 由状态空间 S、动作空间 A、转移概率 P(s'|s,a)、奖励函数 r(s,a) 和折扣因子 γ 构成。目标是找到最优策略 π*,最大化期望累积奖励。
2.2 策略迭代
核心在于优化策略 π(a|s)。PPO 直接对策略参数进行梯度更新,因此需先理解策略梯度的原理及其局限性。
三、策略梯度演进:从 Vanilla PG 到 TRPO
3.1 策略梯度简述
定义可微策略函数 πθ(a|s),通过梯度上升最大化期望回报。经典估计公式为:
g^ = E_t [ ∇θ log πθ(at|st) Ât ]
这里 Ât 是优势函数估计。问题在于多次更新同一批数据会导致策略分布偏移过大,采样失效。
3.2 TRPO 的约束思路
TRPO 通过限制新旧策略的 KL 散度来防止更新过猛。虽然效果稳定,但涉及二阶优化,实现复杂。
四、PPO 核心思想与公式推导
PPO 是 TRPO 的近似实现,用简单的一阶方法达到同等稳定性。
4.1 两种实现思路
- Clipped Surrogate Objective(裁剪目标):最常用。
- Adaptive KL Penalty(自适应 KL 惩罚):动态调整惩罚系数。
下文重点聚焦 Clipped 版本。
4.2 Clipped Surrogate Objective
定义概率比率 rt(θ) = πθ(at|st) / πθold(at|st)。 PPO 的目标函数嵌入截断操作:
LCLIP(θ) = Et [ min(rt(θ)Ât, clip(rt(θ), 1-ε, 1+ε)Ât) ]
ε 通常取 0.1 或 0.2。当 rt 超出 [1-ε, 1+ε] 时,目标被截断。这意味着如果新策略表现更好(A>0),超过阈值后不再奖励;如果更差(A<0),则实打实惩罚。这避免了破坏性的大步偏移,无需二阶梯度。
4.3 整合价值函数与熵项
为减少方差并鼓励探索,引入价值函数 Vθ(s) 和熵项:
L(θ) = Et [ LCLIP,t(θ) - c1·(Vθ(st) - Vtarget)² + c2·S(πθ(st)) ]
第一项是策略损失,第二项是价值网络 MSE 损失,第三项是熵奖励。使用自动微分框架即可一次性反向传播。
五、训练流程与关键超参
典型实现为 Actor-Critic 风格:
- 采样:在当前策略下收集一批轨迹。
- 计算优势:基于 Critic 估计 Ât,常用 GAE。
- 构建目标:固定旧策略参数,构造 LCLIP。
- 多轮小批更新:对这批数据做 K 轮 SGD/Adam 更新。
- 更新旧参数:θold ← θ,开始下一轮。
5.1 常见超参
- 学习率:Adam 优化器,需调参。
- Batch size:2048~10000,越大越稳。
- ε:0.1~0.2。
- c1, c2:价值与熵系数。
- λ (GAE):0.95 左右。
- γ (折扣):0.99。


