RL 失败模式图鉴#

训练不收敛时,从症状查起。每条给出机制、对应章的消融实验和修复。建议先看第 8 条:离线损失正常、回报塌缩。English edition

1. 回报曲线噪声大,看不出趋势#

  • 症状:原始回报剧烈波动,偶尔冲高又回落,平滑后仍在低位徘徊。

  • 机制:REINFORCE 用整回合蒙特卡洛回报直接进梯度,方差随回合长度放大,梯度方向不可靠。

  • 复现:Policy Gradient 章 Figure 1。

  • 修复:价值基线(期望不变、方差下降);进一步用 Actor-Critic / GAE。

2. 熵迅速塌到 0,回报却不涨#

  • 症状:策略熵快速下降、策略几乎确定化,但回报停滞在低位。

  • 机制:高方差信号下策略过早锁死在坏的确定性策略;没有熵正则时,没有任何力量维持探索。

  • 复现:Policy Gradient 章 Figure 3;连续控制版本见 SAC 章 Figure 1 的 \(\alpha=0\) 对照。

  • 修复:熵正则 / 最大熵框架;SAC 的自动温度调节把目标熵当约束、免手调。

3. 回报从一开始就钉死不动#

  • 症状:episode return 全程停在起步水平(如 CartPole 上 \(\approx 9\)),多个种子一致失败。

  • 机制:优势塌缩——Critic 迅速「自洽」但没学到有用价值,\(|\hat{A}_t| \to 0\),策略梯度消失,Actor 冻结。

  • 复现:Actor-Critic 章 Figure 1、Figure 3。

  • 修复:A2C 组合拳——GAE 降方差、Critic 学习率大于 Actor(双时间尺度)、熵正则、梯度裁剪、整回合批量更新。

4. 训练中途回报断崖式崩盘#

  • 症状:前期正常,某次更新后回报暴跌(LunarLander-v3 上可到 \(-8000\) 量级),之后缓慢恢复,仍低于有 clip 的版本。

  • 机制:同一批数据复用多轮、更新无约束,策略被推离数据来源策略;个别 transition 的重要性比值远超界限,错误梯度被放大累积。

  • 复现:PPO 章 Figure 1、Figure 3。

  • 修复:PPO clip 截断越界比值的梯度,或 TRPO 式信任域。注意:均值比值看不出问题,要看尾部分布。

5. 在线 Q 学习完全学不动#

  • 症状:去掉回放的 DQN 回报停在极低水平(CartPole 上 \(\sim 10\))。

  • 机制:相邻样本强相关,破坏随机梯度的独立同分布假设,更新互相抵消或偏向局部。

  • 复现:DQN 章 Figure 2。

  • 修复:经验回放——去相关,同时反复利用旧经验。

6. 训练曲线剧烈震荡、种子间方差大#

  • 症状:曲线锯齿状,不同种子结果差异悬殊。

  • 机制:自举目标随在线网络每步漂移(「追着自己的尾巴学」);或目标网络硬拷贝导致目标周期性跳变。

  • 复现:DQN 章 Figure 3;SAC 章 Figure 3(\(\tau=1.0\) 对照)。

  • 修复:目标网络 + 定期同步;更平滑的软更新(\(\tau \ll 1\))。

7. Q 值一路上涨,策略却在变差#

  • 症状:Q 估计持续攀升,实际回报下降或停滞。

  • 机制:\(\max\) 与估计噪声共同造成系统性高估,自举把高估滚雪球。

  • 复现:SAC 章 Figure 2(单 Q vs 双 Q);离线场景的极端版本见第 8 条。

  • 修复:Clipped Double Q(自举目标取 \(\min(Q_1, Q_2)\))。

8. 离线训练:损失正常,回报却塌缩#

  • 症状:离线数据上 TD 损失正常下降,但学出的贪心策略真实回报先升后跌、始终远低于行为克隆(BC)基线;Q 估计不再反映策略的真实价值。

  • 机制:外推误差——目标值里的 \(\max\) 遍历数据中从未出现的动作,对它们的高估没有依据,被自举放大;这是分布漂移在价值学习上的表现。

  • 复现:离线强化学习章 Figure 1。

  • 路径:最小演示 → 本条 → 正文 PDF。

  • 修复:CQL 把悲观写进价值函数(保守惩罚),或 IQL 把悲观写进动作集合(in-sample 学习)。采信离线方法前先和 BC 比;loss 不是成绩单。

9. 有的种子收敛,有的被困死#

  • 症状:同一算法、同一超参,多个种子结果两极分化。

  • 机制:探索不足——被早期好运锁定在次优选择,懊悔线性增长。

  • 复现:多臂老虎机章 Figure 1、Figure 2(Greedy 约三成种子被次优臂困死)。

  • 修复:不确定性驱动的探索(UCB / Thompson Sampling);用 ε 探索时要衰减,但不能衰减太快。

10. 训练回报很低,但最终策略其实不错#

  • 症状:训练期累计奖励难看,贪心评估却接近最优。

  • 机制:off-policy 学习中,行为策略(ε-greedy,训练中会「坠崖」)不等于目标策略(贪心);训练曲线反映的是行为策略的表现。

  • 复现:时序差分学习章 Figure 3(Cliff Walking:SARSA vs Q-Learning)。

  • 修复:这不一定是 bug——评估最终策略要用无探索的贪心评估;比较算法时先对齐评估协议。

