Baseline:无偏性与方差降低#

进阶8 分钟阅读查看源文件 ↗

TL;DR#

本页内容7 个部分

Baseline:保持无偏并选择降方差的参考值

1. 状态参照与采样波动#

在动作 1 得 1 分、动作 0 得 0 分的任务中,当前策略以 0.90.9 的概率选择动作 1。每次采样得到的梯度可能不同。怎样选择一个共用参照,使这些梯度估计的波动更小?

REINFORCE 直接用回报给动作的 log 概率梯度加权。同一个状态下,不同动作的回报可能包含共同的状态相关偏移。该偏移不提供动作之间的相对信息,但仍参与采样梯度的计算。Baseline 用于在保持期望梯度不变的条件下,减少这部分偏移可能造成的采样波动。

2. 状态参照与梯度估计#

Baseline 是在当前状态下共用的参考值:先用回报减去它,再乘动作的 log 概率梯度。动作无关的参考值不会改变平均梯度,但具体取值能否降低方差,取决于回报与 log 概率梯度的联合分布。平均值不变与方差下降,需要分别证明。

固定状态后,从所有回报中减去同一个常数,不会改变回报的方差。Baseline 要降低的是“回报残差乘 log 概率梯度”的方差,而非回报本身的方差。

2.1 固定状态下的参考值#

策略 πθ(a∣s)\pi_\theta(a\mid s) 给出状态 ss 下选择动作 aa 的概率,θ\theta 是参数。REINFORCE 用采样 return GG 缩放动作 log 概率对参数的梯度(score 向量):

g^=G∇θlog⁡πθ(a∣s).\hat g=G\nabla_\theta\log\pi_\theta(a\mid s).

GG 是 REINFORCE 中从当前时刻开始的累计回报 GtG_t,单步任务里就是奖励 RR;这里固定一个时刻,省略下标。假设同一个状态下,不同动作的 return 都含有公共偏移 c(s)c(s)。该偏移不区分动作的相对回报,但每次采样仍会贡献 c(s)∇θlog⁡πθ(a∣s)c(s)\nabla_\theta\log\pi_\theta(a\mid s),可能增加梯度估计的波动。

因此引入一个只依赖状态的参考值 b(s)b(s):

g^b=(G−b(s))∇θlog⁡πθ(a∣s).\hat g_b=(G-b(s))\nabla_\theta\log\pi_\theta(a\mid s).

同一个 b(s)b(s) 可以用于这个状态下的所有动作,但各动作的 score 不同,所以减去同一个数后,梯度估计的变化也不同。任意选择一个参考值,并不保证降方差。

以下先固定策略。用于更新 Actor 时,baseline 作为回报参照,在反向传播中视为常数。

2.2 两动作任务的回报与 score#

沿用 REINFORCE 的一步任务:只有一个状态,策略由一个 logit 参数控制,p=σ(θ)=0.9p=\sigma(\theta)=0.9、π(1)=p\pi(1)=p、π(0)=1−p\pi(0)=1-p;其中 σ\sigma 是 sigmoid 函数。回报 G=aG=a,即动作 11 得 11,动作 00 得 00。

这里只有一个参数,因此 score 向量 zz 退化为标量。两个动作对应的值分别是:

z(1)=∂log⁡p∂θ=1−p=0.1,z(0)=∂log⁡(1−p)∂θ=−p=−0.9.z(1)=\frac{\partial\log p}{\partial\theta}=1-p=0.1, \qquad z(0)=\frac{\partial\log(1-p)}{\partial\theta}=-p=-0.9.

action 概率 return GG score zz z2z^2
11 0.90.9 11 0.10.1 0.010.01
00 0.10.1 00 −0.9-0.9 0.810.81

2.3 不同参照值怎样改变梯度波动#

该状态的平均回报为 0.90.9,记为 Vπ(s)V^\pi(s)。以下数值是手算结果,不是训练实验。

需要估计的解析梯度为 ∂θE[G]=∂θp=p(1−p)=0.09\partial_\theta\mathbb E[G]=\partial_\theta p=p(1-p)=0.09。把不同 bb 代入 g^b=(G−b)z\hat g_b=(G-b)z,直接枚举两种结果:

