【强化学习系列·第 03 篇】策略梯度方法:从 REINFORCE 到 PPO——"直接优化策略"的演进之路

系列回顾:第 01 篇我们绘制了强化学习的全景图,第 02 篇我们拆解了值函数方法——从动态规划到 DQN。本篇进入强化学习第二大算法家族:策略梯度方法。值函数方法的核心思路是"先学好不好,再选最好的"——但 max 操作限制了它只能处理离散动作。策略梯度方法换了一个思路:直接优化策略本身——不学值函数,直接学"做什么"。从 1992 年 REINFORCE 的开创,到 2015 年 Actor-Critic 的方差降低,到 2015 年 TRPO 的安全步长,到 2017 年 PPO 的终极形态——策略梯度方法用 25 年时间从"方差极大"走到"工业首选"。PPO 更是成为 RLHF 的核心算法,驱动了 ChatGPT 的训练。今天,我们从策略梯度的核心思想、四代演进到 PPO 的深度拆解,彻底拆解"直接优化策略"的演进之路。


📑 文章目录


💡 一、核心思想:策略梯度定理与 REINFORCE

在这里插入图片描述

1.1 为什么需要策略梯度?值函数方法的局限

值函数方法(Q-Learning/DQN)的核心思路:先学 Q(s,a),再通过 π(s) = argmax Q(s,a) 选动作。这个思路有一个根本性局限——argmax 操作要求动作空间是离散的。如果动作是连续的(如方向盘角度 0°-360°),argmax 无法计算——你不可能枚举所有可能的角度。

更深层的问题是:值函数方法学到的策略是确定性策略——每个状态只有一个最优动作。但很多场景需要随机策略——在石头剪刀布中,确定性策略(总是出石头)会被对手利用;在部分可观测环境中,随机策略能更好地探索。

策略梯度方法的核心思想:不学值函数,直接学策略。用参数化函数 π_θ(a|s) 直接表示策略,通过梯度上升优化目标函数 J(θ) = E[Σ γ^t r_t]。这就是"直接优化策略"——跳过值函数,直接学"做什么"。

1.2 策略梯度定理:RL 最优美的结果

策略梯度定理(Policy Gradient Theorem)是 RL 理论中最优美的结果之一。它告诉我们:目标函数 J(θ) 对策略参数 θ 的梯度,可以只用策略本身和回报来计算,不需要知道环境的转移概率

策略梯度定理的核心公式:∇_θ J(θ) = E[∇_θ log π_θ(a|s) · Q^π(s,a)]。这个公式有三个关键要素:∇_θ log π_θ(a|s) 是策略的"分数函数"(score function),告诉我们参数应该往哪个方向调整才能增加当前动作的概率;Q^π(s,a) 是动作值函数,告诉我们当前动作"好不好";两者的乘积意味着:好动作增加概率,坏动作降低概率。

策略梯度定理的直觉:“好动作多做,坏动作少做”。如果 Q(s,a) > 0(好动作),梯度方向会增加 π(a|s);如果 Q(s,a) < 0(坏动作),梯度方向会降低 π(a|s)。这就是策略梯度的全部直觉——用"好不好"来调整"做不做"。

1.3 REINFORCE:最简单的策略梯度算法

REINFORCE(Williams, 1992)是策略梯度定理的直接实现。算法极其简洁:

  1. 用当前策略 π_θ 采样一个完整回合,得到轨迹 (s₁,a₁,r₁,s₂,a₂,r₂,…)
  2. 计算每个动作的回报 G_t = Σ γ^k r_{t+k}
  3. 更新参数:θ ← θ + α · Σ ∇logπ(a_t|s_t) · G_t

REINFORCE 的优势:无偏——期望意义上,梯度估计是正确的。REINFORCE 的致命问题:方差极大——G_t 的方差随回合长度指数增长。一个回合中,可能大部分动作都是好的,但因为最后几步运气差导致 G_t 很低,所有好动作的概率都被降低了。这就像"一粒老鼠屎坏了一锅粥"——一个坏结局会污染整个回合的梯度估计。

1.4 Baseline 技巧:降低方差的关键

REINFORCE 方差大的根本原因:G_t 的绝对值太大。核心改进——减去一个 baseline b(s):∇J = E[∇logπ(a|s) · (Q(s,a) - b(s))]。

关键性质:减去 baseline 不改变梯度的期望(因为 E[∇logπ(a|s) · b(s)] = 0),但可以大幅降低方差。最常用的 baseline 是值函数 V(s)——此时 Q(s,a) - V(s) = A(s,a) 就是优势函数

优势函数 A(s,a) 的直觉:“比平均好多少”。A(s,a) > 0 表示这个动作比平均水平好,应该增加概率;A(s,a) < 0 表示比平均水平差,应该降低概率。用优势函数替代原始回报,方差大幅降低——因为"比平均好多少"的波动范围远小于"绝对回报"的波动范围。


📈 二、四代演进:REINFORCE → Actor-Critic → TRPO → PPO

在这里插入图片描述

2.1 第一代:REINFORCE(1992)——开创者

