导读:Goodfellow 第 8 章加工程实践:优化器不是越新越好,而是与病态几何和噪声结构的适配问题。
SGD 与动量
SGD 在病态曲率(峡谷形损失面)上来回震荡:大学习率沿陡向震荡、小学习率沿缓向太慢。动量 $v = \beta v + \nabla$、$\theta \leftarrow \theta - \eta v$ 用指数平均把缓向速度累积、陡向震荡抵消——有效学习率按方向自适应。
Nesterov 动量先沿动量走一步再算梯度(前瞻),收敛性更优;动量系数常取 0.9、随训练升到 0.99。
Adam:自适应二阶矩
Adam 维护梯度一阶矩(均值)与二阶矩(未中心化方差)的指数平均,按其比值缩放每维步长。对稀疏梯度与超参不敏感的场景友好——NLP 与 Transformer 的标配。
Adam 的泛化争议:在许多视觉任务上 SGD 加动量泛化更好(隐式正则化差异)。AdamW 修复权重衰减实现后差距缩小。实践:Transformer 用 AdamW,CNN 基线先试 SGD 加动量。
学习率策略
学习率调度常比优化器更重要:warmup 加余弦退火是 Transformer 标配;SGD 常用阶梯衰减。学习率查找器(lr range test)先定数量级再看策略。
常见误区
- Adam 的权重衰减用 L2 正则实现(等价性被自适应缩放破坏)。
- batch size 与学习率独立调(大 batch 应近线性放大学习率)。
吃透自检
- 能推导动量的有效学习率放大机制
- 能解释 Adam 的矩估计与偏差修正
- 能为给定任务设计学习率与优化器基线方案