baseline action 11 时的 g^b\hat g_b action 00 时的 g^b\hat g_b 均值 方差
b=0b=0 0.100.10 00 0.090.09 0.00090.0009
b=0.05b=0.05 0.0950.095 0.0450.045 0.090.09 0.0002250.000225
b=0.1b=0.1 0.090.09 0.090.09 0.090.09 00
b=Vπ(s)=0.9b=V^\pi(s)=0.9 0.010.01 0.810.81 0.090.09 0.05760.0576

例如最后一行的均值是 0.9×0.01+0.1×0.81=0.090.9\times0.01+0.1\times0.81=0.09;方差是 0.9(0.01−0.09)2+0.1(0.81−0.09)2=0.05760.9(0.01-0.09)^2+0.1(0.81-0.09)^2=0.0576。

本例中,b=0.1b=0.1 让两种动作给出相同估计,方差因此为零。减平均回报仍无偏,方差却是不减时的 6464 倍。

这组手算结果说明,残差均值为零与梯度方差最小是不同的性质。

3. 期望梯度不变与方差最小化#

3.1 动作无关参照的无偏性#

固定状态 ss,只要 b(s)b(s) 不依赖当前动作 aa,就能从动作期望中提出。沿用 REINFORCE 的固定支持与可交换求导条件:

Ea∼πθ(⋅∣s)[b(s)∇θlog⁡πθ(a∣s)]=b(s)∑aπθ(a∣s)∇θlog⁡πθ(a∣s)=b(s)∑a∇θπθ(a∣s)=b(s)∇θ1=0.\begin{aligned} \mathbb E_{a\sim\pi_\theta(\cdot\mid s)}[b(s)\nabla_\theta\log\pi_\theta(a\mid s)] &=b(s)\sum_a\pi_\theta(a\mid s)\nabla_\theta\log\pi_\theta(a\mid s)\\ &=b(s)\sum_a\nabla_\theta\pi_\theta(a\mid s)\\ &=b(s)\nabla_\theta 1=0. \end{aligned}

第二步用了 π∇log⁡π=∇π\pi\nabla\log\pi=\nabla\pi,最后一步用了所有动作的概率和为 11。这里把 baseline 视为固定参考值,没有对 baseline 求导。

因此 E[g^b∣s]=E[g^∣s]\mathbb E[\hat g_b\mid s]=\mathbb E[\hat g\mid s]。平均梯度不变,但单次估计的方差仍取决于参考值。

3.2 梯度总方差与二阶矩#

沿用梯度估计 g^b=(G−b(s))z\hat g_b=(G-b(s))z,其中 zz 是动作的 log 概率梯度。固定当前策略与状态 ss,只调整参考值 bb;期望覆盖当前动作及后续 rollout,假设所需二阶矩存在。

梯度通常是向量,将各参数坐标的方差相加,得到梯度总方差:

梯度总方差=E[∥g^b∥22∣s]−∥E[g^b∣s]∥22.\text{梯度总方差}=\mathbb E[\|\hat g_b\|_2^2\mid s]-\|\mathbb E[\hat g_b\mid s]\|_2^2.

第二项不随 bb 变化,所以最小化第一项即可。

代入 g^b=(G−b)z\hat g_b=(G-b)z,方差最小化等价于最小化以下加权二阶矩:

最小梯度二阶矩=min⁡b  E ⁣[(G−b)2∥z∥22∣s].\boxed{ \text{最小梯度二阶矩}=\min_b\;\mathbb E\!\left[ (G-b)^2\|z\|_2^2 \mid s\right]. }

计算该目标时,先将每个样本的回报残差平方乘以其 score 向量范数平方 ∥z∥22\|z\|_2^2,再对样本取平均。同样大小的回报残差,对应的 score 范数越大,对梯度二阶矩的贡献越大;因此方差最优参照需要对这些样本赋予更大的权重。

3.3 方差最优参照值的推导#

现在策略已经固定,式子里只有 (G−b)2(G-b)^2 随 bb 变化。对 baseline 的数值 bb 求导:

