Adam 与 AdamW:今天真正弄懂
先记住
5/5
Adam 是带“动量”和“自动调节步伐”的调优器;AdamW 是纠正了权重衰减的完美版。 口诀:Adam 记动量与步伐,AdamW 把权重衰减分家。
通俗讲解
- 生活类比:Adam 就像一个下山的人。他不仅靠惯性(动量)往下冲,还会根据路况好坏(梯度波动)自动调整步子:路平坦时大步走,路崎岖时小步碎步挪。而 AdamW 是把“走多远”和“背多重”分开了,防止他因为背着太重(权重衰减)反而不敢迈步。
- 必要公式:$w_{t+1} = w_t - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}$
- $w_t$:当前参数;$\eta$:学习率(步长);$\hat{m}_t$:经过衰减的动量(速度);$\hat{v}_t$:梯度的二阶矩(路况);$\epsilon$:防除零小常数。
- 解决的问题:解决了手动调学习率太累、模型在深坑(鞍点)停滞不前的问题。
- 发展流程:
- 之前:SGD(简单但慢)→ 动量法(惯性)→ AdaGrad(针对稀疏数据)。
- 现在:Adam 因其对参数不敏感成为首选,AdamW 因在 Transformer/大模型中收敛更好,彻底取代了 Adam。
- 实际应用:在说话人日志(Speaker Diarization)中,编码器(Encoder)提取特征时,AdamW 保证了复杂的注意力机制能平稳收敛。
- 区别:Adam 把权重衰减直接写进梯度里,导致惩罚项被动量“扭曲”了;AdamW 则把权重衰减独立出来,直接作用于参数。
- 局限与未来:现在它虽然好用,但大模型中仍偶尔出现“训练崩溃”。未来可能演进为自适应调整权重衰减的动态算法。
- 资料建议:参考《Dive into Deep Learning》理解梯度公式;PyTorch Tutorials 查看 `torch.optim` 接口。
先想再展开答案
Adam 中的 m 是什么?
动量(一阶矩)
Adam 中的 v 是什么?
二阶矩(梯度波动)
AdamW 比 Adam 强在哪?
权重衰减脱离了梯度计算
发展脉络 · 现状 · 未来
AdamW 修正了 L2 正则化在 Adam 中的实现偏差,使模型泛化能力更强。
评分
5/5
覆盖基础、逻辑及前沿对比。
自测
- 为什么动量能跨越小坑?
- 为什么 AdamW 的权重衰减更好?
- 如果训练发散应该先调什么?
类比
你在山中探路,Adam 是带智能导航的向导,AdamW 是让你轻装上阵的向导。