返回专辑
·Johan·5 分钟阅读

Q 过估计:从 Double DQN 到 twin critic

max Q 和 bootstrap 叠加系统性高估未见动作;Double DQN、TD3/SAC 的 min Q、离线 CQL 都在治同一偏误。

Q 过估计:从 Double DQN 到 twin critic

1. Q 持续升,eval return 平或降

Dashboard 上 Q mean 曲线单调上升,eval return 横在 500 不动——典型 positive feedback collapse。Q-learning target 用 ;函数近似 + 噪声下,max 偏向高估 in-sample 未见动作的 Q。Policy 追逐虚高 Q,真 env 表现差,Q 继续升——不是 LR 单旋钮能修的,根因是 max/bootstrap 算子结构。训练日志里 Q 和 return 背离是最早预警信号,应设 alert 而非等 eval 周期才发现。

Fitted Q iteration 在小 data 上 overestimate 是经典结果;deep Q 同理。

Offline setting 更致命:不能 online 纠正,过估计直接 poison policy。Conservative methods 直接 penalize high Q on OOD action——CQL 是 offline 场景下的 structural fix。Online 场景若 Q 已 collapse,freeze policy 重训 critic 是 emergency 手段;offline 场景没有 second chance,conservative 必须从第一天启用。

2. 机制:补丁链

Double DQN:online net argmax 选动作,target net evaluate——解耦选择和评估,避免 max 和 evaluate 用同一 noisy 估计。离散 action 空间上 Double DQN 是标准配置,裸 DQN 在 Atari 等任务上几乎必 overestimate。

Twin Q + min(TD3/SAC):两个 Q 网,target 用 ,直接砍 optimistic 估计——连续控制上 TD3/SAC 默认启用,DDPG 裸单 Q 是已知坑。

CQL(offline):,让 Q 在 dataset 外保守。

Reward clip 和 Q output clip 有时缓 symptom,但不替 structural fix。Value 网络 width 加倍不能替代 Double Q——overestimation 是 operator 问题,不是 capacity 不足 alone。

3. 诊断:MC return vs Q

固定一批 state,用当前 policy rollout 估 MC return,和 critic 预测的 比:

python
mc_return = rollout_episode(env, policy, s_init)
q_pred = critic(s_init, policy(s_init))

Dashboard 上 Q_pred / MC_return 比值 rolling median 持续 >1.5 时,优先 freeze policy 重训 critic,而非继续加 network width。Critic 单独 eval:fixed policy 下 Q 对 MC 的 Spearman 相关 <0.3 时先修 critic。Periodic 冻结 policy 做 fixed-dataset Q regression,看 Q 是否仍升——升则 overfit Q 本身,非 env 变难。诊断脚本应 one command 出 Q vs MC scatter,进 weekly report,而非临场手算。Overestimation 是算子问题,不是「再加一层 MLP」能根治的。

4. 取舍

方法场景代价
Double DQN离散 action单 Q 仍可能 correlated overestimate
Twin Q min连续控制 TD3/SAC2× critic 算力
CQLOffline RL需调 α,过保守则 underfit

Clipped reward 到 [-1,1] 后 Q 仍 overestimate,说明问题在 max 结构不在 scale——继续 clip 只是掩盖。Batch normalization 不能治本;根因是 max/bootstrap 结构。Ensemble Q 取 min 比 single Double Q 更稳但算力 2×——嵌入式或 latency 敏感场景要算这笔账,不能默认 twin Q 无成本。

5. 失败模式

只加一个 Q 网,无 min。Target update 太慢,online Q 过拟合单 batch。Offline 场景 overestimation 更致命。Q mean 持续升,eval return 平或降;MC return 远低于 Q 预测——典型 overestimation 签名。

6. 验收

  • Log Q(s, a_behavior) vs Monte Carlo return 同一 state 样本,scatter 无系统性上偏。
  • 开/关 Double DQN / twin Q 对比 eval return 和 Q mean 曲线。
  • SAC 看两个 Q 网差是否过大。
  • Reward clip 后 Q 仍 overestimate → 换 structural fix。
  • Fixed policy 下 Q regression,Q 是否仍单调升。

7. 案例:clip reward 后 Q 仍 overestimate

某 continuous control 项目把 reward clip 到 [-1,1] 后 Q mean 仍单调升、eval return 不动——团队继续调 LR 和 network width,无效。MC vs Q 诊断显示 Q 系统性高于 MC 约 2×。换 TD3 twin Q min 后 Q mean 稳定、eval return 开始上升。教训:clip reward 是创可贴,max/bootstrap 结构才是根因。

8. 在线 vs 离线的不同处方

Online RL 还能用新 data 逐步纠正过估计,但 positive feedback 可能很快 collapse——Double DQN / twin Q 是预防性补丁,不是等 collapse 后再加。Offline RL 无纠正机会,CQL / BCQ 等 conservative 方法是必选项,不能先训 standard Q 再「发现问题」。

Batch RL 从 logged data 训 Q 时,data 里未出现的 (s,a) 对被 max 算子尤其危险——policy 会选 data 外 action,Q 外推无 bound。Conservative Q-learning 直接在 loss 里 penalize OOD Q,比 online 的 twin Q 更激进。Offline 数据集固定后 overestimation 无纠正窗口,CQL 应从第一天启用,不能等 collapse 后再补。

9. 与 policy 更新的耦合

Policy 追逐虚高 Q 时,behavior policy 迅速偏离 data 分布,critic 在 OOD (s,a) 上继续 overestimate——恶性循环。Freeze policy 重训 critic 是 emergency 手段:固定 data 分布,让 Q 回归 MC return,再解冻 policy。Dashboard 上 Q/MC 比值 >1.5 持续 10k steps 就应触发 freeze policy 重训 critic,而非等到 eval return 崩溃。Target network soft update 速率也要查——太慢则 online Q 过拟合 batch noise,太快则 target 不稳定。Q 诊断脚本进 repo,one command 出 scatter 图,weekly report 自动跑。Overestimation 修复优先级:structural fix(Double Q / twin min / CQL)> freeze policy 重训 critic > clip reward / 加 width。Q 与 return 背离应设 training alert,而非等 eval 周期。MC vs Q scatter 应进 weekly report 自动诊断流程。Offline RL 从第一天启用 CQL 等 conservative 方法,无 second chance。Freeze policy 重训 critic 是 Q/MC 比值持续 >1.5 时的 emergency 手段。Double DQN、twin Q、CQL 是同一类偏误的不同场景处方。Clip reward 不能替代 structural fix,width 加倍也不能。Q 与 MC 背离是 overestimation 最可靠的早期信号。Training alert 应监控 Q/MC rolling median,而非只看 eval 周期。Online 场景 overestimation 可渐进 collapse,offline 则一次 poison。诊断优先于调参。

Q 过估计是 bootstrap + max 的结构性偏误。诊断用 MC vs Q,修复用 Double Q / twin min / CQL——clip reward 只是创可贴,width 加倍是误诊。

← 全部文章

johan's blog