REINFORCE 是策略梯度的开创者,但有两个致命问题:方差极大(需要完整回合才能更新)和步长不安全(学习率太大策略会崩溃,太小学习太慢)。

REINFORCE 的方差问题:G_t 的方差随回合长度指数增长。一个 1000 步的回合,G_t 可能从 -1000 到 +1000,而梯度 ∇logπ · G_t 的波动范围同样巨大。这导致训练极不稳定——同一组超参数,不同随机种子可能得到完全不同的结果。

2.2 第二代:Actor-Critic(2000s)——方差降低

Actor-Critic 的核心改进:用 Critic 网络估计优势函数 A(s,a),替代 REINFORCE 中的回合回报 G_t。

Actor(策略网络):π_θ(a|s) 决定"做什么",通过策略梯度更新。Critic(值函数网络):V_φ(s) 或 Q_φ(s,a) 评估"好不好",通过 TD 误差更新。

Actor-Critic 的优势:每步更新(不需要等回合结束)、方差大幅降低(Critic 提供低方差的 baseline)、样本效率提升(每步都学习)。Actor-Critic 的局限:Critic 有偏差(自举导致偏差传播)、两个网络需要平衡(Actor 和 Critic 的学习率需要协调)。

A2C(Advantage Actor-Critic):同步版本,多个 worker 同时采样,统一更新。A3C(Asynchronous A2C):异步版本,多个 worker 独立更新,2016 年由 DeepMind 提出,是当时最流行的 RL 算法。后来发现 A2C(同步版)效果不差于 A3C,且实现更简单,A2C 逐渐取代 A3C。

2.3 第三代:TRPO(2015)——安全步长

Actor-Critic 解决了方差问题,但步长不安全的问题仍然存在。策略梯度的核心矛盾:学习率太大,策略可能突变导致性能崩溃;学习率太小,学习太慢

TRPO(Trust Region Policy Optimization)的核心创新:用 KL 散度约束策略更新幅度。TRPO 的优化目标:max E[A(s,a) · r_t(θ)],约束:E[KL(π_old || π_new)] ≤ δ。其中 r_t(θ) = π_new(a|s)/π_old(a|s) 是策略比率,δ 是 KL 散度阈值(通常 0.01)。

TRPO 的理论保证:在 KL 约束内,每次更新保证策略单调不减。这是策略梯度方法第一个有理论保证的稳定更新规则。TRPO 的实现:用共轭梯度法求解 KL 约束下的自然梯度方向,用线搜索确定步长。

TRPO 的局限:实现复杂(需要计算 Fisher 信息矩阵、共轭梯度)、计算开销大(二阶优化)、KL 约束和线搜索难以调参。TRPO 是理论上的突破,但工程上不够实用。

2.4 第四代:PPO(2017)——终极形态

PPO(Proximal Policy Optimization)的核心思想:用简单的 Clip 操作替代 TRPO 复杂的 KL 约束——达到类似效果,但实现简单得多。

PPO-Clip 目标函数:L_CLIP = E[min(r_t · A_t, clip(r_t, 1-ε, 1+ε) · A_t)]。其中 r_t = π_new/π_old 是策略比率,ε = 0.2 是截断范围。

PPO-Clip 的直觉:当策略比率 r_t 超出 [1-ε, 1+ε] 范围时,截断梯度。具体来说:当 A > 0(好动作),r_t 上限为 1+ε——策略最多增加到原来的 1.2 倍;当 A < 0(坏动作),r_t 下限为 1-ε——策略最多减少到原来的 0.8 倍。

PPO 为什么有效?Clip 操作隐式地约束了策略更新幅度——虽然不直接约束 KL 散度,但实验表明 Clip 的效果与 KL 约束相当,且实现简单得多。PPO 的代码量只有 TRPO 的 1/3,训练速度更快,超参数更少。


⚡ 三、PPO 深度拆解与 RLHF 应用

在这里插入图片描述

3.1 PPO 的四大核心组件

PPO 的完整目标函数:L = L_CLIP - c₁ · L_VF + c₂ · H(π)。三个组件:Clip 目标(策略优化)、值函数损失(Critic 训练)、熵正则(鼓励探索)。

Clip 目标函数。PPO 的核心创新。限制策略比率 r_t 在 [1-ε, 1+ε] 范围内。当 A > 0 时,r_t 上限 1+ε,防止策略过度增加好动作概率;当 A < 0 时,r_t 下限 1-ε,防止策略过度降低坏动作概率。ε = 0.2 是经验最优值——太大策略不稳定,太小学习太慢。

GAE 优势估计。广义优势估计(Generalized Advantage Estimation)是 PPO 精准估计优势函数的关键。GAE 引入参数 λ 平衡偏差和方差:A_t^GAE = Σ (γλ)^l δ_{t+l}。λ = 0 是 TD(0)(低方差高偏差),λ = 1 是 MC(高方差低偏差),λ = 0.95 是经验最优值——在偏差和方差之间取得最佳平衡。

