REINFORCE:从期望回报到采样梯度#

入门6 分钟阅读查看源文件 ↗

TL;DR#

本页内容7 个部分

REINFORCE:从期望回报到可采样的策略梯度

1. 离散采样的求导问题#

假设一个一步任务有两个动作:动作 1 得 1 分,动作 0 得 0 分。一次交互只观测到所选动作及其回报,怎样用这次结果估计期望回报对参数的梯度?

在长轨迹任务中,可能结果更多,通常无法完整枚举,离散采样操作也无法直接求导。REINFORCE 对已采到动作的 log 概率求导,再用回报加权,得到可采样的梯度估计。

2. 从期望回报到两动作采样计算#

REINFORCE 不对采样动作本身求导,而是对“选择这个动作的 log 概率”求导,再用回报给它加权。正回报轨迹提供提高其 log 概率的梯度系数,负回报轨迹提供相反系数。对多条独立轨迹的采样梯度取平均,可以估计无法逐项枚举的期望梯度。一次策略与环境交互得到的轨迹称为 rollout。

2.1 轨迹与期望回报#

策略 πθ(at∣st)\pi_\theta(a_t\mid s_t) 给出状态 sts_t 下选择动作 ata_t 的概率,θ\theta 是待训练的参数。一条有限轨迹记为 τ=(s0,a0,…,sT−1,aT−1,sT)\tau=(s_0,a_0,\ldots,s_{T-1},a_{T-1},s_T),在终止前共执行 TT 个动作。

令 RtR_t 为动作 ata_t 之后得到的一步奖励。本篇先用不折扣的完整回合,轨迹总回报为 R(τ)=∑t=0T−1RtR(\tau)=\sum_{t=0}^{T-1}R_t;只有终局评分的任务,把评分放在最后一步即可。目标是:

J(θ)=Eτ∼Pθ[R(τ)]=∑τPθ(τ)R(τ).\boxed{J(\theta)=\mathbb E_{\tau\sim P_\theta}[R(\tau)]=\sum_\tau P_\theta(\tau)R(\tau).}

Pθ(τ)P_\theta(\tau) 是策略与环境共同产生这条轨迹的概率。策略优化通过调整轨迹概率,提高期望回报。

以下用当前策略采样,初始状态、环境转移和奖励机制都不显式依赖 θ\theta。另假定策略在固定支持上可微,期望存在,且可交换求导与求和;连续轨迹改用积分。

例如,一步任务只有动作 11 和 00,回报分别为 11 和 00;当前策略选择它们的概率为 0.90.9 和 0.10.1,则期望回报为 J=0.9×1+0.1×0=0.9J=0.9\times1+0.1\times0=0.9。一次采样可能只得到 00,并不意味着这个策略的期望回报是 00。

2.2 两动作任务的采样梯度计算#

用动作 log 概率对参数的导数 z(a)=∇θlog⁡πθ(a)z(a)=\nabla_\theta\log\pi_\theta(a) 表示该动作的 score。对这个一步任务,令 p=πθ(1)=σ(θ)=0.9p=\pi_\theta(1)=\sigma(\theta)=0.9,其中 σ\sigma 是 sigmoid。此时 z(1)=1−p=0.1z(1)=1-p=0.1、z(0)=−p=−0.9z(0)=-p=-0.9:

采到的动作 概率 回报 RR Score zz 单样本梯度 RzRz
11 0.90.9 11 0.10.1 0.10.1
00 0.10.1 00 −0.9-0.9 00

按两种动作的概率加权,平均梯度=0.9×0.1+0.1×0=0.09\text{平均梯度}=0.9\times0.1+0.1\times0=0.09,恰好等于 ∂θJ=∂θp=p(1−p)=0.09\partial_\theta J=\partial_\theta p=p(1-p)=0.09。但单次估计只可能为 0.10.1 或 00,仍有波动。

