调参炼金术:超参清单与常见坑
06-工程实践与案例
核心
约 25 分钟
#调参#超参#奖励尺度#学习率
更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),关键结论建议对照 PPO 论文默认值与 (Not) 37 Implementation Details 一文复核。
一句话定义
深度 RL 对超参异常敏感且理论指导稀薄,但敏感点高度集中:学习率(含线性衰减)、奖励尺度/归一化、优势归一化、熵系数、γ/λ、网络结构、rollout 批量——这份"高频敏感清单 + 排查顺序"能把调参从炼金术变成有章法的工程。
为什么重要
同一算法换超参可以从 SOTA 变为不收敛(PPO 论文自己承认这点);工业界经验是"算法差异常常小于实现与超参差异"。掌握清单与诊断顺序(先看哪个指标、先动哪个旋钮),能省下数周的盲目实验。
前置知识
核心概念:高频敏感超参清单(按动手优先级)
| 超参 | 典型值 | 敏感机制 | 失效症状 |
|---|---|---|---|
| 学习率 + 衰减 | 3e-4 → 0 线性 | 步长 vs 三角稳定性 | 不学(大)/过慢(小);曲线突崩(过大) |
| 奖励尺度 | 归一到 ~1 或 clip | TD 误差尺度→有效学习率 | Q 发散 / critic loss 爆炸 |
| 优势归一化 | 批内减均值除 std | 梯度尺度稳定 | 性能随奖励尺度漂移 |
| γ | 0.99(视野100步) | 有效视野=问题定义 | 短视(小)/信用模糊(大) |
| λ (GAE) | 0.95 | 偏差-方差 | 方差大(→1)/偏(→0) |
| 熵系数 | 自适应或 0.01 | 探索-坍缩 | 早收敛到次优(小)/永不收敛(大) |
| rollout 批量 | 2048 步×8 env | 梯度估计质量 | 曲线锯齿(小)/样本过期(大) |
| PPO epochs / clip | 3–10 / 0.2 | on-policy 复用边界 | KL 飙升、贴边率 >70% |
| 网络结构 | 2×64 tanh / CNN | 表达力 vs 优化难度 | 学不动(小)/不稳(大) |
原理与机制
排查顺序(诊断驱动,不是乱试):
- 先看曲线族:eval return(真话)、entropy(坍缩?)、KL(爆没爆?)、value loss、ratio 贴边率——五个诊断量基本定位病灶(kp-028 的监控清单)。
- 熵骤降 + KL 高 → 学习率过大或熵系数过小 → 降 lr / 升熵系数。
- entropy 不降、reward 不涨 → 探索不足或奖励信号坏 → 查奖励函数(尺度、正负、稀疏度)、升熵/改探索(kp-006)。
- value loss 爆炸 → 奖励尺度或 γ 出问题 → 奖励归一/clip、复查 terminated 处理(kp-028)。
- 以上都对还是不行 → 怀疑环境/任务本身(状态可观测性、可解性)——"算法没问题,是任务没救"是真实结论。
为什么奖励尺度这么重要:TD 误差 = 奖励项 + 折后价值项,其数值尺度直接决定梯度大小——等于隐式学习率。奖励乘 10 ≈ 学习率乘 10;所以"奖励归一化"(running scale)或 clip(Atari 的 ±1)是让算法跨任务通用的前提。
为什么学习率要衰减:训练后期策略接近收敛,大步长只会把策略踢出好区域(信赖域外的随机游走);线性衰减到 0 是"退火"的标准形态。与 kp-016 的信赖域思想一脉相承——后期要小步。
图示
诊断流:
eval return ✗ ─┬─ entropy 骤降 → lr↓ / 熵系数↑
├─ KL 爆 / 贴边>70% → lr↓ / epochs↓ / clip↓
├─ value loss 爆 → 奖励尺度 / γ / 终止处理
├─ 全平不动 → 探索不足 / 奖励函数坏了
└─ 都正常 → 任务可解性 / 状态设计问题
原则: 一次一变, 多种子验证 (kp-030)
实例或案例
- PPO@MuJoCo 默认组(lr 3e-4, clip 0.2, λ 0.95, 8 env × 2048 步)是 90% 任务的合理起点——先跑默认再微调,不要上来就扫参。
- 案例:奖励尺度从 0.01 改到 0.1,同一配置从"学不动"变"轻松收敛"——很多人换了三个算法,其实只差这一位数。
常见误区
- 误区一:"先上算法扫描器扫超参"。RL 单次实验贵且方差大(kp-030),盲目扫参是烧钱;诊断驱动的一两次定向修改通常更有效。
- 误区二:"单种子比较超参"。RL 方差下,单种子结论一半靠运气;任何"改进"必须至少 3–5 种子复验(kp-030)。
- 误区三:"换更先进的算法解决调参问题"。算法差异 < 实现/超参差异(多篇复现研究的共同结论);先把默认超参跑对。
与其他知识点的关系
自测题
- 为什么说"奖励尺度等价于隐式学习率"?
答:TD 误差含奖励项,其尺度直接缩放梯度幅值;奖励×10 等效梯度×10,故奖励归一/clip 是跨任务稳定的先决条件。
- 训练中熵骤降且 KL 飙升,最可能的原因与两个动作?
答:步长过大把策略推离数据分布(或熵正则过弱);降学习率/加 KL 早停,或提高熵系数。
- 超参实验的方法纪律?
答:诊断驱动、一次一变、多种子(≥3–5)复验、固定评估协议——否则结论归因于噪声。
延伸阅读
- Engstrom 等, "Implementation Matters in Deep RL: A Case Study on PPO"(超参与实现细节消融)。
- PPO 论文超参表(默认值的权威出处)。
- CleanRL 仓库(每个超参都有出处注释)。