跳到主内容
快讯直播
AI智模界
AI 词典

AdamW 优化器:把权重衰减从梯度里拿出来

一句话定义:AdamW 是 Adam 优化器的一个修正版本,它把权重衰减(weight decay)从梯度更新中"解耦"出来,单独作用在参数上,让正则化真正按设计意图生效。

它解决什么问题

Adam 的更新分两步:先算梯度的指数移动平均(一阶矩,first moment),再除以梯度平方移动平均的开方(二阶矩,second moment),相当于给每个参数配了一个"自动音量旋钮"——历史梯度大的参数,步子自动收小;历史梯度小的参数,步子自动放大。

问题出在 L2 正则化(L2 regularization)上。原始 Adam 的实现把正则项直接加进梯度:g = ∇L + λθ。听起来合理,但接下来这个 λθ 会一起进入一阶矩和二阶矩,被自适应缩放。结果是:梯度大的参数,衰减被除小;梯度小的参数,衰减被放大。你以为在做"按统一比例收缩参数",实际做的是一件很难解释的事。

打个比方:健身房给每个人配了自动调阻力的器械,练得猛的人阻力调小,练得少的人阻力调大。这时教练说"所有人每周额外做十分钟拉伸"——如果这句话被塞进器械的阻力算法里,练得猛的人拉伸会被缩水,练得少的人拉伸会被放大,拉伸强度完全不是教练要的。AdamW 的做法是:拉伸单独安排,跟阻力算法无关,人人十分钟。

公式上,AdamW 变成 θ ← θ − lr · m̂/(√v̂ + ε) − lr · λ · θ。第二项只按固定比例把参数往零拉,和梯度无关。

和相邻概念的区别

方案正则项怎么加衰减是否受自适应学习率影响
Adam + L2 正则加进梯度是,耦合在一起
AdamW单独作用于参数否,完全解耦
SGD + momentum + weight decay加进梯度SGD 没有逐参数缩放,两者近似等价

关键点:在 SGD 里,L2 正则和权重衰减基本等价;在 Adam 里它们不再等价。AdamW 就是让"权重衰减"回到它名字本来的含义。

对从业者的意义

AdamW 是当前训练 Transformer 类模型的事实默认优化器。常见配置是:较小学习率配 warmup 加余弦衰减,betas 取 (0.9, 0.95) 或 (0.9, 0.999),weight_decay 在 0.01 到 0.1 量级。具体取值以你所用框架的默认值和对应论文为准,不要照抄别人的数字。

调试时值得记住一点:weight_decay 调大不会被学习率动态"吃掉",它对所有参数一视同仁,因此在大模型训练里更可预测、更容易复现。

对普通人:你不需要懂它,但你用到的每个大模型,训练配置里几乎都有它。它也是个典型的工程教训——很多问题不是算错了,而是两个本该分开的机制被意外耦合在了一起。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。