实际训练可以将固定的采样回报乘以负 log 概率,构造样本 loss ℓ=−Rlog⁡πθ(a)\ell=-R\log\pi_\theta(a)。它的梯度是 −Rz-Rz,所以梯度下降实现上面的上升方向;这个样本 loss 的数值本身不是期望奖励 JJ。每批先完成采样与评分,再固定采样回报进行策略更新,随后用更新后的策略重新采样。

3. 期望回报的采样梯度推导#

3.1 利用 log 导数恒等式改写期望#

对目标直接求导,奖励没有额外的参数导数:

∇θJ(θ)=∑τR(τ)∇θPθ(τ).\nabla_\theta J(\theta)=\sum_\tau R(\tau)\nabla_\theta P_\theta(\tau).

在一般任务中,轨迹数量通常大到无法逐项枚举。若能把 ∇θPθ(τ)\nabla_\theta P_\theta(\tau) 写成“轨迹概率 × 可计算的量”,即可按轨迹概率采样,并对回报与该可计算量的乘积取平均。

对概率为正的轨迹,∇θlog⁡Pθ(τ)=∇θPθ(τ)/Pθ(τ)\nabla_\theta\log P_\theta(\tau)=\nabla_\theta P_\theta(\tau)/P_\theta(\tau),所以 ∇θPθ(τ)=Pθ(τ)∇θlog⁡Pθ(τ)\nabla_\theta P_\theta(\tau)=P_\theta(\tau)\nabla_\theta\log P_\theta(\tau)。代入目标梯度:

∇θJ(θ)=∑τPθ(τ)R(τ)∇θlog⁡Pθ(τ)=Eτ∼Pθ[R(τ)∇θlog⁡Pθ(τ)].\begin{aligned} \nabla_\theta J(\theta) &=\sum_\tau P_\theta(\tau)R(\tau)\nabla_\theta\log P_\theta(\tau)\\ &=\mathbb E_{\tau\sim P_\theta}\left[R(\tau)\nabla_\theta\log P_\theta(\tau)\right]. \end{aligned}

现在可以按 PθP_\theta 采样轨迹,再计算回报与 log 概率梯度的乘积。

3.2 轨迹梯度的逐动作分解#

一条轨迹的概率由初始状态、策略选动作和环境转移共同决定:

Pθ(τ)=P(s0)∏t=0T−1πθ(at∣st)P(st+1∣st,at).P_\theta(\tau)=P(s_0)\prod_{t=0}^{T-1}\pi_\theta(a_t\mid s_t)P(s_{t+1}\mid s_t,a_t).

取 log 后,乘积变成和:

log⁡Pθ(τ)=log⁡P(s0)+∑tlog⁡πθ(at∣st)+∑tlog⁡P(st+1∣st,at).\log P_\theta(\tau)=\log P(s_0)+\sum_t\log\pi_\theta(a_t\mid s_t)+\sum_t\log P(s_{t+1}\mid s_t,a_t).

只有策略显式依赖 θ\theta,因此 ∇θlog⁡Pθ(τ)=∑t∇θlog⁡πθ(at∣st)\nabla_\theta\log P_\theta(\tau)=\sum_t\nabla_\theta\log\pi_\theta(a_t\mid s_t)。把每一步的 log-prob 梯度记为 score 向量 zt=∇θlog⁡πθ(at∣st)z_t=\nabla_\theta\log\pi_\theta(a_t\mid s_t),得到:

∇θJ(θ)=Eτ∼Pθ[R(τ)∑t=0T−1zt].\boxed{\nabla_\theta J(\theta)=\mathbb E_{\tau\sim P_\theta}\left[R(\tau)\sum_{t=0}^{T-1}z_t\right].}

轨迹分布 PθP_\theta 已包含策略对后续状态的影响。计算单条轨迹的 log 概率梯度时,只需固定采到的状态和动作。[1]

3.3 对采样轨迹取平均#

独立采样 NN 条轨迹,用样本平均估计期望:

