策略梯度算法进化史:从REINFORCE到PPO再到GRPO的完整脉络

从算法清单到进化脉络
对于初入强化学习(RL)领域的学习者来说,策略梯度类算法往往像一份令人困惑的清单:REINFORCE、Actor-Critic、TRPO、PPO、GRPO……它们被并列罗列,却很少有人讲清楚它们之间的因果关系。
策略梯度方法的核心思想是将强化学习问题转化为一个优化问题:直接参数化策略函数π(a|s;θ),然后通过梯度上升最大化期望累积回报J(θ)。这一思路的数学基础是策略梯度定理(Policy Gradient Theorem),由Sutton等人在1999年正式提出。该定理证明了期望回报对策略参数的梯度可以表示为一个期望值,从而可以通过蒙特卡洛采样来估计。定理之所以深刻,在于它解决了一个看似棘手的问题:期望回报J(θ)依赖于环境的状态转移动力学,而这通常是未知的。定理巧妙地证明了梯度可以表示为∇J(θ) = E[∇log π(a|s;θ) · Q^π(s,a)],其中关键的"log-derivative trick"(也称REINFORCE trick或似然比方法)将对概率分布的求导转化为对log概率的求导乘以采样值。这一技巧源自统计学中的得分函数(score function)估计器,使得我们无需知道环境模型就能通过采样估计梯度。与基于价值的方法(如Q-learning)不同,策略梯度方法可以天然处理连续动作空间,并且能够学习随机策略——这在博弈论和探索问题中尤为重要。
一位拥有强化学习博士背景的研究者在 Reddit 上分享了他的思考,直指这一痛点:"在线教程大多把这些算法当作一个列表来呈现。进化故事——每个算法都在修补前一个最痛的失败——确实存在,但它散落在像 CS285 这样一整个学期的课程里,或者埋藏在原始论文中。"
CS285是加州大学伯克利分校由Sergey Levine教授主讲的深度强化学习课程,被广泛认为是该领域最权威的研究生级别公开课程之一。课程完整覆盖了从基础MDP理论到前沿模型训练方法的全部内容,包括策略梯度、Actor-Critic、模型预测控制、离线RL等。由于课程录像和资料免费公开,它成为了全球RL自学者的重要资源,但其一个学期的体量和较高的数学门槛也让许多初学者望而却步。
他花了很大力气写出一份"压缩版"叙事:一个单页、半技术性的走读,从最原始的 RL 目标函数一路讲到 GRPO。这份材料的数学被刻意简化,目标读者是那些通过"推理模型浪潮"进入 RL 的新人,而非需要完整推导的研究者。
核心叙事:每个策略梯度算法都在修补前一个的痛点
这份材料最有价值的地方,在于它把策略梯度的发展重新组织成一条"问题—修复"的因果链。理解这条链,比单独记住每个算法的公式要重要得多。
REINFORCE:策略梯度的起点与高方差诅咒
一切始于最朴素的策略梯度估计器 REINFORCE。它直接对期望回报求梯度,思路优雅,但存在一个致命问题:估计器的方差极高。由于完整轨迹的回报波动巨大,梯度信号被噪声淹没,训练变得缓慢且不稳定。作者甚至为此设计了一个交互式图表,让读者直观感受 REINFORCE 估计器方差有多离谱。
REINFORCE由Ronald Williams在1992年提出,是最早的策略梯度算法之一。其核心公式为:∇J(θ) ≈ (1/N)Σ[Σ∇log π(aₜ|sₜ;θ) · R(τ)],其中R(τ)是整条轨迹的累积回报。算法的高方差问题来源于蒙特卡洛估计的本质:一条轨迹中的每个动作都乘以整条轨迹的总回报,而总回报受环境随机性、策略随机性等多重因素影响,波动范围可能极大。通过一个简单例子可以理解这个问题的严重性:假设一个智能体在100步的游戏中最终获得了+10的奖励,算法会将这个+10的信号均匀归因到所有100个动作上——包括那些实际上毫无贡献甚至有害的动作。这种"信用分配问题"(credit assignment problem)是强化学习中最根本的挑战之一。在实践中,这意味着可能需要数百万条轨迹的采样才能获得可靠的梯度估计,使得训练效率极低。
引入基线(Baseline):第一次减方差尝试
针对高方差问题,最自然的修复是引入一个"基线"(baseline)。通过从回报中减去一个基准值,我们可以在不引入偏差的前提下大幅降低方差。材料中的"基线滑块"让读者可以亲手调整基线值,观察方差如何随之变化——这正是理解 Actor-Critic 类方法的关键直觉。
基线的引入利用了一个重要的数学性质:从回报中减去任何不依赖于动作的函数b(s),都不会改变梯度估计的期望值(即无偏性不变),但可以显著降低方差。最优基线的选择恰好是状态价值函数V(s)——这正是Actor-Critic方法的核心思想。在Actor-Critic架构中,Actor是策略网络π(a|s;θ)负责决策,Critic是价值网络V(s;w)负责评估。优势函数A(s,a) = Q(s,a) - V(s)衡量的是某个动作相对于平均水平的好坏程度,用它替代原始回报可以大幅降低方差。GAE(Generalized Advantage Estimation)则进一步通过引入λ参数在偏差和方差之间进行平滑折中——λ=1退化为蒙特卡洛估计(无偏但高方差),λ=0退化为单步TD估计(低方差但有偏),实践中λ=0.95左右通常能取得良好平衡。
On-Policy 的崩溃风险
策略梯度方法本质上是 on-policy 的:你必须用当前策略采集的数据来更新当前策略。一旦更新步子迈得太大,策略可能会"崩溃"到一个糟糕的区域,再也无法恢复。作者用一个"on-policy 崩溃模拟器"演示了这一现象——这也解释了为什么后续算法要如此谨慎地控制更新幅度。
On-policy方法要求用于更新策略的数据必须由当前策略生成,这意味着每次策略参数更新后,之前收集的所有数据都变得"过时",需要重新采样。这带来了极低的样本效率——大量计算资源被花在数据采集而非学习上。Off-policy方法(如DQN、SAC)则可以复用历史数据,通过经验回放缓冲区(Experience Replay Buffer)提高样本利用率。策略梯度方法之所以天然是on-policy的,是因为梯度估计中的期望是关于当前策略分布的,使用旧策略的数据会引入分布偏移。重要性采样(Importance Sampling)技术可以部分缓解这一问题,但会引入自己的方差问题,尤其当新旧策略差异较大时,重要性权重的方差可能爆炸式增长。崩溃问题在深度RL中尤为严重,因为神经网络的策略参数化使得策略空间高度非线性——参数空间中的一小步可能导致策略行为发生剧烈变化,而一旦策略进入低回报区域,采集到的数据质量恶化,进一步导致更差的更新,形成恶性循环。
从 TRPO 到 PPO:约束策略更新的艺术
为了解决大步更新导致的崩溃问题,TRPO(Trust Region Policy Optimization)提出了"信任域"的思想:每次更新都限制在新旧策略分布差异不太大的范围内。但 TRPO 的实现相当复杂,涉及二阶优化和 KL 散度约束。
TRPO由John Schulman等人在2015年提出,其核心思想借鉴了优化理论中的信任域方法(Trust Region Methods)。算法将策略更新形式化为一个约束优化问题:最大化替代目标函数(surrogate objective),同时约束新旧策略之间的KL散度不超过阈值δ。KL散度D_KL(π_old || π_new)衡量两个概率分布之间的差异,在这里用于量化策略更新的"步长"。TRPO使用共轭梯度法和线搜索来近似求解这个约束优化问题,涉及Fisher信息矩阵的计算——这是一个二阶方法,计算开销显著高于普通梯度下降。TRPO的理论基础实际上可以追溯到Amari在1998年提出的自然梯度(Natural Gradient)方法:普通梯度下降在欧几里得空间中移动参数,但策略参数空间的几何结构并非欧几里得的——参数空间中等距的移动可能导致策略分布发生截然不同程度的变化。Fisher信息矩阵F = E[∇log π · (∇log π)^T]定义了策略空间的黎曼度量,自然梯度∇̃J = F^{-1}∇J在策略分布空间中进行等步长更新。TRPO本质上是对自然梯度方法的实用化改造,正是这种实现复杂度促使了PPO的诞生。
作者坦承在讲解 TRPO 的替代目标(surrogate objective)时做了简化,以保持叙事流畅。这也是他主动请求社区批评的地方之一:"我在几个地方做了简化以推进叙事,最明显的是围绕 GAE 和 TRPO 替代目标的部分。我真心希望得到纠正,或者指出你认为哪些简化越界成了错误。"
PPO(Proximal Policy Optimization)则是 TRPO 的"工程化平民版"。它用一个巧妙的裁剪(clip)目标函数替代了复杂的信任域约束,既保留了限制更新幅度的核心思想,又极大简化了实现。具体而言,PPO的目标函数为:L(θ) = E[min(r(θ)·A, clip(r(θ), 1-ε, 1+ε)·A)],其中r(θ) = π_new(a|s)/π_old(a|s)是概率比率,ε通常取0.1或0.2。这个min操作确保了:当更新方向正确时(A>0),概率比率不会超过1+ε;当更新方向错误时(A<0),概率比率不会低于1-ε。这种"悲观"的目标函数自动限制了更新幅度,无需显式计算KL散度或求解约束优化。
PPO在实际实现中还包含多个重要的工程细节:价值函数loss通常也会被裁剪以稳定训练;熵正则化项(entropy bonus)鼓励策略保持探索性,防止过早收敛到确定性策略;多个epoch的mini-batch更新使得每批数据被重复利用多次(通常3-10次),提高样本效率。OpenAI在"Implementation Matters in Deep Policy Gradients"等工作中指出,这些看似次要的实现细节对PPO的最终性能影响可能比核心算法设计更大——这也解释了为什么不同代码库的PPO实现性能差异巨大。
材料提供了可调节 epsilon 的 PPO 裁剪目标交互图,帮助读者理解裁剪机制如何在实践中约束策略更新——这也是当今大模型 RLHF 训练的主力算法。
RLHF(Reinforcement Learning from Human Feedback)是当前大语言模型对齐(Alignment)的主流范式,由OpenAI在InstructGPT论文中系统化。其流程包括三步:首先用监督微调(SFT)训练基础模型;然后用人类偏好数据训练一个奖励模型(Reward Model);最后用PPO等RL算法优化语言模型策略,使其输出最大化奖励模型的评分。在这个框架中,语言模型就是策略网络,生成每个token相当于在序列决策中选择一个动作,而奖励信号来自奖励模型对完整回复的评分。PPO在这里的作用是确保模型在追求高奖励的同时不会偏离原始SFT模型太远——这正是信任域思想在大模型训练中的具体体现。值得注意的是,RLHF中的PPO与传统RL中的PPO存在显著差异:语言生成的动作空间是离散的词表(通常数万到十万量级),轨迹长度不固定,奖励通常只在序列末尾给出,且需要额外添加KL惩罚项防止奖励黑客(reward hacking)。
GRPO:推理模型时代的策略梯度新方案
叙事的终点是 GRPO(Group Relative Policy Optimization),这也是当前推理模型(reasoning models)训练中备受关注的方法。GRPO 的核心创新在于用"组内基线"(group baselines)替代了传统的价值函数估计:对同一问题采样多个回答,用组内的相对优势来计算梯度,从而省去了单独训练价值网络的开销。
GRPO最早由DeepSeek团队在其DeepSeek-R1相关工作中提出并实践。传统PPO需要同时维护四个模型:策略模型、参考模型、奖励模型和价值模型(Critic),这在大模型规模下带来了巨大的内存和计算开销。GRPO的关键洞察是:如果对同一个问题(prompt)采样一组回答(例如16个),那么这组回答的平均回报就是一个天然的、无需额外网络的基线估计。每个回答的优势值通过组内标准化计算:A_i = (R_i - mean(R)) / std(R)。这种设计完全省去了Critic网络的训练,将内存需求几乎减半,特别适合推理密集型任务中可以用规则验证答案正确性的场景(如数学题、代码题)。GRPO并非唯一尝试去掉Critic的方法——RLOO(REINFORCE Leave-One-Out)使用留一法估计基线,ReMax直接使用贪婪解码的回报作为基线——但GRPO的组内标准化操作还起到了自适应学习率的效果:当某个问题的所有回答质量相近时,标准差较小使得归一化后的优势值较大,但整体梯度规模可控;当回答质量差异大时,算法自然给予更大的区分度。DeepSeek-R1的成功证明了GRPO在训练大规模推理模型中的有效性。
这一设计恰好呼应了作者提到的写作动机——服务于"通过推理模型浪潮进入 RL 的新人"。2024年以来,AI行业出现了从单纯扩大模型参数量(scaling laws)向提升模型推理能力(reasoning capability)转变的趋势。2020-2023年间,AI领域的主流信念是Chinchilla定律:模型性能主要由参数量和训练数据量决定。但2024年起,"测试时计算"(test-time compute)成为新的scaling维度——模型在推理阶段投入更多计算资源(如生成更长的思维链、进行多次采样后投票),可以在不增加参数量的情况下显著提升能力。OpenAI的o1系列模型首次展示了通过强化学习训练模型进行"慢思考"(chain-of-thought reasoning)的巨大潜力。随后DeepSeek-R1、Qwen-2.5等开源模型证明了这一路线的可复现性。这些推理模型的核心训练范式正是基于策略梯度的强化学习:模型生成推理链,基于最终答案的正确性获得奖励,然后通过GRPO或PPO等算法更新策略。这种范式转变意味着RL的价值不仅在于训练阶段提升模型基础能力,还在于教会模型"如何有效地使用更多推理时间"——这解释了为什么GRPO这类适合推理任务的算法突然获得了如此大的关注度,也使得原本主要在机器人控制和游戏AI领域活跃的RL算法突然成为了NLP从业者的必修知识。
随着 DeepSeek 等模型将 GRPO 推向聚光灯下,越来越多的从业者需要理解它从何而来、解决了什么问题。而这份材料正是把 GRPO 放回了整条进化链的合适位置:它并非凭空出现,而是对前述所有减方差、控更新思想的一次自然延续。
为什么"链式"讲法对学习策略梯度算法更有效
这份材料的价值不在于数学深度,而在于叙事框架。把算法演进理解为一条"痛点—修复—新痛点"的链条,能帮助学习者建立真正的直觉,而非机械记忆。
值得一提的是,作者借助 Claude 构建了大量交互式元素和图形——这本身也是 AI 辅助内容创作的一个不错案例。交互式的方差演示、基线滑块、崩溃模拟器等,把抽象的数学概念转化为可操作的直观体验,这是静态论文难以做到的。
作者还预告了下一篇计划:梳理基于价值的算法谱系(Q-learning → DQN → Rainbow)。他特意强调,现在对这篇策略梯度文章的批评,也会帮助改进下一篇的质量——这种开放、迭代的知识分享态度,本身就值得学习社区借鉴。
结语
对于任何想系统理解现代强化学习、尤其是想搞清楚大模型训练背后 PPO/GRPO 逻辑的人来说,这种"进化链"式的梳理提供了一条清晰的入门路径。它提醒我们:算法从来不是孤立的技巧堆叠,而是一代代研究者面对具体失败、逐步修补出来的智慧结晶。理解了这条链,再去读原始论文或上完整课程,收获会大不相同。
相关推荐

AI网络攻防能力逼近临界点:模型研发该踩刹车吗
AI模型的网络攻防能力正逼近关键阈值,能自主发现漏洞、编写exploit甚至执行完整攻击链。本文深入分析放慢研发与加速防御两派观点,探讨能力封锁的博弈困境及系统性治理路径。
fx:极简开源原生编码智能体深度解析
fx:极简开源原生编码智能体深度解析
深度解析fx开源编码智能体,探讨其Tiny、Open、Native三大核心理念,分析极简AI编程工具在可控性、隐私保护和模型无关性方面的独特价值与局限。

ROS成立Physical AI特别兴趣小组,开源机器人生态拥抱具身智能
开源机器人联盟OSRA正式成立Physical AI SIG,推动ROS生态系统整合物理AI能力。本文解析Physical AI特别兴趣小组的目标、路线图及其对机器人开发者的深远影响。