Transformer 训练中的优化器选择:从 SGD 到 AdamW 的演化逻辑

以下内容由AI辅助生成

围绕“梯度如何被正确使用”的完整演化路径


一、优化器的本质问题:梯度告诉我们方向,但不告诉我们步长

训练神经网络本质是求解优化问题:

反向传播提供梯度 ,它指明了损失下降最快的方向。

但梯度本身无法回答三个关键问题:

  1. 该走多快? —— 学习率的选择
  2. 不同参数该以不同速度更新吗? —— 自适应性需求
  3. 如何在噪声和非平稳环境中保持稳定? —— 鲁棒性需求

优化器的演化史,正是围绕这三个问题展开的。


二、SGD:最简单的假设,最脆弱的前提

2.1 SGD 的更新规则

它隐含一个强假设:所有参数的几何性质相似,可使用统一学习率。

2.2 SGD 的结构性缺陷

在高维非凸优化中(深度网络的常态):

  • 不同方向梯度尺度差异巨大:某些方向陡峭,某些方向平缓
  • 统一步长导致震荡:在陡峭方向步长过大,在平缓方向步长过小

直觉图示(损失函数等高线):

1
2
3
4
5
6
  陡峭方向

x ← 震荡
↘ ↗
↘ ↗ ← SGD 在峡谷中左右震荡
→ 平缓方向(目标方向)

核心问题:步长对所有方向一视同仁。


三、Momentum:用惯性平滑震荡

3.1 引入历史信息

物理类比:像一个滚动的球,在主方向上加速,在震荡方向上相互抵消。

3.2 改进与局限

改进:平滑了更新方向,加速了沿一致方向的收敛
局限:仍使用统一学习率,无法解决参数间尺度差异问题

Momentum 提升了方向的稳定性,但没有解决步长的合理性


四、Adam:参数级自适应学习率

4.1 核心创新:每个参数有独立的有效学习率

Adam 维护两类统计量:

一阶矩(梯度的指数移动平均):

二阶矩(梯度平方的指数移动平均):

4.2 自适应更新规则

(其中 为偏置修正后的估计)

关键机制

  • 梯度持续较大的参数 → 分母大 → 有效步长自动变小
  • 梯度稀疏或较小的参数 → 分母小 → 有效步长相对变大

这是一种对角近似的二阶优化,为每个参数提供独立的“油门”。

4.3 为什么 Transformer 特别需要 Adam?

Transformer 的参数结构高度异质:

参数类型 梯度特征
Embedding 稀疏更新(仅被激活的token对应梯度非零)
Q/K/V 投影矩阵 受注意力权重影响,分布多变
FFN 权重 相对稳定但尺度不同
LayerNorm 参数 小规模但关键,需要不同更新速度

两个核心挑战

  1. 梯度尺度异质性:不同模块的梯度幅度可能相差数个量级
  2. 训练过程非平稳性:注意力模式在训练中持续演化,梯度分布随之变化

SGD 的统一学习率在这种场景下极其脆弱,而 Adam 的自适应机制能够动态调整每个参数的学习速度


五、AdamW:修正 Adam 的正则化语义

5.1 Adam + L2 正则的隐患

传统 L2 正则将惩罚项加入损失函数:

在 Adam 中,正则化项的梯度 会被二阶矩统计 缩放,导致:

  • 不同参数的实际正则化强度不一致
  • 偏离 weight decay 作为“参数收缩”的原始语义

5.2 AdamW 的解耦策略

关键改变:将 weight decay 从梯度计算中分离,直接作用于参数。

效果

  • 所有参数受到一致的衰减比例
  • 泛化性能更稳定
  • 更适合大规模 Transformer 模型

六、Warmup:应对训练初期的非平稳性

6.1 训练初期的特殊挑战

训练开始时:

  • 参数随机初始化,注意力模式尚未形成
  • 梯度分布极不稳定,方差巨大
  • Adam 的二阶矩估计 尚未收敛到可靠值

此时若使用完整学习率,可能导致:

  • 某些参数的更新幅度过大
  • 训练轨迹进入不良局部区域
  • 甚至数值不稳定(梯度爆炸)

6.2 Warmup 的策略

在前 步中,学习率从接近 0 线性增长到目标值

1
2
3
4
5
6
7
学习率
^
| ___________
| /
| /
|_______/________________> 训练步数
warmup 阶段

6.3 Warmup 的本质作用

不是改善统计估计本身,而是降低对不可靠统计的依赖

  • 限制初期更新幅度,给模型“热身”时间
  • 避免在梯度分布剧烈波动时做出激进更新
  • 为注意力结构的形成提供稳定的初始化路径

这是针对训练初期高度非平稳性的工程性保护机制。


七、完整的演化逻辑链

1
2
3
4
5
SGD                    问题:统一步长 → 震荡
└─ Momentum 改进:平滑方向 → 但仍统一步长
└─ Adam 突破:参数级自适应 → 但正则化有问题
└─ AdamW 修正:解耦 weight decay → 但初期不稳定
└─ Warmup 保护:渐进式启动

这不是技巧的简单堆叠,而是针对深度学习训练的结构性难题,逐层提出的解决方案


八、本质性总结

本质一:梯度方向 ≠ 合理的更新幅度

梯度只告诉我们“往哪走”,但:

  • 不同参数的敏感度不同
  • 不同训练阶段的可靠性不同
  • 需要参数级的自适应调整

本质二:Transformer 训练是高度非平稳的系统

  • 注意力模式从混乱到有序
  • 梯度分布随结构演化而变化
  • 需要动态适应梯度统计变化的机制

本质三:现代优化器更“谦虚”而非更“聪明”

  • SGD 假设世界简单:所有参数同质
  • Adam 承认世界复杂:不同参数不同尺度
  • Warmup 承认认知有限:早期统计不可靠
  • AdamW 承认需要解耦:优化与正则是不同的目标

核心结论

Transformer 的优化难点不在于“朝哪个方向走”,
而在于:

  • 谁该走多快? → Adam 的自适应机制
  • 正则化如何不干扰优化? → AdamW 的解耦
  • 什么时候可以全速前进? → Warmup 的渐进策略

这三者的组合,构成了现代 Transformer 训练的标准配置。