ddbE ⁣[(G−b)2∥z∥22∣s]=E ⁣[2(b−G)∥z∥22∣s].\frac{\mathrm d}{\mathrm db}\mathbb E\!\left[(G-b)^2\|z\|_2^2\mid s\right]=\mathbb E\!\left[2(b-G)\|z\|_2^2\mid s\right].

令导数为零,除去公因子 22。因为固定状态下的 bb 是常数,可以从期望中提出:

b E[∥z∥22∣s]=E[G∥z∥22∣s].b\,\mathbb E[\|z\|_2^2\mid s]=\mathbb E[G\|z\|_2^2\mid s].

两边除以 score 向量范数平方的平均值,就得到:

b∗(s)=E[G∥z∥22∣s]E[∥z∥22∣s].\boxed{ b^*(s)= \frac{\mathbb E[G\|z\|_2^2\mid s]} {\mathbb E[\|z\|_2^2\mid s]}. }

最优 baseline 是按 score 向量范数平方加权的平均回报。 分子是“回报乘权重”的平均,分母是权重的平均。

只要分母大于零,目标关于 bb 的二阶导数就是分母的两倍,严格大于零,所以这里求得的是唯一最小值。如果分母为零,score 向量在当前动作分布下几乎处处为零。此时,任何有限 baseline 都不会改变梯度估计,不能使用这个比值求最优 baseline。

3.4 用加权公式计算最优参照值#

两动作任务中,平均回报为 Vπ(s)=0.9V^\pi(s)=0.9。将动作概率 [0.9,0.1][0.9,0.1]、回报 [1,0][1,0] 和 score 平方 [0.01,0.81][0.01,0.81] 代入加权最优值公式。

分子是“回报乘导数平方”的平均,为 0.9×1×0.01+0.1×0×0.81=0.0090.9\times1\times0.01+0.1\times0\times0.81=0.009;分母是导数平方的平均,为 0.9×0.01+0.1×0.81=0.090.9\times0.01+0.1\times0.81=0.09。所以:

b∗=0.0090.09=0.1≠Vπ(s)=0.9.\boxed{b^*=\frac{0.009}{0.09}=0.1\ne V^\pi(s)=0.9.}

计算得到的 b∗=0.1b^*=0.1,正是使两种动作都产生梯度估计 0.090.09 的参照值。该例的降方差范围为 0<b<0.20<b<0.2;这里比较的是梯度估计,而非回报本身的方差。

4. 价值参照与使用条件#

4.1 平均回报为何不一定最优#

常用的 baseline 是条件平均 return b(s)=Vπ(s)=E[G∣s]b(s)=V^\pi(s)=\mathbb E[G\mid s]。它有明确的价值含义,可用采样 return 作为回归目标学习;普通均方误差的最优预测就是条件均值。

arg⁡min⁡bE[(G−b)2∣s]=Vπ(s).\arg\min_b\mathbb E[(G-b)^2\mid s]=V^\pi(s).

但梯度方差目标还给每个样本乘了score 向量范数平方。如果各个动作的 score 向量范数相同,权重会抵消,最优 baseline 就是平均回报;score 向量范数不同时,就不能直接忽略这些权重。

更一般地,两者的差可以用协方差表示:

b∗(s)−Vπ(s)=Cov⁡ ⁣(G,∥z∥22∣s)E[∥z∥22∣s].b^*(s)-V^\pi(s)=\frac{\operatorname{Cov}\!\left(G,\|z\|_2^2\mid s\right)} {\mathbb E[\|z\|_2^2\mid s]}.

这是把 Vπ(s)=E[G∣s]V^\pi(s)=\mathbb E[G\mid s] 通分后的结果:分子变为 E[G∥z∥22∣s]−E[G∣s]E[∥z∥22∣s]\mathbb E[G\|z\|_2^2\mid s]-\mathbb E[G\mid s]\mathbb E[\|z\|_2^2\mid s],恰好是条件协方差的定义。

分母大于零时,两者相等当且仅当这个条件协方差为零。各动作的 score 向量范数相同,是一个充分条件;否则,采用平均回报作为参照仍可能增大梯度方差。

VV、QQ 与 A=Q−VA=Q-V 的价值含义及估计方式在 Advantage 中展开;这里比较的是不同参考值对梯度方差的影响。

