想象你是一名刚入职的测绘员,队长派你去测量一列山峰的绝对海拔。你背着仪器在山间跑了一整天,读到的数据却忽高忽低,同一座山上午量是 1200 米,下午量却变成了 1280 米。旁边老师傅递给你一张海平面基准图,说:“先别量绝对高度,把每个读数都减去一个固定的海平面数值。”你照做后,数据抖动的幅度肉眼可见地变小了——更妙的是,山峰之间的高矮排序丝毫没变。 这件事和强化学习里的“基线(Baseline)减少方差”如出一辙。策略梯度算法就像那位冒冒失失的测绘员:用若干条采样轨迹的平均回报来估计梯度,可回报本身受环境随机性和策略随机性影响波动很大,导致梯度估计疯狂抖动。这时,我们引入一个“不依赖动作”的基线 b(s),把累积回报 G_t 先减去基线,再乘上策略梯度。数学保证这意味着的期望完全不变,但方差显著下降,就像减掉海平面后读数迅速变稳。

岗位关联

理解“基线为何减方差不改期望”,是吃透策略梯度、读懂 Actor-Critic 中 Critic 角色的一把钥匙。掌握它,你调参时能少走弯路,设计算法时也能像资深 RL 工程师一样从方差视角做取舍。

目录
  1. 可视化演示
  2. 方差来源
  3. 基线定义
  4. 无偏性证明
  5. 方差机制
  6. 最优基线
  7. 优势函数
  8. Actor-Critic应用
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示深入基线减少方差的数学原理的核心机制,通过开始/执行/监控/完成四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

深入基线减少方差的数学原理:梯度估计 梯度估计量的方差定义与分解 基线项期望为零的严格证明 核心机制可视化 深入基线减少方差的数学原理整体架构与关键组件

方差来源

测绘队的第一次野外作业让你印象深刻:你瞄准同一座山峰连测三次,读数是 1180、1210、1246,看似稳定,可一旦换一座更高的山,波动幅度差点把仪器砸了。问题出在哪里?不是仪器坏了,而是绝对海拔本身包含了两部分:山峰公认的“固有高度”,以及天气、风速造成的随机读数误差。策略梯度的处境一模一样。

策略梯度算法要最大化期望回报 J(θ),可它没法直接求导,只能靠采样来估计梯度:

这个式子的直觉是:我们沿着“让高回报动作概率变大”的方向调整策略。麻烦在于 G_t 是整条轨迹的累积回报,它由环境无数随机因素叠加而成,方差极大。每次采样的 G_t 都像一阵忽大忽小的风,让梯度估计左右摇摆。

回到测绘员的视角:你测得的每一个绝对高度都带着“共同基准”和“随机误差”两股力量。随机误差足够大时,山与山的真实排序都会被掩盖。接下来要做的,是给读数找一个海平面——一个不影响排序、却能抹掉共同噪声的参照物。

∇θJ(θ)=Eτ[∑t=0T∇θlog⁡πθ(at∣st) Gt]\nabla_\theta J(\theta)=\mathbb{E}_{\tau}\left[\sum_{t=0}^{T}\nabla_\theta\log\pi_\theta(a_t\mid s_t)\,G_t\right]
公式含义:策略梯度等于“对数动作概率的梯度”与“累计回报”乘积的期望。它把“动作好不好”和“概率往哪调”绑在了一起。
  1. 策略分布π_θ(a_t|s_t) 是策略网络给出的条件概率,表示在状态 s_t 下选择动作 a_t 的概率。
    πθ(at∣st)\pi_\theta(a_t\mid s_t)
  2. 对数导数∇_θ log π_θ(a_t|s_t) 是对概率取对数后求参数梯度,它指明“增大哪个参数会让这个动作更可能出现”。
    ∇θlog⁡πθ(at∣st)\nabla_\theta\log\pi_\theta(a_t\mid s_t)
  3. 累计回报G_t 是从时刻 t 到回合结束的折扣回报总和,衡量这次选择带来的长期收益。
    Gt=∑k=tTγk−trkG_t=\sum_{k=t}^{T}\gamma^{k-t}r_k
  4. 轨迹期望E_τ 表示对所有可能的轨迹按策略分布求平均,实际中只能用有限条采样轨迹近似。
    Eτ[⋅]≈1N∑i=1N⋅\mathbb{E}_{\tau}[\cdot]\approx\frac{1}{N}\sum_{i=1}^{N}\cdot

