当前位置: 首页 > news >正文

【深度学习】Adam和AdamW优化器有什么区别,以及为什么Adam会被自适应学习率影响

Adam 和 AdamW 的主要区别在于 权重衰减(Weight Decay) 的实现方式,具体如下:

1. 权重衰减(Weight Decay)处理方式

  • Adam:采用 L2 正则化,通过在梯度更新时手动添加 weight_decay 项:
    g t = ∇ f ( θ t ) + λ θ t g_t = \nabla f(\theta_t) + \lambda \theta_t gt=f(θt)+λθt
    其中, λ \lambda λ 是权重衰减系数。

  • AdamW:直接在 参数更新时 执行权重衰减,而不是在梯度计算时添加 L2 正则:
    θ t + 1 = θ t − η m t v t + ϵ − η λ θ t \theta_{t+1} = \theta_t - \eta \frac{m_t}{\sqrt{v_t} + \epsilon} - \eta \lambda \theta_t θt+1=θtηvt +ϵmtηλθt

    这里权重衰减项独立于梯度计算,在更新参数时进行。

2. 影响

  • Adam 的 L2 正则化 会影响梯度估计值,导致优化器在 自适应学习率的调节 过程中对权重衰减的影响不稳定。
  • AdamW 的独立权重衰减 让权重衰减成为一个真正的正则化项,而不会干扰梯度估计,使得模型的 泛化能力更强

3. 实验对比

  • 论文 Decoupled Weight Decay Regularization(Loshchilov & Hutter, 2019)表明,在深度学习任务(如 NLP 和 CV)中,AdamW 通常比 Adam 泛化性能更好,因为它的权重衰减不会被 Adam 的自适应学习率影响。
  • AdamW 在 Transformer 模型(如 BERT、ViT)中被广泛采用,因为它有更稳定的收敛性。

4. 总结

AdamAdamW
权重衰减方式L2 正则化(影响梯度)直接在更新时进行(不影响梯度)
对梯度估计的影响可能影响梯度自适应调整不影响自适应学习率调整
泛化能力较弱,可能过拟合更强,正则化效果更好
应用场景适用于小规模任务适用于大规模深度学习任务(如 BERT、ViT)

👉 如果你要在 Transformer 或深度学习任务中使用权重衰减,建议用 AdamW!


附:为什么Adam会被自适应学习率影响

Adam 之所以会被 自适应学习率(Adaptive Learning Rate) 影响,是因为它的 L2 正则化方式(梯度中的权重衰减项)与 Adam 的自适应梯度调整机制发生了耦合,导致实际的权重衰减效果不稳定。

Adam 的 L2 正则化(Weight Decay)

Adam 采用的是 L2 正则化,即在梯度计算时加入权重衰减项:
g t = ∇ f ( θ t ) + λ θ t g_t = \nabla f(\theta_t) + \lambda \theta_t gt=f(θt)+λθt
其中:

  • ∇ f ( θ t ) \nabla f(\theta_t) f(θt) 是损失函数对参数的梯度,
  • λ θ t \lambda \theta_t λθt 是 L2 正则化项(权重衰减项),
  • g t g_t gt 是最终用于 Adam 优化的梯度。

然后,Adam 会计算 自适应学习率
m t = β 1 m t − 1 + ( 1 − β 1 ) g t m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t mt=β1mt1+(1β1)gt
v t = β 2 v t − 1 + ( 1 − β 2 ) g t 2 v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2 vt=β2vt1+(1β2)gt2
θ t + 1 = θ t − η m t v t + ϵ \theta_{t+1} = \theta_t - \eta \frac{m_t}{\sqrt{v_t} + \epsilon} θt+1=θtηvt +ϵmt
其中:

  • m t m_t mt 是一阶动量(类似于梯度的指数加权平均),
  • v t v_t vt 是二阶动量(类似于梯度平方的指数加权平均),
  • η \eta η 是学习率,
  • v t \sqrt{v_t} vt 代表梯度的自适应缩放因子。

为什么 L2 正则化会被自适应学习率影响?