4.2 学习参照与使用参照的条件#

若固定策略,用普通 return 均方误差训练一个容量足够的预测器,理想目标是 Vπ(s)V^\pi(s)。如果专门最小化本篇定义的单项梯度总方差,对应的是加权回归:

Lb(ϕ)=E ⁣[∥z∥22(G−bϕ(s))2].L_b(\phi)=\mathbb E\!\left[\|z\|_2^2\big(G-b_\phi(s)\big)^2\right].

策略固定、模型能表达逐状态解时,这个加权回归的理想预测是 b∗(s)b^*(s)。实际拟合仍受样本量、模型容量和优化误差影响。

使用时还要区分以下条件:

  • 动作独立性:固定当前状态后,baseline 不依赖当前采样动作。随机 baseline 在给定状态后与当前动作独立时,其与 score 乘积的条件期望也为零。
  • 梯度路径:actor loss 中将 baseline 视为常数;共享网络可以通过独立的 critic loss 学习,不能让 actor loss 额外沿 baseline 分支求导。
  • 样本复用:包含当前样本得分的均值 baseline 会依赖当前样本,不能直接套用动作无关的证明。RLOO 改用同题其他独立回答的均值,使参照在给定题目后与当前回答独立。

4.3 单项最优不等于轨迹最优#

独立同分布样本取平均时,方差按样本数缩小,最优 baseline 不变。同一轨迹中不同时刻的梯度项却可能相关,因此逐状态的单项最优值未必使整条轨迹的梯度和具有最小总方差。

此外,总方差是各坐标方差之和。它最小,不代表每个坐标都各自最小,也不直接保证训练收敛更快。

参考资料#

  1. Greensmith、Bartlett 与 Baxter(2004). 原文:§5、§7:梯度方差与加权最优 baseline。

补充推导#

Baseline 严格降低梯度方差的取值范围

除最优值外,还需确定所选 bb 相比 b=0b=0 是否严格降低梯度方差。

两种选择的平均梯度相同,所以相减时,方差公式中的“平均的平方”会抵消。只剩下:

加 baseline 后的方差−不加时的方差=E ⁣[((G−b)2−G2)∥z∥22∣s].\text{加 baseline 后的方差}-\text{不加时的方差}=\mathbb E\!\left[\big((G-b)^2-G^2\big)\|z\|_2^2\mid s\right].

展开 (G−b)2−G2=b2−2bG(G-b)^2-G^2=b^2-2bG,上面的差就是:

方差变化=b2 E[∥z∥22∣s]−2b E[G∥z∥22∣s].\text{方差变化}=b^2\,\mathbb E[\|z\|_2^2\mid s]-2b\,\mathbb E[G\|z\|_2^2\mid s].

由刚求出的最优值,第二个期望等于 b∗b^* 乘以第一个期望。代入并提取共同因子:

方差变化=E[∥z∥22∣s]  b(b−2b∗).\boxed{ \text{方差变化} =\mathbb E[\|z\|_2^2\mid s]\;b(b-2b^*). }

当 score 向量范数平方的平均值大于零时,判断方差是否下降,等价于判断 b(b−2b∗)b(b-2b^*) 是否小于零:

  • 若 b∗>0b^*>0,严格降方差的范围是 0<b<2b∗0<b<2b^*。
  • 若 b∗<0b^*<0,范围是 2b∗<b<02b^*<b<0。
  • 若 b∗=0b^*=0,不加 baseline 已经最优,任何非零 bb 都会增大方差。

端点与 b=0b=0 的方差相同。上述正、负、零三种情况合起来,就是 ∣b−b∗∣<∣b∗∣|b-b^*|<|b^*|:所选值比零更接近最优值。

进一步配方还能得到:

相对最优值多出的方差=E[∥z∥22∣s] (b−b∗)2.\text{相对最优值多出的方差}=\mathbb E[\|z\|_2^2\mid s]\,(b-b^*)^2.

因此,在本节条件下,可以通过比较两个 baseline 与 b∗b^* 的距离,判断哪一个产生更小的梯度方差。

上述加权最优值与平方距离形式,针对固定状态下单项梯度的总方差。[1]