基线定义

测绘队长画了一张海平面基准图:不管你在山谷还是山腰,读数先统一减去同一个海平面高度。这个海平面属于所有测量点,唯独不属于任何一座山。类比到策略梯度,低层就是引入一个与动作无关的量 b(s),把它从回报里抽走:

为什么海平面只能由状态 s 决定,而不能看动作 a?因为基线存在的意义是当“公共参照物”。一旦它依赖动作,它就会悄悄携带“对某个动作的偏好”,干扰梯度的诚实性。只有与动作无关的基线,才有资格在不改变期望的前提下发挥作用。

引入基线的直觉像极了测绘员的实操:先减去一个固定海平面,剩下的“相对高度”里,共同噪声被剥离,读数自然清爽。但这一直觉要变成严谨结论,还需要证明那个看似吓人的恒等式。

∇θJ(θ)=Eτ[∑t=0T∇θlog⁡πθ(at∣st)(Gt−b(st))]\nabla_\theta J(\theta)=\mathbb{E}_{\tau}\left[\sum_{t=0}^{T}\nabla_\theta\log\pi_\theta(a_t\mid s_t)\left(G_t-b(s_t)\right)\right]
公式含义:用 G_t - b(s_t) 替换原来的 G_t。b(s_t) 可以是常数,也可以是状态值函数,唯一要求是不含动作变量。
  1. 减法含义G_t - b(s_t) 表示“这次回报比基线的海平面高多少”,相当于把绝对回报转成相对回报。
    Gt−b(st)G_t-b(s_t)
  2. 动作无关b(s_t) 的下标只有状态 s_t,没有动作 a_t,这是无偏性成立的前提。
    b(st)≠b(st,at)b(s_t)\neq b(s_t,a_t)
  3. 整体期望外层仍对轨迹求期望,说明我们只是给被积函数换了一个等价形式,后续会证明期望值不变。
    Eτ[∇θlog⁡πθ(at∣st)⋅b(st)]=0\mathbb{E}_{\tau}\left[\nabla_\theta\log\pi_\theta(a_t\mid s_t)\cdot b(s_t)\right]=0

无偏性证明

老师傅说“排序不会变”,你不敢全信,直到他拿出纸笔推导了一遍。策略梯度的无偏性,也可以归结为一个优美的恒等式:策略概率分布的总和恒为 1,它对参数求导必为 0,于是基线项乘上策略梯度后的期望也必为 0。

推导的核心是“对数导数技巧”:

每一步都不需要假设回报长什么样。只要基线不依赖动作 a,它对梯度的贡献就是零,自然不影响策略梯度的期望。

这个证明告诉我们:任何与动作无关的基线都是安全的。但“安全”不等于“有用”——基线选得不好,方差甚至可能变大。接下来要看它到底如何影响方差。

∑aπθ(a∣s) ∇θlog⁡πθ(a∣s) b(s)=b(s)∑a∇θπθ(a∣s)=b(s) ∇θ ⁣∑aπθ(a∣s)=b(s) ∇θ1=0\sum_{a}\pi_\theta(a\mid s)\,\nabla_\theta\log\pi_\theta(a\mid s)\,b(s)=b(s)\sum_{a}\nabla_\theta\pi_\theta(a\mid s)=b(s)\,\nabla_\theta\!\sum_{a}\pi_\theta(a\mid s)=b(s)\,\nabla_\theta 1=0
公式含义:概率分布总和恒为 1,所以它的梯度为零。基线就像海平面,无论怎么平移,山与山的相对高差排序都纹丝不动。
  1. 对数导数展开把 ∇ log π 写成 (∇π)/π,再乘上前面的 π,两者约分得到一个干净的 ∇π。
    πθ(a∣s)⋅∇θπθ(a∣s)πθ(a∣s)=∇θπθ(a∣s)\pi_\theta(a\mid s)\cdot\frac{\nabla_\theta\pi_\theta(a\mid s)}{\pi_\theta(a\mid s)}=\nabla_\theta\pi_\theta(a\mid s)
  2. 求和与梯度和调换对有限个动作求和后求梯度,等于先梯度再求和,梯度算子穿过求和号。
    ∑a∇θπθ(a∣s)=∇θ∑aπθ(a∣s)\sum_{a}\nabla_\theta\pi_\theta(a\mid s)=\nabla_\theta\sum_{a}\pi_\theta(a\mid s)
  3. 概率归一化所有动作概率之和恒等于 1,所以它对 θ 的梯度为 0。
    ∑aπθ(a∣s)=1  ⇒  ∇θ1=0\sum_{a}\pi_\theta(a\mid s)=1\;\Rightarrow\;\nabla_\theta 1=0
  4. 结论基线项期望为零,加入前后策略梯度期望完全一致,无偏性成立。
    Ea∼π[∇θlog⁡πθ(a∣s)b(s)]=0\mathbb{E}_{a\sim\pi}\left[\nabla_\theta\log\pi_\theta(a\mid s)b(s)\right]=0

