本页讲解 DL 最常用的自适应优化器:Momentum、Adam、AdamW。
段末注释:Adam(Adaptive Moment Estimation,自适应矩估计)对每个参数维护梯度一阶矩(动量)与二阶矩(平方梯度均值),实现逐参数自适应学习率。
1. Momentum(D3)

$$
\mathbf{v}_{t+1} = \beta \mathbf{v}_t + \nabla L(\boldsymbol{\theta}t), \quad
\boldsymbol{\theta}{t+1} = \boldsymbol{\theta}t - \eta , \mathbf{v}{t+1}
$$
$\beta \approx 0.9$:指数加权历史梯度,加速一致方向、抑制震荡。
Nesterov 动量:在 lookahead 位置算梯度,收敛常更快(Nesterov 变体)。
2. RMSProp 与 Adam(D3)

RMSProp:自适应缩放
$$
\mathbf{s}_{t+1} = \rho \mathbf{s}t + (1-\rho) (\nabla L)^2, \quad
\boldsymbol{\theta}{t+1} = \boldsymbol{\theta}t - \eta \frac{\nabla L}{\sqrt{\mathbf{s}{t+1}}+\epsilon}
$$
Adam(结合动量 + RMSProp):
$$
\mathbf{m}{t} = \beta_1 \mathbf{m}{t-1} + (1-\beta_1) \nabla L, \quad
\mathbf{v}{t} = \beta_2 \mathbf{v}{t-1} + (1-\beta_2) (\nabla L)^2
$$
偏差校正(初期 $\mathbf{m},\mathbf{v}$ 偏向 0):
$$
\hat{\mathbf{m}}_t = \frac{\mathbf{m}_t}{1-\beta_1^t}, \quad
\hat{\mathbf{v}}_t = \frac{\mathbf{v}_t}{1-\beta_2^t}
$$
$$
\boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}_t - \eta \frac{\hat{\mathbf{m}}_t}{\sqrt{\hat{\mathbf{v}}_t} + \epsilon}
$$
默认:$\beta_1=0.9$,$\beta_2=0.999$,$\epsilon=10^{-8}$。
3. AdamW(D3–D6)
AdamW 将 weight decay 与梯度更新解耦:
$$
\boldsymbol{\theta}_{t+1} = \boldsymbol{\theta}_t - \eta \left( \frac{\hat{\mathbf{m}}_t}{\sqrt{\hat{\mathbf{v}}_t} + \epsilon} + \lambda \boldsymbol{\theta}_t \right)
$$
| Adam + L2 | AdamW | |
|---|---|---|
| 权重衰减 | 常并入梯度 | 直接 shrink $\boldsymbol{\theta}$ |
| Transformer 微调 | 次优 | 推荐 |
与 Math-03/06 范数正则、Math-08 衔接。
4. 选型(D7)

| 优化器 | 适用 |
|---|---|
| SGD + Momentum | CV 经典、需精细调 lr;有时泛化更好 |
| Adam | 默认首选、稀疏梯度、快速实验 |
| AdamW | Transformer / LLM / 蛋白 LM 微调 |
| Adagrad | 稀疏特征(少用于深网) |
| LAMB | 超大 batch 预训练 |
5. 局限(D8)

| 问题 | 说明 |
|---|---|
| Adam 泛化 | 部分 CV 任务 SGD 更优 |
| 默认 lr=$10^{-3}$ 未必最优 | 需配合调度 05 |
| $\epsilon$ 过小 + FP16 | 数值问题 |
| 二阶矩 $\mathbf{v}$ 停滞 | 长期训练后期或需 SWA/重启 |
6. PyTorch 示例(D12)
1 | import torch |
7. 小结
Momentum 平滑轨迹;Adam 自适应各维步长;AdamW 为现代 LM 微调标配。下一篇:05 学习率调度。