
1. 状态参照与采样波动#
在动作 1 得 1 分、动作 0 得 0 分的任务中,当前策略以 0.9 的概率选择动作 1。每次采样得到的梯度可能不同。怎样选择一个共用参照,使这些梯度估计的波动更小?
REINFORCE 直接用回报给动作的 log 概率梯度加权。同一个状态下,不同动作的回报可能包含共同的状态相关偏移。该偏移不提供动作之间的相对信息,但仍参与采样梯度的计算。Baseline 用于在保持期望梯度不变的条件下,减少这部分偏移可能造成的采样波动。
2. 状态参照与梯度估计#
Baseline 是在当前状态下共用的参考值:先用回报减去它,再乘动作的 log 概率梯度。动作无关的参考值不会改变平均梯度,但具体取值能否降低方差,取决于回报与 log 概率梯度的联合分布。平均值不变与方差下降,需要分别证明。
固定状态后,从所有回报中减去同一个常数,不会改变回报的方差。Baseline 要降低的是“回报残差乘 log 概率梯度”的方差,而非回报本身的方差。
2.1 固定状态下的参考值#
策略 πθ(a∣s) 给出状态 s 下选择动作 a 的概率,θ 是参数。REINFORCE 用采样 return G 缩放动作 log 概率对参数的梯度(score 向量):
g^=G∇θlogπθ(a∣s).
G 是 REINFORCE 中从当前时刻开始的累计回报 Gt,单步任务里就是奖励 R;这里固定一个时刻,省略下标。假设同一个状态下,不同动作的 return 都含有公共偏移 c(s)。该偏移不区分动作的相对回报,但每次采样仍会贡献 c(s)∇θlogπθ(a∣s),可能增加梯度估计的波动。
因此引入一个只依赖状态的参考值 b(s):
g^b=(G−b(s))∇θlogπθ(a∣s).
同一个 b(s) 可以用于这个状态下的所有动作,但各动作的 score 不同,所以减去同一个数后,梯度估计的变化也不同。任意选择一个参考值,并不保证降方差。
以下先固定策略。用于更新 Actor 时,baseline 作为回报参照,在反向传播中视为常数。
2.2 两动作任务的回报与 score#
沿用 REINFORCE 的一步任务:只有一个状态,策略由一个 logit 参数控制,p=σ(θ)=0.9、π(1)=p、π(0)=1−p;其中 σ 是 sigmoid 函数。回报 G=a,即动作 1 得 1,动作 0 得 0。
这里只有一个参数,因此 score 向量 z 退化为标量。两个动作对应的值分别是:
z(1)=∂θ∂logp=1−p=0.1,z(0)=∂θ∂log(1−p)=−p=−0.9.
2.3 不同参照值怎样改变梯度波动#
该状态的平均回报为 0.9,记为 Vπ(s)。以下数值是手算结果,不是训练实验。
需要估计的解析梯度为 ∂θE[G]=∂θp=p(1−p)=0.09。把不同 b 代入 g^b=(G−b)z,直接枚举两种结果:
例如最后一行的均值是 0.9×0.01+0.1×0.81=0.09;方差是 0.9(0.01−0.09)2+0.1(0.81−0.09)2=0.0576。
本例中,b=0.1 让两种动作给出相同估计,方差因此为零。减平均回报仍无偏,方差却是不减时的 64 倍。
这组手算结果说明,残差均值为零与梯度方差最小是不同的性质。
3. 期望梯度不变与方差最小化#
3.1 动作无关参照的无偏性#
固定状态 s,只要 b(s) 不依赖当前动作 a,就能从动作期望中提出。沿用 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.
第二步用了 π∇logπ=∇π,最后一步用了所有动作的概率和为 1。这里把 baseline 视为固定参考值,没有对 baseline 求导。
因此 E[g^b∣s]=E[g^∣s]。平均梯度不变,但单次估计的方差仍取决于参考值。
3.2 梯度总方差与二阶矩#
沿用梯度估计 g^b=(G−b(s))z,其中 z 是动作的 log 概率梯度。固定当前策略与状态 s,只调整参考值 b;期望覆盖当前动作及后续 rollout,假设所需二阶矩存在。
梯度通常是向量,将各参数坐标的方差相加,得到梯度总方差:
梯度总方差=E[∥g^b∥22∣s]−∥E[g^b∣s]∥22.
第二项不随 b 变化,所以最小化第一项即可。
代入 g^b=(G−b)z,方差最小化等价于最小化以下加权二阶矩:
最小梯度二阶矩=bminE[(G−b)2∥z∥22∣s].
计算该目标时,先将每个样本的回报残差平方乘以其 score 向量范数平方 ∥z∥22,再对样本取平均。同样大小的回报残差,对应的 score 范数越大,对梯度二阶矩的贡献越大;因此方差最优参照需要对这些样本赋予更大的权重。
3.3 方差最优参照值的推导#
现在策略已经固定,式子里只有 (G−b)2 随 b 变化。对 baseline 的数值 b 求导:
dbdE[(G−b)2∥z∥22∣s]=E[2(b−G)∥z∥22∣s].
令导数为零,除去公因子 2。因为固定状态下的 b 是常数,可以从期望中提出:
bE[∥z∥22∣s]=E[G∥z∥22∣s].
两边除以 score 向量范数平方的平均值,就得到:
b∗(s)=E[∥z∥22∣s]E[G∥z∥22∣s].
最优 baseline 是按 score 向量范数平方加权的平均回报。 分子是“回报乘权重”的平均,分母是权重的平均。
只要分母大于零,目标关于 b 的二阶导数就是分母的两倍,严格大于零,所以这里求得的是唯一最小值。如果分母为零,score 向量在当前动作分布下几乎处处为零。此时,任何有限 baseline 都不会改变梯度估计,不能使用这个比值求最优 baseline。
3.4 用加权公式计算最优参照值#
两动作任务中,平均回报为 Vπ(s)=0.9。将动作概率 [0.9,0.1]、回报 [1,0] 和 score 平方 [0.01,0.81] 代入加权最优值公式。
分子是“回报乘导数平方”的平均,为 0.9×1×0.01+0.1×0×0.81=0.009;分母是导数平方的平均,为 0.9×0.01+0.1×0.81=0.09。所以:
b∗=0.090.009=0.1=Vπ(s)=0.9.
计算得到的 b∗=0.1,正是使两种动作都产生梯度估计 0.09 的参照值。该例的降方差范围为 0<b<0.2;这里比较的是梯度估计,而非回报本身的方差。
4. 价值参照与使用条件#
4.1 平均回报为何不一定最优#
常用的 baseline 是条件平均 return b(s)=Vπ(s)=E[G∣s]。它有明确的价值含义,可用采样 return 作为回归目标学习;普通均方误差的最优预测就是条件均值。
argbminE[(G−b)2∣s]=Vπ(s).
但梯度方差目标还给每个样本乘了score 向量范数平方。如果各个动作的 score 向量范数相同,权重会抵消,最优 baseline 就是平均回报;score 向量范数不同时,就不能直接忽略这些权重。
更一般地,两者的差可以用协方差表示:
b∗(s)−Vπ(s)=E[∥z∥22∣s]Cov(G,∥z∥22∣s).
这是把 Vπ(s)=E[G∣s] 通分后的结果:分子变为 E[G∥z∥22∣s]−E[G∣s]E[∥z∥22∣s],恰好是条件协方差的定义。
分母大于零时,两者相等当且仅当这个条件协方差为零。各动作的 score 向量范数相同,是一个充分条件;否则,采用平均回报作为参照仍可能增大梯度方差。
V、Q 与 A=Q−V 的价值含义及估计方式在 Advantage 中展开;这里比较的是不同参考值对梯度方差的影响。
4.2 学习参照与使用参照的条件#
若固定策略,用普通 return 均方误差训练一个容量足够的预测器,理想目标是 Vπ(s)。如果专门最小化本篇定义的单项梯度总方差,对应的是加权回归:
Lb(ϕ)=E[∥z∥22(G−bϕ(s))2].
策略固定、模型能表达逐状态解时,这个加权回归的理想预测是 b∗(s)。实际拟合仍受样本量、模型容量和优化误差影响。
使用时还要区分以下条件:
- 动作独立性:固定当前状态后,baseline 不依赖当前采样动作。随机 baseline 在给定状态后与当前动作独立时,其与 score 乘积的条件期望也为零。
- 梯度路径:actor loss 中将 baseline 视为常数;共享网络可以通过独立的 critic loss 学习,不能让 actor loss 额外沿 baseline 分支求导。
- 样本复用:包含当前样本得分的均值 baseline 会依赖当前样本,不能直接套用动作无关的证明。RLOO 改用同题其他独立回答的均值,使参照在给定题目后与当前回答独立。
4.3 单项最优不等于轨迹最优#
独立同分布样本取平均时,方差按样本数缩小,最优 baseline 不变。同一轨迹中不同时刻的梯度项却可能相关,因此逐状态的单项最优值未必使整条轨迹的梯度和具有最小总方差。
此外,总方差是各坐标方差之和。它最小,不代表每个坐标都各自最小,也不直接保证训练收敛更快。
参考资料#
- Greensmith、Bartlett 与 Baxter(2004). 原文:§5、§7:梯度方差与加权最优 baseline。
补充推导#
Baseline 严格降低梯度方差的取值范围
除最优值外,还需确定所选 b 相比 b=0 是否严格降低梯度方差。
两种选择的平均梯度相同,所以相减时,方差公式中的“平均的平方”会抵消。只剩下:
加 baseline 后的方差−不加时的方差=E[((G−b)2−G2)∥z∥22∣s].
展开 (G−b)2−G2=b2−2bG,上面的差就是:
方差变化=b2E[∥z∥22∣s]−2bE[G∥z∥22∣s].
由刚求出的最优值,第二个期望等于 b∗ 乘以第一个期望。代入并提取共同因子:
方差变化=E[∥z∥22∣s]b(b−2b∗).
当 score 向量范数平方的平均值大于零时,判断方差是否下降,等价于判断 b(b−2b∗) 是否小于零:
- 若 b∗>0,严格降方差的范围是 0<b<2b∗。
- 若 b∗<0,范围是 2b∗<b<0。
- 若 b∗=0,不加 baseline 已经最优,任何非零 b 都会增大方差。
端点与 b=0 的方差相同。上述正、负、零三种情况合起来,就是 ∣b−b∗∣<∣b∗∣:所选值比零更接近最优值。
进一步配方还能得到:
相对最优值多出的方差=E[∥z∥22∣s](b−b∗)2.
因此,在本节条件下,可以通过比较两个 baseline 与 b∗ 的距离,判断哪一个产生更小的梯度方差。
上述加权最优值与平方距离形式,针对固定状态下单项梯度的总方差。[1]