方差机制

测绘员最关心的是读数抖动。为什么减去海平面后抖动会减小?因为绝对读数的波动里,很大一部分来自“共同的海拔地基起伏”,而这部分与山峰本身无关。把它减掉后,剩下的波动才真正反映采样误差。

用数学语言说,令 D = ∇_θ log π_θ(a|s),考察加入基线前后梯度项 g = (G − b)·D 的方差:

这个式子揭示了一个反直觉的事实:基线并不总是降方差。当 b 落在 0 到 2·Cov(GD,D)/Var[D] 之间时,交叉项 -2b·Cov 显著地压低整体方差;一旦 b 超出该区间,二次项 b²·Var[D] 反而会把方差顶上去。

可见,基线就像海平面高度:选得恰到好处,噪声被抹平;选得离谱,反而引入新的晃动。那怎样的海平面才算“恰到好处”?答案就是最优基线。

Var[(G−b)D]=Var[GD]−2b Cov(GD,D)+b2Var[D]\mathrm{Var}\left[(G-b)D\right]=\mathrm{Var}\left[GD\right]-2b\,\mathrm{Cov}\left(GD,D\right)+b^{2}\mathrm{Var}\left[D\right]
公式含义:方差由三项组成——原始方差、基线带来的修正项、基线自身的平方项。合适的基线让修正项“抵消”掉不想要的波动。
  1. 方差定义g 的方差等于二阶矩减期望平方,这里用其一维形式展开交叉项。
    Var[X]=E[X2]−E[X]2\mathrm{Var}[X]=\mathbb{E}[X^2]-\mathbb{E}[X]^2
  2. 代入变换把 X=(G-b)D 代入,得到三项:Var[GD]、-2b·Cov(GD,D)、b²Var[D]。
    Var[(G−b)D]=Var[GD]−2b Cov(GD,D)+b2Var[D]\mathrm{Var}[(G-b)D]=\mathrm{Var}[GD]-2b\,\mathrm{Cov}(GD,D)+b^{2}\mathrm{Var}[D]
  3. 协方差符号高回报动作通常对应正的策略梯度,所以 Cov(GD,D) 往往为正,负号项起降方差作用。
    Cov(GD,D)>0  ⇒  −2b Cov(GD,D)<0\mathrm{Cov}(GD,D)>0\;\Rightarrow\;-2b\,\mathrm{Cov}(GD,D)<0
  4. 最优点判断对 b 求导找最小值,得到方差最小时的最优 b 满足一阶条件。
    ∂∂bVar[(G−b)D]=0\frac{\partial}{\partial b}\mathrm{Var}[(G-b)D]=0

最优基线

测绘队把海平面定在 0 米,是因为全球统一。但在强化学习中,我们可以自由移动海平面——前提是它不依赖动作。于是自然诞生一个问题:哪个基线能让方差最小?答案可以通过求导得到,用“梯度平方加权”的回报期望:

这个式子的意思是:梯度越大的动作,对期望的贡献权重越高,基线应更偏向那些“高梯度样本”的回报。直觉上,它像一个精明的测绘队长:读数少的地方多相信总基准,读数可靠的地方适当跟随地形。

∂∂bE[(G−b)2D2]=−2E[(G−b)D2]=0\frac{\partial}{\partial b}\mathbb{E}\left[(G-b)^{2}D^{2}\right] =-2\mathbb{E}\left[(G-b)D^{2}\right]=0

可惜,最优基线需要提前知道梯度平方的期望,而这正是我们正在估计的东西,形成一个循环依赖。实践中,人们常用状态价值函数 V(s) 来近似最优基线——这就引出了“优势函数”。

