在大屏或电脑上体验更佳——动画和操作区域更宽敞。
输入

优化器:SGD、Momentum、Adam

优化器把梯度变成参数更新,没有一种在所有曲面都胜出。本课固定 20 次更新:SGD 赢圆形无噪碗,Momentum 赢狭谷,Adam 赢高噪声场景。它们共享起点、随机种子生成的批次、步数预算和评估指标,各自使用已声明的参考超参数。

要比较的是状态解决了什么问题:SGD 只用当前梯度,Momentum 保留速度,Adam 还估计各坐标的 RMS 尺度。几何与噪声决定这些状态是帮助前进还是造成越界。

三种优化器如何工作

  • SGD:θₜ = θₜ₋₁ − αgₜ。不保存跨批次的优化器向量状态。
  • Momentum:uₜ = 0.8uₜ₋₁ − αgₜ,θₜ = θₜ₋₁ + uₜ。同向梯度积累速度,狭谷两侧反向梯度可部分抵消。
  • Adam:维护梯度均值 m 与平方梯度均值 v,偏差修正后用 m̂ / (√v̂ + ε) 更新,让每个坐标按自己的尺度调整。

参考学习率固定为 SGD 1.5 / κ、Momentum 0.45 / κ、Adam 0.2。这些值服务于本二次曲面比较,不是实际模型的通用默认。

优化器逐步演示

默认 κ = 20、批次噪声 σ = 0.08,真实损失 L(x,y) = ½(x² + 20y²),y 方向曲率是 x 的二十倍。三者都从 (4, 1) 出发,使用同样二十个固定种子的批次偏移。

  1. 首批偏移。 批次最优点偏离真实最低点。三种优化器面对同一偏移碗,但在各自位置计算梯度。
  2. 预览规则。 SGD 跟随当前梯度,Momentum 建立初速度。Adam 分两步展示 m̂ 的方向估计与 v̂ 的 RMS 分母。
  3. 提交更新 1。 三点移动。下一批到达时点暂时固定,观察保留状态:SGD 无,Momentum 有 u₁,Adam 有 m₁、v₁。
  4. 更新 2–20。 在第 5、10、20 次设检查点。等高图两轴比例相同,跨谷移动较长不是绘图拉伸造成。
  5. 比较末段均值。 用第 16–20 次的真实损失平均值,而非最后一个点。默认 SGD 0.7203,Momentum 0.0585,Adam 0.3854;Momentum 在此末段最好。
  6. 重放三组证据。 使用计算核心产生的圆形、狭谷、高噪声路径,展示路程、跨谷符号变化和 Adam 坐标 RMS,再显示结果表。

为什么胜者改变

三组实验都固定起点、对应的批次种子序列、20 次预算与评估方式。各优化器保持上面的参考学习率规则。

曲面(κ, σ)最低末五步平均损失解释
圆形无噪声(1, 0)SGD · 0.0000条件良好,直接更新已快,额外状态可能越过最低点。
狭谷(20, 0.08)Momentum · 0.0585速度保留沿谷进展,陡方向反向梯度部分抵消。
高噪声(20, 0.35)Adam · 0.3886按坐标 RMS 缩放,限制陡且嘈杂方向对更新的支配。

0.0000 是显示舍入值。结果只支持这三个曲面、预算与参数设置,不能排出通用优化器名次。

时间与空间成本

d 个参数的更新均需处理 d 维梯度,时间 O(d)。除参数与输入梯度外,普通 SGD 的额外优化器状态为 O(1),Momentum 存一条速度向量,O(d);Adam 存一阶、二阶矩,仍 O(d),常数更大。

真实训练的前向、反向常占主要计算,而大模型的优化器状态仍可能占用大量内存。

边界情况

  • σ=0。 每批最优点都是真实最低点,可直接观察没有噪声的越界与振荡。
  • κ=1。 碗是圆形,不存在特别陡的坐标需要抑制或归一化。
  • 增加 σ。 只改变用于产生梯度的批次最优点,不改变评估所用的真实损失面。
  • 末点有偶然性。 噪声下最后一点可能幸运或不幸,因此取最后五次的真实损失均值。

常见错误

  • 给优化器不同批次。 比较要明确控制初始化、批次顺序、步数与评估损失,同时说明各自调参规则。
  • 把 Momentum 当更大学习率。 关键是保留速度。按本公式每步把速度清零,就退回当前梯度的 SGD 更新。
  • 把 Adam 只看成两次平滑。 第二矩的平方根进入分母,会改变坐标尺度。
  • 把玩具胜出当生产建议。 实际还取决于调度、权重衰减、批量大小、归一化、精度和网络结构。

用轨迹定位问题

持续横跨某方向的锯齿,先检查条件数、特征尺度与学习率。浅方向进展总被陡方向反转打断时,再考虑保留速度是否有帮助。换优化器本身不能证明原因已解决。

末段损失跳动时看一段窗口,再检查批量大小、梯度裁剪与学习率调度。状态可以改变噪声的作用,不能移除噪声来源。恢复训练时应同时恢复参数与 u、m、v;相同权重但状态清零,下一步也会不同。

模型的简化

本课只有两个参数和固定种子的二次批次,便于查看每次更新并复现结果。真实网络有更多参数、非凸损失、混合精度、裁剪、权重衰减和优化器各自的调参。更新方程是真实的,场景是便于检查的小模型。