11. 对步长 / n 步设置异常敏感#

  • 症状:换一个 \(n\) 或 \(\alpha\),学习速度天差地别。

  • 机制:偏差-方差权衡——\(n\) 越大越接近 MC(低偏差高方差),\(n\) 越小 bootstrapping 越多(高偏差低方差),最优点在中间且依赖问题。

  • 复现:时序差分学习章 Figure 1、Figure 2。

  • 修复:把 \(n\)(或 \(\lambda\))当一等公民超参对待;TD 可以用比 MC 更大的步长。

12. 模型式方法:错误模型会让规划放大偏差#

  • 症状:随机 FrozenLake 上,last-observation 模型会以偏概全。本实验里两种模型的覆盖都低,贪心成功率接近 0——看散点形态,不要看绝对值。

  • 机制:规划会放大模型偏差。last-observation 把随机转移记成最后一次观测,规划就把偶然当成必然。

  • 复现:模型式强化学习章 Figure 3。对照 Figure 1:确定性 CliffWalking 上模型是准的,多规划有帮助。

  • 修复:用经验计数模型估计转移分布。规划收益边际递减,预算要与模型质量匹配(见该章 Figure 2)。

13. RLHF:代理奖励一直涨,真实质量却在崩#

  • 症状:奖励模型给分持续上升;该玩具序列任务上可计算的真实分数先升后崩;策略过量堆砌代理奖励偏好的强调 token。

  • 机制:reward hacking——奖励模型只在偏好数据覆盖区内可信,网络在覆盖区外单调外推;PPO 专找代理与真实分叉的方向(Goodhart 定律)。

  • 复现:RLHF 章 Figure 2(β=0 全程崩塌)、Figure 1(外推分叉机制)。

  • 修复:KL 锚定并扫描 β(该章 Figure 3);扩大偏好数据覆盖、迭代收集;奖励白化稳定 β 量纲;监控真实指标而非只看代理奖励。

14. DPO:损失还在降,生成越来越糟#

  • 症状:DPO 损失正常下降、偏好对上的 margin 持续增大,生成质量却先升后降;β 越小崩得越快。

  • 机制:DPO 的隐式奖励 β·log(π/π_ref) 与显式奖励模型一样只在偏好数据覆盖区内可信;β 是藏在损失里的软锚,会随训练松动——不采样,token 级泛化也会把生成分布推出覆盖区。

  • 复现:DPO 章 Figure 3(β 扫描与漂移)、Figure 2(隐式奖励外推)。

  • 修复:加大 β;把训练步数当超参、用生成质量或 KL 做 early stopping;监控生成分布而非只看损失。

15. GRPO:奖励没问题,就是学不动#

  • 症状:可验证奖励(对/错)下 GRPO 准确率从训练开始就纹丝不动;奖励均值恒定,梯度范数接近零。

  • 机制:组相对优势依赖组内差异——起点策略在难题上采样成功率≈0 时,每组要么全对(简单题)要么全错(难题),组内标准差为零,优势与梯度恒为零:学习信号在冷启动处完全消失。

  • 复现:GRPO 章 Figure 3(冷启动 vs 弱教师起点,零信号组占比恒为 100%)。

  • 修复:冷启动 SFT 提供非零成功率的起点;课程设计从易到难;混合难度让组内保持方差;必要时加过程奖励加密信号。

16. 回报目标设多高都没用,策略不升反崩#

  • 症状:Decision Transformer 把目标回报(RTG)设得比训练数据最优还高,评估回报不升反降、方差剧增;任务需要超越数据最优水平时,目标怎么调都到不了。

  • 机制:RTG 本身是模型的输入维度——目标超出数据覆盖,条件分布被推到支撑集之外(与 RLHF/DPO 章「奖励只在覆盖区内可信」同理);且序列建模只回放数据中的行为,天花板由数据质量决定。

  • 复现:Decision Transformer 章 Figure 1 右(OOD 目标失效)、Figure 2(三档数据天花板)。

  • 修复:目标设在数据回报范围之内;数据接近最优时用 DT/SFT 即可,需要超越数据时用 CQL/IQL 等价值方法。

17. 离线数据明明够用,就是拼不出最优策略#

  • 症状:离线数据覆盖了最优路径需要的每一步转移(只是从未出现在同一条轨迹里),Q-learning 类方法能拼出最优,DT/BC 类序列或模仿方法到不了——看似泛化差,实则不会拼接(stitching)。

  • 机制:序列建模的上下文是单条轨迹内的历史——它检索见过的整段序列,不跨轨迹组合转移;动态规划的备份不问转移来自哪条轨迹,天然拼接。

  • 复现:Decision Transformer 章 Figure 3(格子世界:离线 Q-learning 拼出 14 步最优路径,DT 在最优目标上 60/90 回合无法到达终点)。

  • 修复:需要拼接能力的场景选价值方法(Q-learning/CQL/IQL);或在线微调补上跨轨迹的组合能力。