b∗(s)=Ea∼π[Gt:∞(∇θlog⁡πθ(a∣s))2]Ea∼π[(∇θlog⁡πθ(a∣s))2]b^{*}(s)=\frac{\mathbb{E}_{a\sim\pi}\left[G_{t:\infty}\left(\nabla_\theta\log\pi_\theta(a\mid s)\right)^{2}\right]}{\mathbb{E}_{a\sim\pi}\left[\left(\nabla_\theta\log\pi_\theta(a\mid s)\right)^{2}\right]}
公式含义:最优基线不是简单平均回报,而是以梯度平方为权重的加权平均回报。
  1. 目标函数求使 E[(G − b)²D²] 最小的 b,其中 D=∇_θ log π_θ(a|s)。
    min⁡b  Ea∼π[(G−b)2D2]\min_{b}\;\mathbb{E}_{a\sim\pi}\left[(G-b)^{2}D^{2}\right]
  2. 一阶条件对 b 求导并令其为零,负号项归零,导函数写为期望形式。
  3. 解出 b整理后,E[G·D²] = b·E[D²],因此最优 b 是两项期望之比。
    E[GD2]=b E[D2]\mathbb{E}\left[G D^{2}\right]=b\,\mathbb{E}\left[D^{2}\right]
  4. 还原记号把 D 换成 ∇_θ log π,就得到最优基线的显式表达式。
    b∗(s)=E[Gt:∞(∇θlog⁡πθ(a∣s))2]E[(∇θlog⁡πθ(a∣s))2]b^{*}(s)=\frac{\mathbb{E}\left[G_{t:\infty}\left(\nabla_\theta\log\pi_\theta(a\mid s)\right)^{2}\right]}{\mathbb{E}\left[\left(\nabla_\theta\log\pi_\theta(a\mid s)\right)^{2}\right]}

优势函数

如果策略是 softmax 输出的,梯度平方的权重差异并不悬殊,那么最优基线粗略地退化为“按动作概率平均的回报”,即状态价值函数 V(s)。把这一选择写成经典形式,就是优势函数:

优势函数回答一个更本质的问题:在状态 s 下选动作 a,比“随便按当前策略选”平均多拿多少回报?V(s) 在这里充当天然基线——它不依赖动作,只描述状态本身的基准水位。减掉它,梯度方向完全由“超额回报”驱动,方差显著降低。

优势函数把“基线”从理论变成了可操作的方案。剩下最后一个工程问题:Q、V 都不知道,怎么在训练中拿到优势?这正是 Actor-Critic 架构登场的时刻。

Aπ(s,a)=Qπ(s,a)−Vπ(s)A^{\pi}(s,a)=Q^{\pi}(s,a)-V^{\pi}(s)
公式含义:优势 = 动作价值 − 状态价值。它剥离了“状态固有难度”,只保留“这个动作带来的额外收益”。
  1. 动作价值Q^π(s,a) 表示从 (s,a) 出发,之后一直按策略 π 行动得到的期望回报。
    Qπ(s,a)=E[Gt∣st=s,at=a]Q^{\pi}(s,a)=\mathbb{E}\left[G_t\mid s_t=s,a_t=a\right]
  2. 状态价值V^π(s) 表示从状态 s 出发,按策略 π 行动的期望回报,与具体动作无关。
    Vπ(s)=Ea∼π[Qπ(s,a)]V^{\pi}(s)=\mathbb{E}_{a\sim\pi}\left[Q^{\pi}(s,a)\right]
  3. 优势差两者相减,得到“这个动作比平均好多少”,正值鼓励、负值抑制。
    Aπ(s,a)=Qπ(s,a)−Vπ(s)A^{\pi}(s,a)=Q^{\pi}(s,a)-V^{\pi}(s)
  4. 基线性质V(s) 不含动作变量,代入无偏性恒等式自动成立,因此优势是合法的梯度加权量。
    Ea[∇θlog⁡πθ(a∣s) V(s)]=0\mathbb{E}_{a}\left[\nabla_\theta\log\pi_\theta(a\mid s)\,V(s)\right]=0

Actor-Critic应用

测绘队不可能每次都重新测量海平面,于是队长派出一名“基准员”常驻在山脚,实时记录动态海平面。Actor-Critic 里的 Critic 就是这名基准员:它用神经网络 V_φ(s) 持续估计状态价值,为 Actor 提供实时基线。

