Actor-Critic 架构
上一篇我们看到 REINFORCE + Baseline 的思路:用 V(s) 作为 baseline 来降低方差。但 REINFORCE 仍然需要采样完整 trajectory 才能更新。
Actor-Critic 更进一步:用一个独立的神经网络(Critic)来学习 V(s),这样每走一步就可以计算 TD error 作为 Advantage 信号:
δt=rt+γV(st+1)−V(st)
这个 δt 就是 Advantage 的一步估计:如果实际获得的 reward + 下一状态价值比预期的当前状态价值高,说明这个动作”比预期好”。
两个网络各司其职:
- Actor π(a∣s;θ):策略网络,决定采取什么动作
- Critic V(s;w):价值网络,评估状态好坏
GAE:平衡偏差与方差
一步 TD error δt 偏差大但方差小;Monte Carlo return 偏差小但方差大。**GAE(Generalized Advantage Estimation)**用参数 λ 在两者之间平滑插值:
A^tGAE(γ,λ)=∑l=0∞(γλ)lδt+l
- λ=0:只用一步 TD error(高偏差、低方差)
- λ=1:等价于 Monte Carlo return(低偏差、高方差)
- 实践中 λ=0.95∼0.97 效果最好
Trust Region 问题
Policy Gradient 有一个致命的实际问题:步长太大策略会崩溃,步长太小收敛太慢。
普通梯度下降无法保证策略更新后性能不会骤降。一个看似合理的梯度方向,如果步长过大,可能让策略跳到完全不同的行为模式,导致性能灾难性崩溃。
TRPO (Trust Region Policy Optimization) 的解决方案是:在每次更新时添加 KL 散度约束,确保新旧策略”足够接近”:
maxθE^[πθold(a∣s)πθ(a∣s)A^]s.t. KL(πθold∥πθ)≤δ
PPO:简单有效的信任域方法
TRPO 虽然理论优美,但带约束优化计算复杂。**PPO(Proximal Policy Optimization)**用一个巧妙的 clip 操作实现了类似效果:
LCLIP(θ)=E^[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)]
其中 rt(θ)=πθold(at∣st)πθ(at∣st) 是新旧策略的概率比。
Clip 的直觉:
- 当 A^>0(好动作):ratio 超过 1+ϵ 后 objective 不再增长,阻止过度增大概率
- 当 A^<0(坏动作):ratio 低于 1−ϵ 后 objective 不再减小,阻止过度减小概率
这种”pessimistic”策略确保每次更新都在安全范围内。
PPO 在 LLM 中的角色
下面的映射表是一个快速预览。完整的 MDP 映射、LLM RL 的独特挑战、以及 post-training 全景,请参阅 当 RL 遇上 LLM。
当 PPO 遇到 LLM,RL 的概念发生了有趣的对应:
| 游戏 RL | LLM RLHF |
|---|
| 环境状态 s | Prompt + 已生成的 tokens |
| 动作 a | 下一个 token |
| 策略 $\pi(a | s)$ |
| Trajectory | 一个完整回答 |
| Reward | RM score - β·KL penalty |
| Episode 结束 | 生成 EOS token |
KL 惩罚 β⋅KL(πθ∥πref) 是 LLM RLHF 的关键补充:它防止 LLM 偏离预训练分布太远,避免 reward hacking(后续文章详述)。
LLM 生成回答
总结
本文介绍了从 Actor-Critic 到 PPO 的演进:
- Actor-Critic 用 Critic 网络提供逐步 Advantage 信号,告别完整 trajectory 依赖
- GAE 用 λ 参数在偏差和方差之间优雅权衡
- Trust Region 解决策略更新步长问题,防止性能崩溃
- PPO 用 clip 操作简化信任域约束,成为最实用的策略优化算法
- PPO + LLM 将 token 生成映射为 RL 动作序列,加上 KL 惩罚防止偏离
PPO 是 RLHF 的核心引擎。下一篇我们将完整介绍 RLHF pipeline:SFT → Reward Model → PPO,看 PPO 如何在实际中对齐 LLM。