我们在《TRPO深度拆解:为什么做后训练应该读懂TRPO | 长琴[1]》中详细挖了一下 TRPO,开头说到不得不上就是因为看到 FiberPO 了——非常 nice 的文章,又是个人非常喜欢的类型。FiberPO 比较长,本文是系列第一篇,主要介绍 vanishing theorem。
首先,回顾 TRPO[2] 公式 (26)(这里直接借用 TRPO blog 的式 (26) 作为本文的起点,重新编号为 (1)):
θmaxsubject tos∑ρθold(s)a∑πθ(a∣s)Aθold(s,a)DˉKLρθold(θold,θ)≤δ.(1)
我们知道,状态分布 ρπ(s) 本身就是 γ-discounted 的(TRPO[2] blog 的式 (5)):
ρπ(s)=t=0∑∞γtP(st=s∣π)(2)
优势函数 Aπ(s,a)=Qπ(s,a)−Vπ(s),而 Qπ、Vπ 的定义里都有 ∑lγlrt+l。
按轨迹×时间步展开
我们直接按“轨迹 × 时间步”展开,γ 显式写出来作为每个 token 的时间权重,这一步包含两个动作:
- 先用重要性采样把按新策略 πθ 求和翻译成按旧策略 πθold 采样:引入比率 rs,a:=πθ(a∣s)/πθold(a∣s)
- 再把 ρ 还原为它的定义并交换求和顺序
重要性采样
第一步,重要性采样:
a∑πθ(a∣s)Aθold(s,a)=Ea∼πθold(⋅∣s)[rs,aAθold(s,a)](3)
咦,这里怎么突然多了个 rs,a?很多同学一开始都没注意到这个细节,一眼带过。我们看看,这里正常情况下应该是这样的:
a∑πθ(a∣s)A(s,a)=Ea∼πθ(⋅∣s)[A(s,a)](4)
这是离散期望定义,但是注意,我们要优化 θ,所以 πθ 是个不停在变、还需要求梯度的东西。而环境里的真实样本只能采一次——你不可能每改一次 θ 就重新采一批样本(那训练成本会爆炸)。
所以工程现实是:手上的样本全部是用某个固定的 πθold 采出来的(一批 prompt 的 rollout),你要用这批老样本去估计如果换成 πθ 会怎样。这就是重要性采样要解决的问题:怎么用从分布 q 抽的样本,去估计另一个分布 p 下的期望。
这里技巧很简单——给 ∑ 里乘 1,而 1 写成 πθold(a∣s)πθold(a∣s):
a∑πθ(a∣s)A(s,a)=a∑πθ(a∣s)⋅πθold(a∣s)πθold(a∣s)⋅A(s,a)=a∑现在用旧策略加权πθold(a∣s)⋅=:rs,a(修正系数)πθold(a∣s)πθ(a∣s)⋅A(s,a)=Ea∼πθold(⋅∣s)[rs,aA(s,a)](5)
整个变换就一个动作:把以新策略加权求和重新分组为以旧策略加权求和,但每一项乘一个修正系数 r。直觉来看修正系数:
- 如果 r>1:新策略更喜欢这个动作 → 旧样本低估了它,要放大
- 如果 r<1:新策略更不喜欢这个动作 → 旧样本高估了它,要缩小
这其实也是 TRPO[2] 那里的第三个变换。值得提醒的是:这里并不是近似——这是严格的数学推导。近似的其实是其他两个地方:
- 用有限样本估计期望:把 Ea∼πθold 替换成采样平均 K1∑——这是 Monte Carlo 近似,跟 IS 本身无关。
- 当 πθ 离 πθold 太远时,r 会炸(比如 πθold 给一个动作 0.001 的概率,πθ 给 0.5,r=500),少数高 r 样本主导 estimator,方差爆炸——这就是为什么 PPO/TRPO 都要限制 πθ 不能离 πθold 太远。
所以重要性采样和 trust region 是互为前提的:
- 没有 IS,老样本用不了
- 没有 trust region,IS 估计的方差会炸
理解了 IS 才能理解为什么 trust region 是必需的而不是可选的稳定性 trick。而真正把 IS + 信任域这套东西打成可工程化算法的就是咱们之前介绍的 TRPO[2],之前咱们说它是现代 RL 的基石不为过吧。
ρ 展开
接下来看第二步(ρ 展开 + 交换求和顺序),则:
s∑ρθold(s)a∑πθ(a∣s)Aθold(s,a)=s∑(t∑γtP(st=s∣θold))Ea∼πθold(⋅∣s)[rs,aA(s,a)]=t∑γts∑P(st=s∣θold)a∑πθold(a∣s)rs,aA(s,a)=t∑γts∑a∑P(st=s,at=a∣θold)rs,aA(s,a)=t∑γtEτ∼Pθold[rst,atA(st,at)]=Eτ∼Pθold[t=0∑∞γtrst(τ),at(τ)A(st(τ),at(τ))](6)
注意:
第二行 ∑t 跟 s,a 无关,可以拎到最前面(即求和顺序交换)。
第三行是把“边缘概率 × 条件概率”合并成“联合概率”:
- P(st=s∣θold) 是 在第 t 步访问状态 s 的边缘概率;
- πθold(a∣s) 是 在状态 s 选动作 a 的条件概率。
根据概率乘法定理:
P(st=s∣θold)⋅πθold(a∣s)=P(st=s,at=a∣θold)(7)
简单来说,要在第 t 步同时碰到 (s,a),等于先在第 t 步走到 s(边缘概率 P(st=s)),再在 s 上选 a(条件概率 π(a∣s))——根据链式法则:联合概率 = 边缘概率 × 条件概率。
第四行,∑s∑aP(⋅,⋅)f(⋅,⋅) 就是关于 (st,at) 的期望:
s∑a∑P(st=s,at=a)f(s,a)=E[f(st,at)](8)
这里 (st,at) 的随机性完全来自轨迹 τ 的随机性(一旦给定 τ=(s0,a0,s1,a1,…),(st(τ),at(τ)) 就完全确定了),所以这个期望可以重写成沿 τ 取期望。
第五行,把 ∑tγt 放进期望——因为期望对求和是线性的,且 γt 是常数(不依赖 τ),所以可以自由进出期望。
另外注意,轨迹分布是由策略 π + 初始分布 ρ0 + 状态转移概率 P(s′∣s,a) 三者共同决定的,跟单独的策略 πθold 不是同一个对象。
最终结果和 FiberPO 中定义的 TV-Based TRPO(式 (54) 右半部分的期望)一致:
Eτ∼Pθold[t=0∑∞γtrst(τ),at(τ)(θ∣θold)Ast(τ),at(τ)(θold)](9)
左半部分,根据定义,应该是新策略相比旧策略的在旧策略基础上的累计优势:J(θ)−J(θold)。但 FiberPO 式 (54) 给出的是 J(1)(θ∣θold)−J(θold),这种替换在新旧策略非常接近时是合理的,否则 J(θ) 无法估算。
为什么按轨迹展开
有同学可能好奇,TRPO 里是按 state 聚合的,但是这里选择按轨迹×时间步展开,这是为什么呢,为什么要做这个事呢?我们不能简单来一句:”因为 FiberPO 要讨论 γ,所以得把它放出来“——γ 外显只是结果,而不能作为原因。
这里的核心是因为 LLM RL 的数据天然是按轨迹组织的。一次 rollout = 一条 trajectory τ = 一串 (prompt, response) 的 tokens。FiberPO 后面的核心分解是: base = trajectory、fiber = trajectory 内 token,必须按 (τ, t) 索引才自然,按 (s, a) 状态索引根本没法做 base/fiber 分解。
另外,更深一层,LLM 里 ρ(s) 几乎是病态的。在 LLM RL 时,状态 s = prompt + 已生成的 prefix,每个 prefix 几乎都只在一条轨迹里出现一次(重复 prefix 的概率几乎为 0)。所以 ”折扣状态访问频率 ρπ(s)“ 这个 TRPO 里面很自然的对象,在 LLM 场景下基本是”每个 state 只被访问一次“的退化分布。与此对应的是 GAGPO[3],它的场景是 Agentic-RL,有大量重复的 action,PPO+GAE 就是有效的。
所以,按轨迹展开并不是数学上的变换炫技,而是 LLM 场景下唯一合理的写法。其结果就是,我们自然而然地看到了 γ ——这个 FiberPO 要专门讨论的对象。
LLM背景下的γ
接下来我们讨论,在 LLM 背景下的 γ,以及它为什么必须等于 1。
奖励折扣
LLM RL 场景下,reward 几乎都出现在最后(同时也是稀疏的),也就是 response 出来后才能拿到奖励。
- RLHF:reward model 给整条 response 一个标量分数,中间 token 没有 reward
- RLVR(R1 / GRPO 这类):verifier 检查最终答案是否正确,给一个 0/1,中间 token 没有 reward
- Tool-use / agent:可能有少数几步带 reward,但绝大部分 step 仍是 0
所以 γt 对未来 reward 折扣在 LLM 里根本没什么可折扣的——整条 trajectory 上只有最后一个 step 有非零 reward。
长度偏差
设 reward 为 R、序列长度为 T,那么折扣回报是:
G=t=0∑T−1γtrt=γT−1R(10)
只有最后一项了。如果 γ=0.99、T=500,则 γT−1≈0.0066;如果 T=2000,则 γT−1≈1.9×10−9,几乎为 0。其结果就是:
- 长度歧视:一条 2000 token 的正确 response 拿到的 reward 比 500-token 的正确 response 低 6 个数量级
- 模型会学到提前结束:宁可输出短而错的 answer,也不愿生成长的推理链
- CoT / 推理任务失败:reasoning model 整体 reward 会被 γ 压制成几乎为 0(等于成功和失败奖励差不多),即便不为 0,方差也会非常大
有意思的是,γ<1 在「收益端」考察长度偏差;而我们之前在《异曲同工之妙的DrGRPO——DAPO几乎同时出现的又一GRPO优化! | 长琴[4]》中看到的则是另一种在「梯度端」的长度偏差。当时的描述是这样的:
对积极的advantage,这种偏差导致较短的响应获得更大的梯度更新,从而使策略倾向于在正确答案中优先选择更简洁的表达。相反,对于消极的advantage,由于较长的响应具有更大的 |oi|,因此它们受到的惩罚较小,这导致策略在错误答案中倾向于选择较长的响应。
紧跟着还有进一步解释:
乍一看好像无论短还是长的响应,它们的损失函数在 token 级别上都是均值化的,似乎不会有长度偏差。但其核心问题在于:
这就意味着短的响应和长的响应的 advantage 数值大小是一样的,但是短的响应的每个 token 都能获得更强的梯度更新,因为它的 token 数量少,梯度不会被均摊太多。反过来,短的错误答案被惩罚更严重,梯度更新大,模型更快地减少生成这种错误答案的概率;长的错误答案因为梯度更新小,惩罚力度不够,导致模型不太容易抑制长的错误答案。最终导致正确答案更倾向于短的表达,而错误答案更倾向于长的表达。
这个就是顺带一提,不影响主线。总的来说:
- γ<1 带来的长度偏差(指数级惩罚):是价值层面(Value/Reward)的偏差。因为 γT−1 的存在,长文本的 Reward 被压低,模型会学到“宁可短而错,也不长而对”。
- DrGRPO 讨论的长度偏差(均摊级稀释):是梯度层面(Optimization/Batch Normalization)的偏差。即便 γ=1 且大家 Reward 一样大(比如都是 +1),长文本因为 Token 数量多,每个 Token 分到的梯度被均摊了(T1∑∇)。这导致“正确的长文本学得慢,错误的短文本死得快”。
γ必须为1
γ 的经典解释是:「未来 reward 的不确定性折扣」——比如机器人下一秒可能摔了、游戏可能 over 了,所以,现在的 1 分比明年的 1 分值钱。但 LLM 一次 rollout 内:
- 所有 token 是同一次决策的组成部分,没有”未来“这个概念
- 没有真实物理时间,只有 generation order
- response 不会中途消失——episode 终止条件是确定的(生成 EOS 或达到 max length)
所以,理论上来说就不存在”未来不确定“这个 γ 想折扣的对象,也就是说,γ 的物理含义在 LLM 里不存在。
γ=1 是 sequence-level advantage 的前提,这一点最关键,也是 FiberPO 后面所有 trajectory-level 论证的基础。当 γ=1 且 reward 只在末尾时:
Ast,at=Qst,at−Vst=末尾 rewardR−Vst(11)
如果再用 group-relative baseline(GRPO 的做法)替代 V,那么同一条 response 内所有 token 的 advantage 都等于同一个值 Aτ=Rτ−Rˉgroup。也就是说,在 γ=1 + 末尾 reward 的设定下,advantage 是 trajectory-level 的(同一 trajectory 内所有 token 共享 Aτ)。
这个性质既不是工程偷懒(GRPO 仍然可以在 token-level 展开),也不是必然结论(完全可以用 GAE 或其他方式给每个 token 算不同的 advantage,只是在 γ=1 + 末尾 reward 下意义不大),而是默认情况下的天然结果。
总的来说,经典 RL 里 γ 干的两件事:处理未来不确定性和顺手做粗糙的 credit assignment(近的动作功劳大),在 LLM 里:
- 第一件事不存在:generation 过程是确定性的,不会半路 game over
- 第二件事是错的:reasoning 的关键 token 往往离 reward 远,按时间近远分配功劳完全就搞反了
所以 LLM 必须 γ=1,让 advantage(通过 R 直接定义)来负责 credit assignment——它按因果贡献分配,而不是按时间距离分配,aha moment(或关键推理 token)才能拿到它该拿的强信号。
TRPO消失定理
surrogate-gap不等式
我们现在知道 γ 必须等于 1。回顾 TRPO[2] 定理一(式(15)):
η(πnew )≥Lπold (πnew )−(1−γ)24ϵγ(DTVmax)2 where ϵ=s,amax∣Aπ(s,a)∣(12)
其中,η(πnew) 是新策略相比旧策略的表现,或者说是真实的期望回报,Lπold (πnew ) 是用 θold 数据近似的线性 surrogate,上式等价于 FiberPO 中的式 (1) 或式 (55):
J(θ)−J(1)(θ∣θold)≥−(1−γ)24ϵγDTVmax(θ∥θold)2(13)
其中,J(1)(θ∣θold) 就是刚刚提到的真实目标 J(θ) 的线性 surrogate(一阶近似),上标 (1) 就是 “first-order” 的意思。它和 TRPO[2] 里的 Lπold(π~) ,包括刚刚的 Lπold (πnew ) 只是写法不一样(我们把对照表放在附录《公式对应》),其实都是同一个东西——FiberPO 论文用 J(1) 这个记号是为了直接突出“它是 J 的一阶近似”。左边的式子就是用 surrogate 提升量 J(1)(θ∣θold)−J(θold) 代替真实回报差 J(θ)−J(θold) 的误差,称为 surrogate-gap。
它有两个核心性质(TRPO[2] 公式(9),证明见附录《J的一阶Taylor近似》):
J(1)(θold∣θold)=J(θold),∇θJ(1)(θ∣θold)θ=θold=∇θJ(θ)θ=θold(14)
他们的意思是:J(1) 在 θ=θold 这一点上值相等、梯度也相等。所以在 θold 附近优化 J(1)和在 θold 附近优化 J 一阶等价。
我们用 t 表示新旧策略之间的 max TV 距离,用 C 表示前面那一坨惩罚系数。我们想最大化下界,意味着(也可见 TRPO[2] 公式(18)-公式(20)):
θmax[J(1)(θ∣θold)−Ct2](15)
等价于:
θmax[J(1)(θ∣θold)−J(θold)−Ct2]=θmax[ΔJ(1)(θ∣θold)−Ct2](16)
这里我们减去一个 J(θold),它是常数,只依赖于参考策略 θold,不含优化变量 θ。目的是为了几何上归零:当 θ=θold 时,J(1)(θold∣θold)−J(θold)=0(J(1) 在参考点处等于 J)。也就是说,Δ 表示的是 “surrogate 相对于旧策略的提升量”,原点正好是旧策略。
降维与线性缩放
θ 是高维的(神经网络参数),没法直接求极值,但我们可以降维,将它拆成两步:
- 固定 t,找出在 t 约束下最大的 Δ,记为 Δ∗(t)
- 在所有 t≥0 中找出最优的,变成 1D 优化:maxt[Δ∗(t)−Ct2]
这一步其实是一个纯数学的 max-max 分解:任何 θ 都有一个确定的 TV 距离 t(θ)=DTVmax(θ∣θold),所以把所有 θ 按它们的 TV 距离分组,先在每一组内找最优,再跨组找最优:
t≥0max;[;第一步:固定 t,在这层等高面上找最优 θθ:,DTVmax=tmaxf(θ);]←第二步:扫描所有 t,找最优(17)
这个恒等式对任何函数 f 都成立——它只是把一个集合按某个标量属性拆成子集,分两步取 max。具体执行过程如下:
- 内层:给定一个具体的 t(比如 t=0.03),在所有满足 DTVmax(θ∣θold)=0.03 的 θ 中,找让 f 最大的那个,得到 Δ∗(0.03)
- 外层:把 t 从 0 扫到 +∞,找哪个 t 让 Δ∗(t)−Ct2 最大
代入 f(θ)=ΔJ(1)(θ∣θold)−Ct(θ)2:
t≥0max=:,Δ∗(t)θ:,DTVmax=tmaxΔJ(1)(θ∣θold)−Ct2(18)
内层 max 定义了 Δ∗(t):在 TV 距离恰好为 t 的所有策略中,surrogate 提升量最大能到多少,外层就变成关于标量 t 的 1D 优化。
我们已经把高维 θ 优化退化成 1D t 优化,但这里的前提是 Δ∗(t) 要有个好形式,太复杂的话降维了也解不了。巧的是,Δ∗(t) 恰好是 t 的线性函数。
J 我们不知道,我们用 surrogate 提升量 J(1)(θ∣θold)−J(θold) 代替真实回报差 J(θ)−J(θold),有(就是前面的式 9):
J(1)(θ∣θold)−J(θold)=Eτ∼Pθold[t=0∑∞γtrst(τ),at(τ)(θ∣θold)Ast(τ),at(τ)(θold)](19)
其中的 gap 自然是:J(θ)−J(1)(θ∣θold)。这就是 J(θ) 没法算,用 surrogate 提升量近似的代价。TRPO 用 trust region 控制这个误差不要太大,让这个近似是一个 “好” 近似。
期望形式可以 Monte Carlo 采样:
(s,a)∑ns,ars,a(θ∣θold)As,aθold(20)
有引理:对任意 t≥0,
L∗(t):=d:DTVmax(d)=t∑ans,ads,a=0∀smax(s,a)∑ns,ads,aAs,aθold=t⋅M(21)
其中 M:=L∗(1) 是单位 TV 距离处的最优值(一个不依赖 t 的常数),也就是说:L∗(t) 是 t 的严格线性函数。另外,d=r−1 ,即 πθ(a∣s)=πθold(a∣s)⋅(1+ds,a)。
先看这两个下标,下面那个求和的是概率归一化约束,表示每个状态 s 下都必须是合法的概率分布(概率之和 = 1)。
a∑πθ(a∣s)=1⇒a∑πθold(a∣s)⋅(1+ds,a)=1⇒a∑πθold(a∣s)ds,a=0(22)
意思是,在每个状态下,把某些 action 的概率调高(d>0),就必须把另一些调低(d<0),总量守恒。注意,它关于 d 是线性(齐次)的。
上面那个是把 TV 写成 ds,a 的函数,
DTV(πθ(⋅∣s)∣πθold(⋅∣s))=21a∑∣πθ(a∣s)−πθold(a∣s)∣=21a∑πθold(a∣s)∣ds,a∣(23)
意思是,用 d 表示的新旧策略之间的最大 TV 距离恰好等于 t。它关于 d 是齐次的。
现在来看表达式主体,∑ns,ads,aAs,a,它关于 d 也是线性(齐次)的。
上面的三个组件都是齐次的——整体乘一个正标量 k,目标乘 k,约束从 t 变成 kt,归一化条件仍然满足。
为什么 L∗(t)=tM?我们分两步来证明。
第一步(下界 L∗(t)≥tM):构造一个可行解,证明至少能达到 tM。
假设 d∗ 是 L∗(1) 的最优解——也就是在 TV 距离 = 1 的所有策略变化中,让 surrogate 提升最大的那个。它满足 DTVmax(d∗)=1(L∗(1) 定义里的约束),目标值 =M。
现在我们想在 TV 距离 = t 处也找到一个好的可行解。直接把 d∗ 等比放大 t 倍:d~=t⋅d∗,验证它是否满足 L∗(t) 的约束:
- TV 距离:由齐次性,DTVmax(t⋅d∗)=t⋅DTVmax(d∗)=t⋅1=t。放大 t 倍,距离也变成 t,落在约束上,没问题
- 归一化:∑ans,a(t⋅ds,a∗)=t⋅=0a∑ns,ads,a∗=0。d∗ 本身满足归一化,乘常数后仍然满足,也没问题
- 目标值:∑ns,a(t⋅ds,a∗)As,a=t⋅=M∑ns,ads,a∗As,a=tM
d~ 是 L∗(t) 的一个可行解且目标值 =tM,所以最优值至少是 tM:L∗(t)≥tM。
第二步(上界 L∗(t)≤tM):反证法,证明不可能超过 tM。
假设存在某个 d′,满足 DTVmax(d′)=t,且目标值 >tM。把它缩小 t 倍:d′/t。同样由齐次性,DTVmax(d′/t)=1,归一化仍满足,目标值 >M。但 M=L∗(1) 已经是 TV 距离 = 1 处的最大值了,这就矛盾了。
两步合起来:L∗(t)≥tM 且 L∗(t)≤tM,因此得到 L∗(t)=tM
trust region为0
刚刚证明了 Δ∗(t)=tM,代入式 (16) :
t≥0max[Mt−Ct2](24)
C 是那一坨惩罚系数,
C=(1−γ)24ϵγ>0(25)
这是一个开口向下的二次抛物线,有最大值,对 t 求导令其为 0:
M−2Ct∗=0⟹t∗=2CM(26)
这个 t∗ 就是 TRPO[2] 的最优信任域半径 δ。
根据上节我们知道,M=L∗(1) 是单位 TV 距离处的最优 surrogate 提升量。根据定义,DTV=1 意味着 ∑a∣p(a)−q(a)∣=2。目标函数(式 21)∑ds,aAs,a 的上界是把所有偏移量集中到 advantage 最大的 action 上(FiberPO Appendix D Theorem D.3),最多能拿到 ∑∣ds,a∣⋅ϵ=2ϵ,所以有:
M≤2ϵ(27)
代入式 26:
δ=t∗=2CM≤2⋅(1−γ)24ϵγ2ϵ=4γ(1−γ)2(28)
论文 Appendix D 对 sample-based TV-TRPO 做了更精细的分析,得到更紧的 δ 值 8γ1−γ,不过对 vanishing theorem 来说无所谓——两个分子都含 (1−γ),γ=1 都是 0。
所以经典 TRPO 在 LLM 里的安全半径就是 0,trust region 退化为单点 πθold,唯一的“合法更新”就是不更新。这就是 vanishing theorem 想说的事,也是 FiberPO(以及之前 PPO/GRPO/GSPO 隐式做的事,比如PPO clip 范围 0.2、GSPO 则是 4e-4)必须做 δ-relaxation——把 δ 从「理论保证常量」放松成「可调超参」的根本原因。
其实除了公式层面直接算出来 δ=0,还有两个地方也可以直观地理解 vanishing。
- 第一个是 C,γ→1 时 C→+∞,看式 24,C 无限大意味着任何非零步长 t>0 的惩罚都是无穷大——不管 surrogate 提升 Mt 多大,Ct2 都能把它压死。这是从优化目标角度理解。
- 另一个是 t∗,看式 26,因为 M 有限(由 advantage 决定),C→∞ 意味着 t∗→0,几何上看,开口向下的抛物线随着二次项系数 C 增大,会越来越”尖瘦”,顶点越来越靠近原点,C=∞ 时顶点就在 t=0。
小结
本文从 TRPO 出发,首先将数据按轨迹组织,把 TRPO 的状态聚合展开成轨迹×时间步后,自然出现折扣因子γ ,而在 LLM 场景下 reward 只在末尾出现、episode 不会中途终止,γ 的物理含义不存在,必须令 γ=1。代入 TRPO 的 surrogate-gap bound,经过降维(max-max 分解)和线性缩放(齐次性),推出信任域半径 δ∝(1−γ),γ=1 时 δ=0。
Vanishing theorem 的结论很硬:经典 TRPO 的理论安全半径在 LLM 里不可用。不过这里只针对那个特定的半径,不是 trust region 这个机制本身。PPO/GRPO/GSPO 在实践中把 δ 从理论常量放松成可调超参,实践证明训练是稳定的,这说明 trust region 在 γ=1 下仍然有效,只是需要重新建立理论基础。这也正是后续的内容。
附录
J的一阶Taylor近似
J(1) 是 J 在 θold 处的线性(一阶) surrogate,一阶近似按定义就要求公式 (14) 中的两个性质。
性质一证明
把 J(1) 的定义代入 θ=θold(后面那项就是式 (6)):
J(1)(θold∣θold)=J(θold)+Eτ∼Pθold[t∑γtrst,at(θold∣θold)Ast,at(θold)]
重要性采样系数 r=πθold/πθold=1。所以只需要证明:
Eτ∼Pθold[t∑γtAst,at(θold)]=0
根据 advantage 的定义性质——V 就是 Q 在策略下的期望,所以 Q−V 期望为 0。
Ea∼πθold(⋅∣s)[A(θold)(s,a)]=Ea[Q−V]=V(s)−V(s)=0
把求和展开,用塔式期望:
Eτ[t∑γtAt]=t∑γtEst=0[Eat∣st[A(st,at)]]=0
所以 J(1)(θold∣θold)=J(θold)+0=J(θold)。证毕。
性质二证明
记 g(θ):=J(1)(θ∣θold)−J(θold) —— 就是式(16) 定义的“提升量 L”。对 θ 求梯度(注意采样分布 Pθold 不依赖 θ,所以可以直接把 ∇ 推进期望):
∇θg(θ)=Eτ∼Pθold[t∑γtπθold(at∣st)∇θπθ(at∣st)Ast,at]
代入 θ=θold,用 log-derivative trick:
πθold(a∣s)∇θπθ(a∣s)θ=θold=∇θlogπθ(a∣s)θ=θold
代回去:
∇θgθ=θold=Eτ∼Pθold[t∑γt∇θlogπθ(at∣st)θ=θoldAst,at(θold)]
右边这项也是策略梯度定理的右边:
∇θJ(θ)=Eτ∼Pθ[t∑γt∇θlogπθ(at∣st)A(st,at)]
注意,标准公式 A 是 Q,但是一般实际会换为 A,原因我们在 TRPO[2] 也提到过:降低梯度的方差,把绝对提升变为相对提升。而且,根据基线不变性(在策略梯度的权重项里减去一个只与状态 s 有关、与当前动作 a 无关的函数,它的梯度期望值等于 0),这不会改变策略梯度的理论期望值。
另外,有时候会看到没有折扣因子的写法,也是正确的写法。之所以去掉,不仅是为了降低方差,把后期的梯度“放大”回正常水平;而且直观上也更加合理。折扣因子会导致初期行为被赋予很大梯度,而后期即便做出关键动作,梯度也变得微乎其微了。这在直觉上不对。还有就是折扣因子经常退化到了其他地方,比如用 γ 来计算未来的折扣回报。
继续回到证明,所以在 θ=θold 处(此时 Pθ=Pθold):
∇θJ(θ)θ=θold=∇θgθ=θold=∇θJ(θ)(1)(θ∣θold)θ=θold−0
也就是说,∇J(1)=∇J 在 θold 处。证毕。
直觉来看,g(θ)=J(1)(θ∣θold)−J(θold) 这个减法只是把 J(1) 整体向下平移了一个常数 J(θold),形状(导数)完全没变。
公式对应
| 表达式 |
TRPO[2] 对应 |
| J(θ) |
η(πθ) |
| J(1)(θ∣θold) |
Lπθold(πθ) |
| ΔJ(1)(θ∣θold) |
Lπθold(πθ)−η(πθold)(即 surrogate 比旧策略多赚的部分) |
| J(1)(θold∣θold)=J(θold) |
TRPO[2] 式 19:Lπi(πi)=η(πi) |
| $\nabla J^{(1)} |
{\theta_\text{old}} = \nabla J |
| MM 推论:J(θnew)≥J(θold) |
TRPO[2] 式 20 |
Reference
[1] TRPO深度拆解:为什么做后训练应该读懂TRPO | 长琴: https://yam.gift/2026/05/11/NLP/LLM-Training/2026-05-11-TRPO/
[2] TRPO: https://yam.gift/2026/05/11/NLP/LLM-Training/2026-05-11-TRPO/
[3] GAGPO: https://yam.gift/2026/05/18/NLP/LLM-Training/2026-05-18-GAGPO/
[4] 异曲同工之妙的DrGRPO——DAPO几乎同时出现的又一GRPO优化! | 长琴: https://yam.gift/2025/03/28/NLP/LLM-Training/2025-03-28-LLM-PostTrain-DrGRPO/