实际操作中,Critic 给出的估计并不完美,因此优势往往用一步时间差分来近似:

Actor 使用这个 Â_t 作为加权系数更新策略。Critic 的价值估计越准,基线越接近最优,方差越低;但 Critic 本身的估计误差也会引入偏差,于是形成“偏差—方差折中”。

从测绘故事回到算法:基线不是锦上添花,而是策略梯度稳定的基石。选择方差适中、偏差可控的 Critic,就像派一个合格的基准员驻守——既要知道海平面在哪,也要懂得潮汐的脾气。

A^t=rt+γVϕ(st+1)−Vϕ(st)\hat{A}_{t}=r_t+\gamma V_{\phi}(s_{t+1})-V_{\phi}(s_t)
公式含义:单步优势 ≈ 即时奖励 + 下一状态价值估计 − 当前状态价值估计。它把基线从静态海平面升级为动态潮汐图。
  1. TD 目标r_t + γV_φ(s_{t+1}) 是用一步实际奖励和未来价值估计相加得到的回报近似。
    rt+γVϕ(st+1)r_t+\gamma V_{\phi}(s_{t+1})
  2. TD 误差用该目标减去当前状态价值估计,得到“现实比预期好多少”的偏差。
    δt=rt+γVϕ(st+1)−Vϕ(st)\delta_t=r_t+\gamma V_{\phi}(s_{t+1})-V_{\phi}(s_t)
  3. 偏差来源V_φ 是近似值,网络误差会传导给 Â_t,带来偏差;但更短的回报路径显著压缩了方差。
    Bias∝∣Vϕ(s)−Vπ(s)∣\mathrm{Bias}\propto\left|V_{\phi}(s)-V^{\pi}(s)\right|
  4. Actor 更新Critic 输出 Â_t 后,Actor 用它替代原始 G_t 去更新策略参数。
    θ←θ+α ∇θlog⁡πθ(at∣st) A^t\theta\leftarrow\theta+\alpha\,\nabla_\theta\log\pi_\theta(a_t\mid s_t)\,\hat{A}_{t}

AI 应用场景

自动驾驶策略训练

阶段:策略梯度训练与调优

解决的问题:强化学习训练自动驾驶策略时,单条轨迹的回报受路况随机性影响极大,梯度估计如坐过山车,训练难以收敛。引入状态价值基线后,梯度的注意力集中在“某个动作比平均好多少”上,方差大幅下降,训练更稳。

具体案例:某自动驾驶公司用 PPO 训练换道策略,回报中经常混入“红灯等待时长”这类与换道无关的噪声。引入 Critic 网络估计状态价值后,优势函数把红灯噪声从梯度里剥离,训练曲线收敛速度提升约 40%,且策略震荡明显减少。

游戏 AI 的奖励塑形

阶段:奖励设计与方差控制

解决的问题:游戏 AI 的奖励稀疏且延迟长,直接使用累积回报会让梯度噪声爆炸。用价值网络作为基线,相当于给 AI 一张“实时海平面图”,让它在每个状态都知道自己当前处于什么水位,从而专注学习关键动作。

具体案例:某游戏公司训练 MOBA 游戏 AI,英雄回城、补兵等操作的回报差异巨大。通过在 PPO 训练中使用 GAE 做多步优势估计,克服了单步基线的偏差,最终 AI 的团战决策能力显著提升。

机器人操控中的 Actor-Critic 优化

阶段:Actor-Critic 架构设计

解决的问题:真实机器人的每个动作都叠加电机噪声,回报方差极大。Critic 学习的价值函数可看作机器人状态的水位基准,减去后机械臂只需关注“相对改进量”,从而在有限样本内学出更平滑的策略。

具体案例:某实验室用 SAC 训练机械臂抓取,Critic 对状态-动作值的估计偏差导致早期训练 crash。引入双 Critic 取小值后,基线的偏差被压低,训练稳定性显著改善,抓取成功率从 62% 提升至 89%。

Python 演示