熵正则化。在目标函数中加入策略熵奖励 H(π) = -Σ π(a|s)logπ(a|s)。熵正则鼓励策略保持随机性,防止过早收敛到次优确定性策略。c₂ = 0.01 是经验最优值。

3.2 PPO 训练流程

PPO 的训练流程极其规范:

  1. 采样:用当前策略 π_θ 收集一批轨迹数据(通常 2048 步)
  2. 估计优势:用 GAE 计算每个时间步的优势 A_t
  3. 计算回报:用 Critic 计算回报目标 R_t = A_t + V(s_t)
  4. 多轮更新:用同一批数据更新 3-10 个 epoch(这是 PPO 样本效率的关键——数据复用)
  5. Clip 更新:计算 PPO-Clip 目标,梯度上升更新 Actor
  6. Critic 更新:计算值函数损失 L_VF = (V(s_t) - R_t)²,梯度下降更新 Critic

PPO 的关键超参数:学习率 3e-4、Clip ε=0.2、GAE λ=0.95、折扣 γ=0.99、熵系数 c₂=0.01、epoch 数 10、批量大小 64。这些超参数在大多数任务上都能工作——这是 PPO "开箱即用"的重要原因。

3.3 RLHF:PPO 驱动 ChatGPT

PPO 最重要的应用不是游戏,而是大语言模型对齐——RLHF(Reinforcement Learning from Human Feedback)

RLHF 的三步流程:

Step 1:SFT(Supervised Fine-Tuning)。用高质量对话数据微调 LLM,得到基线模型 π_ref。

Step 2:RM(Reward Model)。用人类偏好数据训练奖励模型。给 LLM 同一个 prompt 的两个回复,人类标注哪个更好,训练 Bradley-Terry 模型:P(y₁ > y₂) = σ(R(x,y₁) - R(x,y₂))。

Step 3:PPO 优化。用 PPO 优化 LLM 策略,最大化奖励模型给出的奖励。关键:奖励函数 R(x,y) = RM(x,y) - β · KL(π || π_ref)。KL 惩罚项防止 LLM 偏离基线模型太远——避免"奖励过优化"(reward hacking),即 LLM 找到奖励模型的漏洞生成高奖励但无意义的回复。

PPO 在 RLHF 中的角色:Actor 是 LLM,Critic 是值函数网络,奖励模型提供即时奖励。PPO 的 Clip 操作保证 LLM 不会在一次更新中偏离太远——这对 LLM 的稳定性至关重要。

3.4 PPO 的局限与替代

PPO 不是万能的。主要局限:样本效率仍然不高(on-policy,数据只能用一次)、超参数敏感(ε、λ、c₂ 需要调参)、不适合离线学习(需要与环境交互)。

PPO 的替代方案:DPO(Direct Preference Optimization)——绕过奖励模型,直接用偏好数据优化 LLM,不需要 PPO 训练。DPO 更简单但灵活性不如 PPO。RLAIF(RL from AI Feedback)——用 AI 替代人类标注偏好,降低标注成本。


📊 全文速查表

四代演进

算法 年份 核心改进 方差 步长安全 实现 应用
REINFORCE 1992 策略梯度定理 极高 不安全 极简 教学
Actor-Critic 2000s Critic 降方差 不安全 基础
TRPO 2015 KL 约束安全步长 安全 复杂 研究
PPO 2017 Clip 替代 KL 安全 简单 工业首选

PPO 四大组件

组件 解决的问题 核心参数 效果
Clip 目标 策略更新过大 ε=0.2 稳定更新
GAE 优势估计不准 λ=0.95 精准估计
熵正则 探索不足 c₂=0.01 保持探索
KL 约束(RLHF) 奖励过优化 β=0.1 保持能力

一句话总结

策略梯度方法的核心思想是"直接优化策略"——不学值函数,直接学"做什么"。策略梯度定理:∇J = E[∇logπ(a|s) · A(s,a)]——“好动作多做,坏动作少做”。四代演进:REINFORCE(1992,方差极大)→ Actor-Critic(2000s,Critic 降方差)→ TRPO(2015,KL 约束安全步长)→ PPO(2017,Clip 替代 KL,简单+稳定+通用)。PPO 四大组件:Clip 目标(ε=0.2,防止策略突变)、GAE(λ=0.95,精准优势估计)、熵正则(c₂=0.01,保持探索)、KL 约束(RLHF 中防止奖励过优化)。PPO 是 RL 最常用算法——不是最强的,但是最实用的:在稳定性和简单性之间找到了最佳平衡。RLHF 三步:SFT→RM→PPO,PPO 驱动 ChatGPT 对齐人类偏好。PPO 的局限:样本效率不高(on-policy)、超参数敏感、不适合离线学习。替代方案:DPO(绕过奖励模型)、RLAIF(AI 替代人类标注)。PPO 成功的秘诀 = 简单 + 稳定 + 通用——这正是工业应用最需要的。


参考链接

系列预告:第 04 篇将深入深度 RL 进阶——从 SAC/TD3 到 Dreamer/MuZero,拆解"高效稳定学习"的演进之路。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