简介:本文围绕“TRPO与PPO为什么属于On-Policy算法”这一问题展开:从行为策略与目标策略的定义出发,结合TRPO的KL信赖域约束与PPO的截断代理目标函数,解释其训练数据必须来自当前策略的数学根源;并系统对比On-Policy与Off-Policy两类范式在数据来源、样本效率、训练稳定性、实现复杂度与适用场景上的核心差异,最后给出条件化选型建议与方案迁移时的注意事项,帮助读者建立清晰的算法分类认知与工程选型依据。
强化学习的核心任务是优化策略以最大化累计奖励,而策略优化算法的选择直接决定了训练的稳定性、样本效率与工程成本。近年来,主打推理能力的大模型训练实践把强化学习的深度使用重新推到了焦点位置:业界出现了仅用强化学习训练、以冷启动数据配合多阶段训练提升推理性能、以及基于蒸馏得到密集模型等多种技术路线,它们的共同点是对策略优化环节的高度依赖。在这一背景下,PPO 长期作为大模型训练中的主流选择,后续又有 GRPO 这类改进算法被广泛讨论。业界常见的一句话概括是:PPO 通过裁剪控制策略更新幅度,TRPO 通过信赖域和 KL 散度约束保证稳定性,而 GRPO 类算法结合两者思路,采用群体相对优势计算并保留 KL 约束,以更低的计算复杂度和资源需求完成优化。
要真正理解这些算法的设计取舍,绕不开一个基础分类问题:TRPO 和 PPO 为什么被归为 On-Policy 算法? 这个归类并不是经验性的习惯说法,而是由两者目标函数的数学结构决定的。本文将以“On-Policy(以 TRPO、PPO 为代表)与 Off-Policy(以 Q-learning、DDPG、SAC 类方法为代表)”为核心对比对象,系统讲清差异本质,并延伸到选型与迁移实践。
强化学习中存在两个容易混淆的“策略”角色:
两者的关系决定了算法范式:
TRPO(Trust Region Policy Optimization)的出发点是:策略梯度的单步更新如果过大,可能造成性能剧烈回退。它把每次更新限制在一个“信赖域”内——即新旧策略的 KL 散度不超过上界 δ,并在此约束下最大化代理目标函数,理论上可以近似保证策略性能单调不降。由于约束求解涉及二阶信息(通过共轭梯度近似处理 Fisher 信息矩阵),TRPO 理论优美但实现较重。
PPO(Proximal Policy Optimization)保留了“限制新旧策略偏离”的核心思想,但把显式的 KL 约束替换为更简单的截断代理目标:当新策略与采集数据的旧策略的偏离超过裁剪区间 [1−ε, 1+ε] 时,目标函数的梯度被有效抑制,等价于一个软性的信赖域。PPO 只需一阶优化、组件精简,因此在机器人控制、自动驾驶、大模型对齐训练等复杂任务中都表现出良好的性能与稳定性。
TRPO 的代理目标可以写为:
L_TRPO(θ) = E_{s~d^{π_old}, a~π_old} [ (π_θ(a|s) / π_old(a|s)) · A^{π_old}(s,a) ]约束条件:E_s[ KL( π_old(·|s) ‖ π_θ(·|s) ) ] ≤ δ
注意其中的三个关键量:状态分布 d^{πold} 来自旧策略的轨迹、动作 a 由旧策略采样、优势函数 A^{π_old} 基于旧策略的数据与价值估计计算。整个期望是在“旧策略产生的数据”上定义的,这个代理目标只有在新策略 πθ 与旧策略足够接近时,才是真实改进目标的一阶良好近似。
PPO 的截断目标同理:
L_CLIP(θ) = E_t [ min( r_t(θ)·A_t, clip(r_t(θ), 1−ε, 1+ε)·A_t ) ]其中 r_t(θ) = π_θ(a_t|s_t) / π_old(a_t|s_t)
重要性比率 r_t 的分母正是采集数据的行为策略 π_old。当新策略偏离到裁剪区间之外、且梯度方向会进一步拉大偏离时,这一项的梯度趋于零——超出信赖范围的样本实际上被“静默丢弃”了。
一个常见的疑问是:TRPO/PPO 的目标里明明出现了重要性采样比率,为什么不算 Off-Policy?关键在于修正的量级设计完全不同:
由此带来 On-Policy 的标志性工程特征:每次(或每几次小步)策略更新后,旧数据对新目标的近似质量迅速劣化,基于旧策略计算的优势估计也不再匹配新策略,必须重新采样。严格地说,PPO 允许同一批数据在少量 epoch 内复用,处于“纯粹 On-Policy”与“Off-Policy”之间的近端复用状态,但分类上仍归为 On-Policy,因为复用被严格限制在新旧策略近似一致的范围内。
PPO 风格的 On-Policy 训练循环:
初始化策略 π_θ 与价值网络 V_φfor iter in 1..N:# 1. 必须用“当前”策略采集一批轨迹D = collect_rollouts(env, π_θ)# 2. 用当前价值网络计算优势(如 GAE)A = compute_advantage(D, V_φ)π_old = copy(π_θ)# 3. 只允许少量 epoch 的小幅复用for epoch in 1..K: # K 通常为个位数for batch in shuffle(D):θ += ∇_θ L_CLIP(θ; batch, π_old)# 4. 本轮数据用完即弃,下一轮必须重新采集
Off-Policy(DQN/Actor-Critic + 回放池)训练循环:
初始化 Q 网络/策略与目标网络,初始化回放池 Rfor step in 1..T:用行为策略(可为独立的探索策略)交互一步,存入 R# 从 R 中随机采样:数据可以很“旧”,来源与当前策略无关batch = sample(R)用贝尔曼目标 y = r + γ · Q_target(s', argmax_a Q(s',a)) 更新周期性地将参数软同步到目标网络
两者差别一目了然:前者的数据来源被锁死在当前策略上;后者的数据来源与被优化策略完全解耦。
在强调差异之前,也要看到几类方法的共性,避免“非黑即白”的误解:
On-Policy 方法的数据与当前策略强绑定,更新后基本失效,因此样本效率较低,需要持续、大量的环境交互;在大模型场景下,这意味着持续的高成本推理(生成)开销。Off-Policy 方法依托回放池反复利用历史数据,样本效率显著更高,更适合交互昂贵、数据来之不易的场景。这一差异是两类范式最根本的分水岭。
TRPO 具有近似单调改进的理论保障,KL 约束给出了显式的信赖域边界,但实现复杂;PPO 以一阶方式继承这一稳定性思想,训练波动小、实现简单,但稳定性部分依赖裁剪系数 ε、KL 系数等超参的合理设置。Off-Policy 深度方法则面临分布偏移、值函数过估计、回放池陈旧数据引入的偏差等问题,需要目标网络、软更新、双网络等补丁机制;其收敛性结论在表格型情形下较强,深度函数逼近下更多依赖工程经验。
TRPO 需要处理二阶信息(共轭梯度、线搜索),实现门槛最高,工业界较少直接使用;PPO 无需回放池与目标网络,组件少、流程直观,是落地门槛最低的选择之一;Off-Policy 方法则需要维护回放池的存储与采样、旧数据淘汰策略、目标网络同步机制,工程组件更多,但换来的是数据复用能力。
On-Policy 的成本集中在“持续采集”一端:环境仿真吞吐或大模型推理吞吐往往成为训练瓶颈,训练侧每一轮都要重新生成数据。Off-Policy 的成本则集中在“存储与复用”一端:回放池带来内存/显存开销,但单位数据的利用更充分。选型时本质上是在“采集成本”与“数据利用效率”之间做权衡。
PPO 对裁剪系数、GAE 的折扣参数 λ、以及每批数据的复用 epoch 数较为敏感——epoch 设置过大,就等于破坏了 On-Policy 前提,把“近端复用”做成了“伪 Off-Policy”,训练容易失稳。Off-Policy 方法对学习率、回放池大小、目标网络更新频率、探索强度等更敏感,调参维度更多。
大模型的 RLHF 与推理能力训练天然是 On-Policy 流程:训练数据(模型生成的回答)必须来自当前模型。如果使用旧版本模型生成的数据,重要性比率会失控、KL 惩罚失效,训练容易崩塌。这也解释了为什么 PPO 长期是大模型对齐的主流选择,以及为什么后来会出现 GRPO 这类改进:它们保留 On-Policy 数据范式,用“组内相对优势”替代独立价值网络作为基线,并保留 KL 约束,从而降低 critic 带来的显存占用与实现负担——延续 TRPO/PPO 稳定性思想的同时,重构了成本结构。
| 对比维度 | TRPO / PPO(On-Policy) | Off-Policy 代表(Q-learning、DDPG、SAC 类) |
|---|---|---|
| 数据来源 | 必须来自当前策略或其近期版本 | 任意行为策略、历史数据、回放池 |
| 数据复用性 | 弱,更新后即弃,仅允许极少量 epoch 复用 | 强,回放池可反复采样 |
| 样本效率 | 较低,交互/生成成本高 | 较高,适合昂贵交互与稀缺数据 |
| 训练稳定性 | 好,有信赖域/裁剪约束保护 | 需目标网络等技巧缓解偏移与过估计 |
| 实现复杂度 | TRPO 高(二阶),PPO 低(一阶) | 中等偏高(回放池 + 目标网络) |
| 理论保障 | TRPO 有近似单调改进理论,PPO 继承其思想 | 表格型有收敛结论,深度版多依赖经验 |
| 典型超参 | 裁剪系数 ε、KL 系数、GAE λ | 回放池大小、目标网络更新频率 |
| 典型场景 | 大模型对齐与推理训练、仿真充足的机器人控制 | 游戏、真实环境控制、历史数据复用与离线场景 |
回到标题问题:TRPO 与 PPO 属于 On-Policy 算法,根本原因在于两者的优化目标函数定义在“由当前策略(或其刚更新的旧版本)采集的数据”之上——TRPO 用 KL 信赖域、PPO 用截断重要性比率,把新旧策略的偏离限制在很小范围内,使得重要性修正只对“微差”有效;策略一旦更新,旧数据的近似质量迅速失效,必须重新采样。这与 Off-Policy 方法“数据来源与被优化策略解耦、可通过回放池长期复用”的机制形成本质区别。实践中的决策思路可以概括为:以数据获取成本、稳定性需求、工程复杂度与业务场景为坐标——数据易得且重稳定,选 On-Policy;数据昂贵且需复用,选 Off-Policy;大模型训练则基本运行在 On-Policy 流水线之内,优化重心转向降低采集与优势估计的算力开销。理解了“数据由谁产生、被谁使用”这一范式差异,就抓住了策略优化算法选型的核心逻辑。