python33 行
import numpy as np  def simulate_baseline(seed=42, n=2000, b=5.0):    rng = np.random.default_rng(seed)     # 模拟策略梯度分量:均值为 0 的随机符号,代表 E[∇logπ]=0    grad_part = rng.choice([-1.0, 1.0], size=n)     # 模拟带噪声的累积回报 G,真实均值恰好等于基线 b    rewards = b + rng.normal(0.0, 3.0, size=n)     # 不带基线:直接用 G 乘上策略梯度分量    g_original = rewards * grad_part     # 带基线:用 G - b 乘上策略梯度分量    g_baseline = (rewards - b) * grad_part     return g_original, g_baseline  def main():    g_original, g_baseline = simulate_baseline(seed=42, n=20000, b=5.0)     print("期望(原始梯度):   %.4f" % g_original.mean())    print("期望(加基线梯度): %.4f" % g_baseline.mean())    print("方差(原始梯度):   %.4f" % g_original.var())    print("方差(加基线梯度): %.4f" % g_baseline.var())    print("期望差:           %.4f" % abs(g_original.mean() - g_baseline.mean()))  if __name__ == "__main__":    main()
目的:用蒙特卡洛采样对比加入基线前后的策略梯度估计,验证“期望几乎不变,方差显著下降”的数学结论。
  1. grad_part = rng.choice([-1.0, 1.0], size=n)模拟 ∇logπ 的采样值,其均值为 0,这是基线项期望为零的前提。
  2. rewards = b + rng.normal(0.0, 3.0, size=n)模拟真实回报,它在均值 5 附近波动,相当于“绝对海拔”。
  3. g_original = rewards * grad_part使用原始累积回报乘梯度,方差受回报噪声主导。
  4. g_baseline = (rewards - b) * grad_part先减去基线再乘梯度,共同分量被剥离。
  5. g_original.mean()` 与 `g_baseline.mean()两侧期望都收敛到 0,验证无偏性。
  6. g_baseline.var()方差远小于 g_original.var(),验证降方差效果。

常见误区

误区总觉得基线只有设成期望回报才能降方差,否则就会让估计偏离真实梯度。每次调参都只敢把基线设成奖励均值。

正解只要基线不依赖动作,任何取值都不会改变梯度的期望,方差变化却各不相同。平均回报只是众多合法基线之一,最优基线是“梯度平方加权的回报期望”,而不是简单平均。

为何常见:因为“减去均值”是统计学里最常见的降相关手段,初学者容易把强化学习中的基线与数据中心化混为一谈。

误区以为基线加得越多方差越小,拼命给策略梯度塞各种加权项,结果训练反而更不稳定。

正解从方差分解式可见,当 b 超出 0 到 2Cov(GD,D)/Var[D] 区间时,二次项会压过修正项,方差反而增大。不合适的基线像选错海平面高度,读数可能抖得更厉害。

为何常见:只看到“减海平面”的成功案例,忽略了方差公式中的二次项风险,缺少对协方差符号的分析。

误区觉得 Actor-Critic 中只要加了 Critic 网络,方差就自动最小化,再用 GAE 只是锦上添花。

正解Critic 估的是 V_φ(s),是价值函数的近似,离“梯度平方加权”的最优基线还有距离。它的价值在于偏差-方差折中:降低方差的同时引入少量可接受偏差,而非数学上最优。

为何常见:网络能力被神化,忽略了最优基线需要二阶梯度矩的事实;同时也混淆了“近似最优”与“精确最优”。

误区为了让基线更“智能”,有人尝试让基线也输入动作,认为能更精细地降低方差。

正解一旦基线依赖动作,E[∇logπ·b(s,a)] = 0 的恒等式被破坏,梯度期望被污染,产生不可控偏差。这比方差问题更致命,因为算法会收敛到错误方向。

为何常见:直觉上觉得“信息越多越准确”,却没有意识到无偏性对“动作无关”的硬性要求,属于数学前提不牢。

误区把优势函数看作一种进阶技巧,基线看作另一种工具,讨论时分开列举。

正解优势函数的定义就是 Q − V,其中 V 正是那个不依赖动作的基线。用优势更新策略,本质就是“选了一个比较好的基线 V(s) 后的策略梯度”,两者在数学上是一回事。

为何常见:不同教材的篇幅侧重不同,许多读者在两个名词之间缺少一座桥,没有注意到 V(s) 的位置就是基线位置。

面试题

Q1. 下列哪个量不能作为策略梯度的合法基线?

单选题 · easy

  • A.常数值 0
  • B.状态函数 b(s)
  • C.动作函数 b(s,a)← 正确答案
  • D.全局常数 C

