跳转到内容

致命三要素

三者同时出现时,即使线性函数逼近的 TD 也可能发散(Baird 反例)。本章解释发散机制、为什么 DQN 在实践中通常没事、以及 Gradient TD、目标网络、正则化等缓解手段。

致命三要素(deadly triad)指三个成分同时出现时,TD 学习可能发散:

  1. 函数逼近:用参数化函数 Q(s,a;θ)Q(s,a;\theta) 而非表格;
  2. 自举:用当前估计(如 Q(s′,θ)Q(s',\theta))构造 TD 目标;
  3. off-policy:训练数据来自与目标策略不同的分布。

Sutton & Barten 的原话是 "deadly triad"。三者缺一即可保证收敛(线性情形):表格 + 自举 + off-policy(Q-learning)收敛;函数逼近 + 自举 + on-policy(TD 的预测版本)在温和条件下收敛;函数逼近 + 不自举 + off-policy(拟合固定目标)是监督学习。危险的组合恰好是"现代深度 RL 的默认配置"——这就是为什么这一章重要。

Baird (1995) 的反例表明问题的严重性:一个线性函数逼近的 off-policy TD,在简单的 7 状态 MDP 上,参数可以发散到无穷——不收敛到任何有限解,价值估计爆炸。发散的机制:

  • 投影 + 自举的相互作用:TD 在函数逼近下做的是"最小化 Bellman 误差的投影"(projected Bellman error),off-policy 的数据分布使这个投影算子的谱半径可以超过 1——每次更新都放大误差而非缩小。

这不是病态特例:只要数据分布与 on-policy 分布差得足够远(离线 RL 正是如此),线性 TD 都可能发散。

DQN 恰好带着三要素,却在 Atari 上稳定训练。原因是实践中的几个组件恰好压制了发散机制:

  • 目标网络:目标在一段时间内固定,自举被减慢而非消除——相当于把发散算子的谱半径压向 1 以下(经验结论);
  • 经验回放:采样分布与最新策略的分布解耦,更新更平滑;
  • 梯度裁剪、小学习率:爆炸被数值上抑制;
  • 奖励裁剪:限制了目标的量级。

"通常没事"不是"理论保证":换一个任务、放宽目标网络的更新频率、增大学习率,发散立刻回来。离线 RL 是三要素最严重的场景——数据分布与目标策略的差距最大,且没有在线纠正的机会(→ 分布偏移与保守估计:CQL、IQL)。

  • Gradient TD(TDC/GTD):不用投影 Bellman 误差,直接最小化真正的 MSPBE(mean-square projected Bellman error),保证线性情形收敛。代价是双倍参数与更慢的收敛,实践中不常用。
  • 目标网络:最实用的手段——减慢自举。更新频率是关键超参:越慢越稳、越慢越不高效。
  • 正则化:对 QQ 的输出幅度加惩罚(如 spectral normalization),抑制价值的无界增长。
  • 保守主义:对数据集外动作压低价值(CQL 的思路),在离线设定下同时解决高估与发散。
  • 双 critic:TD3/SAC 用两套独立估计取 min,压制高估的传播(→ DDPG、TD3 与 SAC)。
  • 三者缺一即可保证收敛(线性情形)
  • 目标网络相当于减慢自举
  • 离线 RL 是致命三要素最严重的场景