g^=1N∑i=1NR(τi)∑t=0Ti−1∇θlog⁡πθ(ai,t∣si,t).\hat g=\frac1N\sum_{i=1}^N R(\tau_i)\sum_{t=0}^{T_i-1}\nabla_\theta\log\pi_\theta(a_{i,t}\mid s_{i,t}).

在上述假设下,E[g^]=∇θJ\mathbb E[\hat g]=\nabla_\theta J。无偏指估计量的期望等于真实梯度,单次估计仍可能偏离真实梯度。更新策略时固定采样回报,梯度只经过动作 log 概率。

4. 中间奖励与 LLM 的逐 token 更新#

4.1 每步只保留后续回报#

若过程中有多步奖励,时刻 tt 的动作不能改变此前已经发生的奖励。给定动作前的完整历史,过去奖励是固定值。在本文的 Markov 策略设定下,当前动作的平均 score 为 E[zt∣st]=∑a∇θπθ(a∣st)=0\mathbb E[z_t\mid s_t]=\sum_a\nabla_\theta\pi_\theta(a\mid s_t)=0。所以过去奖励乘 ztz_t 的期望为零,可以从当前动作的梯度权重中移除过去奖励。

定义从当前时刻开始的 return 为 Gt=∑k=tT−1RkG_t=\sum_{k=t}^{T-1}R_k,便得到同一期望梯度的另一种形式:[2]

∇θJ(θ)=E[∑t=0T−1Gtzt].\boxed{\nabla_\theta J(\theta)=\mathbb E\left[\sum_{t=0}^{T-1}G_tz_t\right].}

例如奖励依次是 (1,2,3)(1,2,3),各动作对应的后续回报就是 (6,5,3)(6,5,3)。只有终局奖励 RR、其余奖励为零时,每个 GtG_t 都等于同一个 RR,与终局奖励的序列级梯度形式一致。这里仍是完整回合、不折扣,即折扣因子 γ=1\gamma=1;有折扣时需同步修改目标和时间权重。

4.2 LLM 的逐 token 策略梯度#

给定问题 qq,回答为 y=(y1,…,yT)y=(y_1,\ldots,y_T),这里包含终止 token。状态是 st=(q,y<t)s_t=(q,y_{<t}),动作是 yty_t。完整回答概率为 πθ(y∣q)=∏t=1Tπθ(yt∣q,y<t)\pi_\theta(y\mid q)=\prod_{t=1}^T\pi_\theta(y_t\mid q,y_{<t})。

若只有完整回答的评分 R(q,y)R(q,y),固定问题下的梯度为:

∇θJ(θ∣q)=Ey∼πθ(⋅∣q)[R(q,y)∑t=1T∇θlog⁡πθ(yt∣q,y<t)].\nabla_\theta J(\theta\mid q)=\mathbb E_{y\sim\pi_\theta(\cdot\mid q)}\left[R(q,y)\sum_{t=1}^T\nabla_\theta\log\pi_\theta(y_t\mid q,y_{<t})\right].

实际训练还会对问题取平均。正回报鼓励提高所采回答的 log 概率,负回报则相反;回报大小决定 score 的系数。各 token 共享参数,因此实际概率变化还受其他位置的梯度影响。

5. 采样梯度的局限性与使用条件#

5.1 回报加权的梯度方差#

不同 rollout 的回报和 score 都会变化。在两动作算例中,单次梯度为 0.10.1 或 00,而平均梯度为 0.090.09。单样本梯度估计具有有限方差时,NN 个独立同分布估计的均值方差为单样本方差的 1/N1/N;合适的 baseline 则可降低单样本梯度估计的方差。

5.2 无偏估计的条件#

上面的无偏估计使用当前策略采样和完整回报。复用旧数据时要校正分布;奖励显式依赖参数时要检查额外导数;轨迹截断时要说明如何估计剩余回报。

参考资料#

  1. Policy Gradient Methods(1999). 原文:策略梯度定理与价值函数。
  2. Generalized Advantage Estimation(2015). 原文:Return、价值参照与 Advantage 估计。