由于 Adam 采用的是 自适应学习率机制,不同参数的梯度更新量会被调整:
m t v t + ϵ \frac{m_t}{\sqrt{v_t} + \epsilon} vt +ϵmt
如果某些参数的梯度较大(或较小),它们的更新量会被 缩放,从而影响 L2 正则化项的实际作用。结果是:

  1. 不同参数的权重衰减不均匀

    • L2 正则化是在梯度中加入 λ θ t \lambda \theta_t λθt,但这个梯度随后会被 Adam 的自适应更新缩放。
    • 由于 v t v_t vt 可能因梯度大小不同而变化,每个参数的权重衰减都会被 不同程度地缩放,导致正则化不均匀。
  2. 权重衰减效果变得不稳定

    • 在 SGD(随机梯度下降)中,L2 正则化始终是 固定比例 的衰减项( λ θ t \lambda \theta_t λθt)。
    • 但在 Adam 中,L2 正则化项会随着梯度的变化而变化,导致某些参数可能衰减得 太多太少,从而影响泛化能力。
  3. 学习率调整会干扰正则化效果

    • Adam 在训练早期可能会有 较大的自适应学习率,导致 L2 正则化项的实际作用被削弱。
    • 训练后期,学习率降低时,L2 正则化项的影响可能变得更大,导致训练不稳定。

AdamW 如何解决这个问题?

AdamW 采用了一种 去耦合(Decoupled)权重衰减 方式,直接在参数更新时进行权重衰减,而不是在梯度计算时添加 L2 正则化:
θ t + 1 = θ t − η m t v t + ϵ − η λ θ t \theta_{t+1} = \theta_t - \eta \frac{m_t}{\sqrt{v_t} + \epsilon} - \eta \lambda \theta_t θt+1=θtηvt +ϵmtηλθt

  • 这样,权重衰减的大小不受梯度缩放的影响,可以独立控制正则化效果,保持一致性。
  • 这避免了 Adam 中权重衰减的不均匀性,使得 AdamW 比 Adam 具有 更好的泛化能力

总结

优化器权重衰减方式是否受自适应学习率影响?正则化效果
AdamL2 正则化(梯度中加 λ θ \lambda \theta λθ会受影响(梯度被缩放)不稳定,可能导致不均匀的衰减
AdamW直接在参数更新时减去 λ θ \lambda \theta λθ不会受影响(与梯度分离)更稳定,正则化效果更好

👉 结论:Adam 的 L2 正则化被 Adam 的自适应梯度缩放影响,使得正则化不稳定,而 AdamW 通过去耦合权重衰减,解决了这个问题,因此在深度学习任务中表现更优!

写在最后

本文采用了 ChatGPT 辅助进行内容的书写和完善

相关文章:

  • 鸿蒙开发深入浅出03(封装通用LazyForEach实现懒加载)
  • MySQL 数据库基础
  • Ryu控制器:L2交换功能实现案例
  • 帆软report
  • 使用GPU训练模型
  • js数据类型检测
  • Linux 常见面试题汇总
  • Baklib一站式企业知识库搭建指南
  • Deepseek首页实现 HTML
  • 连接Sql Server时报错无法通过使用安全套接字层加密与 SQL Server 建立安全连接
  • 通俗易懂的浏览器事件循环指南(含async/await)
  • Linux提权之计划任务反弹shell提权(十一)
  • 【Viewer.js】vue3封装图片查看器
  • 【时时三省】(C语言基础)结构化程序设计方法
  • 二:前端发送POST请求,后端获取数据
  • Java并发 ThreadLocal 原理(详解)
  • c++中,什么时候应该使用mutable关键字?
  • Bash Shell控制台终端命令合集
  • C语言番外篇(3)------------>break、continue
  • 论文笔记:Autonomy-of-Experts Model
  • 超级干细胞有助改善生育治疗
  • 在差异中建共鸣,《20世纪美国文学思想研究》丛书出版
  • 汽车爆炸致俄军中将死亡嫌疑人被羁押,作案全过程披露
  • 第二十届中国电影华表奖揭晓!完整获奖名单来了
  • 滨江集团去年营收约691亿元,尚未结算的预收房款1253亿元
  • 上海市市管干部任职前公示:赵亮拟为地区区长人选