2-8** QA:能不能手写一下第n步的价值函数更新公式呀?另外,当 n越来越大时,价值函数的期望和方差是分别变大还是变小呢
1️⃣ 考察意图
这道题表面是考你能否默写 n-step TD 更新公式,但面试官真正想看的,是你对 偏差-方差权衡(Bias-Variance Tradeoff) 在强化学习中的直觉。这是 RL 面试的“分水岭”题:背公式的人只能拿基础分,能讲清为什么 n 越大方差越大、偏差越小,并联系到 TD(λ) 和实际调参经验的人,才展示出对算法本质的理解。刁钻点在于:很多人能写出公式,但解释方差变化时容易说反(以为 n 大更稳定)。答好了,能证明你不仅懂 RL 理论,还能指导工程中 n 或 λ 的选择。
2️⃣ 标准答
1. 手写 n-step 回报与更新公式
n-step 回报(n-step return)定义为从 t 时刻开始,累积 n 步的实际奖励,加上第 n 步之后的状态价值估计:
G_t^{(n)} = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots + \gamma^{n-1} R_{t+n} + \gamma^n V(s_{t+n})
对应的价值函数更新公式(n-step TD):
V(s_t) \leftarrow V(s_t) + \alpha \left[ G_t^{(n)} - V(s_t) \right]
其中 α 是学习率。注意:更新只针对状态 s_t,而后续 n-1 个状态(s_{t+1} 到 s_{t+n-1})的更新需要等到各自对应的 n 步回报计算完成。
2. 期望(偏差)随 n 的变化
- n 小(如 n=1,即 TD(0)):回报只包含 1 步实际奖励,其余用当前 V(s_{t+1}) 的估计值。由于 V 是估计值,存在偏差,导致 G_t^{(1)} 的期望偏离真实回报。偏差大。
- n 大(如 n=∞,即 Monte Carlo):回报完全由实际奖励组成,没有使用任何估计值。因此 G_t^{(∞)} 是真实回报的无偏估计。偏差小(趋于 0)。
- 结论:n 越大,偏差越小。因为更多实际奖励替代了有偏的估计值。
3. 方差随 n 的变化
- n 小:回报只累积少量随机变量(奖励 R 和状态转移),方差小。例如 TD(0) 的方差主要来自单步奖励和下一状态的 V 估计误差,相对稳定。
- n 大:回报累积了 n 步的随机奖励和随机状态转移。每一步的奖励 R 和转移都是随机变量,方差会随着 n 线性或超线性增长。Monte Carlo 方法(n=∞)的方差最大,因为要等整个 episode 结束,累积了大量随机性。
- 结论:n 越大,方差越大。这是“用更多实际数据换无偏性”的代价。
4. 工程取舍:偏差-方差权衡
这就是 RL 中经典的偏差-方差权衡:
- 小 n(TD 类):偏差大,方差小,学习快但可能收敛到次优解(有偏)。
- 大 n(MC 类):偏差小,方差大,学习慢但理论上收敛到真实值(无偏)。
实际落地时,没有绝对最优的 n。例如在 Atari 游戏中,环境随机性大(如射击游戏),用大 n 会导致方差爆炸,训练不稳定;而在 棋盘游戏中,奖励稀疏但确定性高,大 n 能更快引入真实奖励,加速收敛。
5. 实际落地的坑与解法
- 坑:固定 n 在非平稳环境中表现差。例如推荐系统用户行为变化时,大 n 的回报包含过时信息。
- 解法:使用 TD(λ),通过 λ 参数(0 ≤ λ ≤ 1)对 1 到 ∞ 步的回报做指数加权平均。λ 接近 0 偏向 TD,λ 接近 1 偏向 MC。实践中常用 λ=0.9 左右,兼顾偏差和方差。另外,n-step 的截断(如 n=5 或 n=10)在深度 RL 中很常见,例如 A3C 算法就用 n-step 回报来降低方差,同时保持一定偏差。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从三个层面回答:第一,手写公式:n-step 回报 G_t^{(n)} 是 n 步实际奖励加第 n 步后的价值估计,更新公式是 V(s_t) ← V(s_t) + α[G_t^{(n)} - V(s_t)]。第二,偏差随 n 增大而减小,因为更多实际奖励替代了有偏估计;方差随 n 增大而增大,因为累积了更多随机变量。第三,这是偏差-方差权衡,实际中常用 TD(λ) 或截断 n-step(如 n=5)来平衡。总结一句:n 小则稳但偏,n 大则准但抖。”
4️⃣ 高频追问 & 应对
追问 1:那在深度 RL 中,比如 DQN,为什么常用 n=3 或 n=5 而不是更大的 n?
深度 RL 中环境通常随机性大(如游戏帧随机、动作噪声),大 n 会导致回报方差过大,使 Q 网络训练不稳定。n=3 或 n=5 是经验值:在 Atari 上,n=3 的 DQN 比 n=1 的收敛快 2-3 倍,但 n=10 以上性能下降。另外,深度网络本身有函数近似误差,大 n 的回报会放大这种误差。实际中可以用 n-step DQN(如 Rainbow DQN 中的 n-step 组件)或 Retrace 算法来动态调整 n。
追问 2:TD(λ) 中的 λ 和 n-step 的 n 是什么关系?为什么 λ 能平滑权衡?
TD(λ) 使用资格迹(eligibility trace),对每个 n 的回报赋予权重 (1-λ)λ^(n-1),本质是做了所有 n-step 回报的指数加权平均。λ 相当于连续版本的 n:λ=0 等价于 n=1(TD),λ=1 等价于 n=∞(MC)。平滑的原因是:资格迹允许在每一步更新所有之前的状态,权重随时间衰减,避免了离散 n 的“硬切换”。实际中 λ=0.9 时,有效 n 大约在 10 左右,但方差比固定 n=10 更小,因为权重衰减降低了远步回报的影响。
追问 3:如果环境是确定性的(如迷宫),n 应该选大还是小?
确定性环境中,奖励和转移没有随机性,方差主要来自初始状态分布。此时偏差是主要问题,应选大 n(甚至 MC)来获得无偏估计。例如在迷宫导航中,用 n=∞ 的 MC 方法能直接学习到最优路径,而 TD 可能因为偏差陷入局部最优。但注意:如果 episode 很长(如 1000 步),MC 的方差会因累积奖励的波动而增大,此时可以截断到 n=100 或使用 λ=0.95 的 TD(λ)。
5️⃣ 避坑 · 常见错误答法
- ❌ 说“n 越大,方差越小,因为用了更多数据平均”。→ ✅ 正确:n 越大,累积的随机变量越多,方差增大。平均效应只在独立同分布数据中成立,但 n-step 回报中的奖励和转移是序列相关的,方差会累积。
- ❌ 只写公式不解释偏差-方差,或者把偏差和方差说反。→ ✅ 必须明确:偏差随 n 减小,方差随 n 增大,并给出直觉解释(估计值 vs 实际值)。
- ❌ 认为 n 越大一定越好,忽略实际训练稳定性。→ ✅ 要指出 n 的选择是 trade-off,并举例(如 Atari 中 n=3 比 n=10 好)。
6️⃣ 简历呼应
- 如果你有 RL 项目(如游戏 AI 或机器人控制):从实际调参切入,例如“我在 DQN 项目中尝试了 n=1,3,5,10,发现 n=3 时收敛最快,n=10 时训练震荡,验证了偏差-方差权衡。我还用 TD(λ) 替代固定 n,提升了 15% 的最终得分。”
- 如果你只做过监督学习或传统 ML:用偏差-方差权衡类比,例如“这就像监督学习中模型复杂度:简单模型(小 n)偏差大但方差小,复杂模型(大 n)偏差小但方差大。RL 中 n 就是模型复杂度的代理。”
- 如果你是校招无项目:聚焦理论推导,例如“我复现了 RandomWalk 实验,绘制了 n 与 MSE 的关系曲线,发现 n=5 时 MSE 最低,验证了偏差-方差权衡。我还推导了 TD(λ) 的 forward view 和 backward view 等价性。”
- Sutton & Barto, Reinforcement Learning: An Introduction, Chapter 7 (n-step TD) and Chapter 12 (Eligibility Traces)
- Rainbow DQN paper (Hessel et al., 2018) – n-step 组件在深度 RL 中的应用
- Retrace algorithm (Munos et al., 2016) – 自适应 n-step 回报
- RandomWalk 实验代码示例(OpenAI Spinning Up 或 Sutton 官网)
- “Bias-Variance Tradeoff in Reinforcement Learning” – Lilian Weng 博客