Skip to content
← 微积分与优化

/knowledge/notes/gradient-descent-variants

概念笔记 · 微积分与优化

梯度下降的变种

优化算法

学于
统计机器学习COMP90051
时间
2023 年第一学期
应用于
人类还是机器?
阅读 / 复习
约 6 分钟阅读2026-10-15

随机梯度下降有许多变体。它们之间的选择影响收敛速度、内存使用和泛化。这篇笔记涵盖主要优化器:SGD、Momentum、RMSprop 和 Adam,并显示何时使用每一个。

01

基本想法

所有基于梯度的优化器都沿负梯度方向更新参数。它们在如何使用过去的梯度方面有所不同。普通 SGD 每次梯度取一步。Momentum 累积梯度,平滑更新。RMSprop 根据历史梯度幅度为每个参数自适应步长。Adam 结合了两个想法:Momentum 和逐参数自适应。

实际选择取决于问题。SGD 简单,通常泛化良好。Adam 快速收敛,需要很少调优。RMSprop 介于两者之间。Momentum 在现代实践中很少单独使用。

02

数学

设 ∇L\nabla L 为损失 LL 的梯度。更新规则:

  • SGD: θ←θ−α∇L\theta \leftarrow \theta - \alpha \nabla L
  • Momentum: v←βv+∇Lv \leftarrow \beta v + \nabla L;θ←θ−αv\theta \leftarrow \theta - \alpha v
  • RMSprop: s←βs+(1−β)(∇L)2s \leftarrow \beta s + (1-\beta)(\nabla L)^2;θ←θ−α∇Ls+ϵ\theta \leftarrow \theta - \alpha \frac{\nabla L}{\sqrt{s + \epsilon}}
  • Adam:结合Momentum和RMSprop,带偏差修正。使用一阶矩(梯度均值)和二阶矩(梯度平方均值)。

超参数 α\alpha(学习率)、β\beta(动量衰减)和批量大小都影响收敛。更大的批次减少方差但需要更多内存。更高的学习率收敛更快但可能发散。

03

动手试

小工具显示合成损失曲面和四个优化器竞相到达最小值。调整学习率和批量大小,然后点击每个优化器查看其轨迹。Adam 通常收敛最快。

Optimiser paths on loss surface
Learning rate 0.100, batch size 32
2D损失曲面上的优化器比较。选择学习率和批量大小,然后点击进行竞赛。
  • 高学习率:快速收敛但发散风险。
  • 大批次:梯度更平滑,整体更慢(更新次数更少)。
  • Adam 通常在复杂曲面上获胜;SGD 可能泛化更好。

04

我在哪用到它

05

容易出错的地方

避免这些错误的关键是理解优化器背后的原理。Adam 的自适应学习率机制在大多数情况下表现良好,但在某些任务(如训练 GAN)中可能不稳定。SGD 虽然需要更多调优,但在适当的学习率计划下往往能达到更好的泛化性能。

批量大小的选择不仅影响训练速度,还影响模型的最终性能。大批量训练虽然能充分利用 GPU 并行能力,但可能导致泛化能力下降(sharp minima)。小批量虽然训练慢,但梯度噪声有助于逃离局部最优并找到更平坦的最小值(flat minima),这通常对应更好的测试性能。

06

参考资料

首次在 COMP90051(2024)中学习,2026 年扩展。