AdamW:权重衰减加在哪里,结果就会不同
区分损失惩罚与参数收缩,用不相等的预条件系数检验差异。
Decoupled Weight Decay Regularization · Loshchilov & Hutter · arXiv:1711.05101
Token Lab 原创学习解读 · 来源核对 2026-10-25 · 区分论文主张与合成教学例子。
01 · 论文提出了什么
论文区分了自适应优化器中的 L2 正则化与解耦权重衰减,并在图像分类任务上评估修改。更新过程不同时,不能仅因名称相似就认为两者等价。
一手来源:论文摘要 ↗学习指南与本课目录
LEARNING CONTRACT理解 → 实现 → 研究
目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。
- 理解层:写明假设、形状/单位和一个反例。
- 实现层:复算数值例子并检查边界。
- 研究层:在匹配预算下比较一个替代方法。
02 · 核心机制
Text / 原始公式
Fixed diagonal preconditioner D: L2: θ′ = θ − αD(g + λθ) Decoupled: θ′ = (1−αλ)θ − αDg Difference in shrinkage: −αλ(D−I)θ
关键是正则项是否经过梯度缩放机制。第一式经过,第二式不经过。当 SGD 的
符号与直觉为教学解释,完整假设及实现细节请对照原论文方法。
机制图与逐步推导
| 符号 | 含义 |
|---|---|
| D | 局部比较使用的固定对角缩放 |
| λ | 正则或衰减强度;不同实现约定可能不同 |
| Πₜ(1−αλ) | 无任务梯度时累计解耦收缩 |
- 对惩罚 λ||θ||²/2 求导得到 λθ。将预条件器作用于完整梯度,也会缩放惩罚项。
- 固定 D 时,两种更新相减剩下 −αλ(D−I)θ。该式消失时才相等,不能只看两者都叫 weight decay。
且无任务梯度时,十步解耦更新保留初始权重的 0.99¹⁰≈0.904382。不同步长调度改变该乘积。
先用双坐标例子,再用神经模型。检查优化器源码中衰减位置及排除的参数组。
改变一个变量,解释结果为什么变。
原创教学计算,并非论文 benchmark 复现。条形在面板内相对缩放,具体数值与单位以标注为准。
04 · 手算一个例子
原创算例:
05 · 设计实验
先用单元测试验证
写出一个假设,保存配置与原始结果,提出替代解释,只报告证据支持的结论。关联实验是本地起点,不是完整论文复现。
打开关联课程/实验 →06 · 局限与审稿式追问
分析提醒:“解耦”描述更新机制,不意味着学习率与衰减在实验中永不相互影响。累计收缩依赖调度和步数。库中名为 weight_decay 的选项,需要对照真实优化器实现检查。
为什么不同训练长度下相同衰减系数可能不公平?
任务梯度为零时,重复解耦更新会使 θ 乘以 ∏ₜ(1−αₜλ)。即使 λ 相同,不同步数或学习率调度也会改变总收缩。
07 · 阅读原文
先读 L2 与权重衰减的比较及优化器算法,再看调参实验。
年份采用首次 arXiv 投稿年份。未锁定版本的链接随修订变化,复现报告请记录准确版本。此处 DeepSeek-R1 明确固定为 v1。
继续学习本主题
Adam:理解更新过程,而不只会使用默认参数
两个移动平均如何改变训练问题的几何形状?从第一次更新入手,观察偏差校正的作用。
Kingma & Ba · arXiv:1412.6980