人工智能

优化器对比:SGD、Momentum 与 Adam 的行为

导读: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 的矩估计与偏差修正
  • 能为给定任务设计学习率与优化器基线方案

← 人工智能 书目精读列表 经典研读