答案:C。基线必须与动作无关,才能保证 E[∇logπ·b] = 0。动作函数 b(s,a) 会污染梯度期望,属于非法基线。常值 0、状态函数、全局常数都不依赖动作,合法。

Q2. 在策略梯度中加入合法基线后,梯度的期望会怎样变化?

单选题 · easy

  • A.一定显著增大
  • B.保持不变← 正确答案
  • C.一定明显减小
  • D.无法确定

答案:B。无偏性证明的核心结论是基线项期望为零,因此加入合法基线后策略梯度的期望完全不变。这正是“减海平面不影响山峰排序”的数学版本。

Q3. 对离散动作求和时,Σ_a π_θ(a|s) · ∇_θ log π_θ(a|s) · b(s) 的结果是?

单选题 · mid

  • A.b(s) 的非零倍数
  • B.策略梯度的平方
  • C.恒等于零← 正确答案
  • D.无穷大

答案:C。π·∇logπ = ∇π,求和后得到 ∇_θ Σπ = ∇_θ 1 = 0,再乘上与动作无关的 b(s) 仍为零。这是基线无偏性的核心恒等式。

Q4. 最优基线的数学形式是?

单选题 · mid

  • A.回报的简单算术平均
  • B.梯度平方加权回报期望← 正确答案
  • C.状态价值的 TD 估计
  • D.折扣回报的最大值

答案:B。最优基线为 E[G(∇logπ)²] / E[(∇logπ)²],以梯度平方为权重,并非算术平均。状态价值的 TD 估计只是实践中的近似替代,不是精确最优解。

Q5. 优势函数的定义是?

单选题 · mid

  • A.Q(s,a) + V(s)
  • B.Q(s,a) − V(s)← 正确答案
  • C.V(s) − Q(s,a)
  • D.Q(s,a) × V(s)

答案:B。优势 A(s,a) = Q(s,a) - V(s),表示“在当前状态选这个动作比平均好多少”。V(s) 不依赖动作,正好充当合法基线。

Q6. 为什么状态价值 V(s) 常被用作基线?

单选题 · hard

  • A.因为它可以包含动作信息
  • B.因为它不依赖动作且接近平均回报← 正确答案
  • C.因为它能保证方差为零
  • D.因为它等于最优基线的严格解

答案:B。V(s) 是状态层面期望,不包含动作变量,符合合法基线要求;同时它近似“按概率平均回报”,是资源有限时对最优基线的合理近似。但它并不保证方差为零,也不是严格最优。

Q7. 若基线错误地依赖动作,会产生什么后果?

单选题 · hard

  • A.没有实际影响
  • B.期望不变方差增大
  • C.梯度估计引入偏差← 正确答案
  • D.方差必定下降

答案:C。E[∇logπ·b(s,a)] 不再恒为零,无偏性被破坏,梯度会朝错误方向偏移。此时讨论方差已无意义,因为估计本身已经失真。

Q8. 影响策略梯度估计方差的因素有哪些?

多选题 · easy

  • A.累积回报的随机波动← 正确答案
  • B.采样的轨迹数量← 正确答案
  • C.基线是否选择得当← 正确答案
  • D.学习率的大小设置

答案:ABC。回报随机性越大方差越大;采样越多方差越小;基线选得好能显著降方差。学习率影响收敛速度与稳定性,但不直接决定采样估计的方差。

Q9. 以下哪些量可以作为合法基线?

多选题 · mid

  • A.常数 C← 正确答案
  • B.状态价值 V(s)← 正确答案
  • C.动作价值 Q(s,a)
  • D.优势函数 A(s,a)← 正确答案

答案:ABD。常数、V(s) 不依赖动作,合法;Q(s,a) 依赖动作,会破坏无偏性。优势函数 A = Q − V 虽然含动作,但作为梯度加权系数时,其内部 V(s) 基线部分保证了整体期望无偏,因此可被合法使用。

Q10. 关于最优基线的估计,下列说法正确的是?

多选题 · hard

  • A.需要计算二阶梯度矩← 正确答案
  • B.实践中常用 V(s) 近似← 正确答案
  • C.可无偏地估计完整期望
  • D.与动作是否随机无关

答案:AB。最优基线 b* 的分母包含 (∇logπ)²,属于梯度二阶矩,难以精确获取;实践中用 V(s) 等作近似。它无法仅从有限样本无偏估计完整期望,且与动作随机性密切相关。