当前位置: 首页> 财经> 产业 > AdamW和Adam优化器对比分析

AdamW和Adam优化器对比分析

时间:2025/7/12 23:21:48来源:https://blog.csdn.net/qq_60735796/article/details/142281934 浏览次数:0次

文章目录

  • 1. Adam 优化器的基本介绍
  • 2. Adam的权重衰减问题
  • 3. AdamW的提出与公式
  • 4. AdamW的优势
  • 5. AdamW在LLaMA中的应用
  • 总结

🍃作者介绍:双非本科大四网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发,目前开始人工智能领域相关知识的学习
🦅个人主页:@逐梦苍穹
📕所属专栏:人工智能
🌻gitee地址:xzl的人工智能代码仓库
✈ 您的一键三连,是我创作的最大动力🌹

Adam在之前“梯度下降优化方式”有提过:https://xzl-tech.blog.csdn.net/article/details/140760035


AdamW是一个在深度学习中广泛应用的优化器,它是经典Adam优化器的一个变体,专门为了解决Adam在权重衰减(Weight Decay)方面的问题而提出。

AdamW最早由Loshchilov and Hutter在他们的论文《Decoupled Weight Decay Regularization》中提出,它结合了Adam的自适应学习率和L2正则化的优势,解决了Adam中错误使用权重衰减的问题。

AdamW 是 LLaMA 等大型语言模型在训练中使用的标准优化器,它改进了Adam的权重衰减机制,使得模型在训练时更加稳定,特别是在处理大规模数据和复杂任务时表现得更为优越。

1. Adam 优化器的基本介绍

Adam(Adaptive Moment Estimation)是一种流行的优化算法,基于动量法(Momentum)和RMSProp的结合。它通过计算梯度的一阶矩(动量)和二阶矩(梯度平方的指数加权平均)来动态调整每个参数的学习率。

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
    其中, m t m_t mt是梯度的一阶动量, β 1 \beta_1 β1是动量衰减率,通常取值为0.9。
  • 二阶动量估计(梯度平方的移动平均):
    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
    其中, v t v_t vt是梯度平方的二阶动量, β 2 \beta_2 β2是动量平方的衰减率,通常取值为0.999。
  • 偏差校正
    m t ^ = m t 1 − β 1 t , v t ^ = v t 1 − β 2 t \hat{m_t} = \frac{m_t}{1 - \beta_1^t}, \quad \hat{v_t} = \frac{v_t}{1 - \beta_2^t} mt^=1β1tmt,vt^=1β2tvt
    Adam通过偏差校正,解决了在初期时一阶和二阶动量估计的偏差问题。
  • 参数更新
    θ t = θ t − 1 − η v t ^ + ϵ m t ^ \theta_t = \theta_{t-1} - \frac{\eta}{\sqrt{\hat{v_t}} + \epsilon} \hat{m_t} θt=θt1vt^ +ϵηmt^
    其中, η \eta η是学习率, ϵ \epsilon ϵ是为了防止除零错误的一个小常数,通常取值为 1 0 − 8 10^{-8} 108

2. Adam的权重衰减问题

Adam的一个问题是它将 L2正则化(L2 regularization) 错误地作为权重衰减的一部分。在标准的梯度下降法(如SGD)中,L2正则化的公式如下:

θ = θ − η ( ∇ L ( θ ) + λ θ ) \theta = \theta - \eta (\nabla L(\theta) + \lambda \theta) θ=θη(L(θ)+λθ)

其中, λ θ \lambda \theta λθ是权重衰减项(L2正则化项)。这种方法能够有效防止模型参数过拟合。然而在Adam中,L2正则化和Adam的动量更新机制耦合在了一起,导致了不理想的正则化效果。

3. AdamW的提出与公式

AdamW通过将权重衰减与梯度更新解耦,解决了Adam在权重衰减方面的缺陷。它将权重衰减独立处理,而不再作为Adam优化器更新的一部分。这使得模型在参数更新时可以保持更高的稳定性,并且防止过拟合。

AdamW的参数更新公式如下:

  1. 动量和二阶矩的计算(与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
  2. 参数更新
    θ t = θ t − 1 − η ( m t ^ v t ^ + ϵ + λ θ t − 1 ) \theta_t = \theta_{t-1} - \eta \left(\frac{\hat{m_t}}{\sqrt{\hat{v_t}} + \epsilon} + \lambda \theta_{t-1}\right) θt=θt1η(vt^ +ϵmt^+λθt1)
    其中:
    • m t ^ v t ^ + ϵ \frac{\hat{m_t}}{\sqrt{\hat{v_t}} + \epsilon} vt^ +ϵmt^是Adam的梯度更新部分。
    • λ θ t − 1 \lambda \theta_{t-1} λθt1是独立的权重衰减项,与梯度更新无关。

通过这种方式,AdamW能够更好地控制权重衰减,防止模型过拟合,而不影响优化器的动量和自适应学习率更新。

4. AdamW的优势

相比于传统的Adam,AdamW 具有以下优势:

  • 更准确的权重衰减:AdamW将权重衰减与梯度更新解耦,避免了Adam优化器中的错误正则化处理。这样可以有效防止模型的参数过度增长,并提高泛化能力。
  • 更好的正则化效果:由于权重衰减项是独立处理的,AdamW能够更有效地施加L2正则化,尤其在大模型(如LLaMA等)训练中表现更为稳定。
  • 提高模型的泛化能力:通过更好的权重控制,AdamW能够在不影响优化过程的前提下提升模型在测试集上的表现,减少过拟合问题。

5. AdamW在LLaMA中的应用

LLaMA 模型在训练中采用了 AdamW 优化器,其关键优势在于:

  1. 稳定的参数更新:LLaMA 模型需要训练大量的参数,AdamW 能够提供稳定且自适应的学习率调整,确保模型在每一轮更新中能够适应不同层的学习需求。
  2. 独立的权重衰减:AdamW 的权重衰减机制在防止 LLaMA 模型过拟合上发挥了重要作用。特别是在训练大规模数据集时,独立的L2正则化能够使模型的每一层参数保持平衡,减少训练过程中的不稳定性。
  3. 良好的收敛性:通过AdamW的动量和自适应调整,LLaMA模型在训练过程中能够更快地收敛,且保持更好的泛化能力。这对于需要处理大量数据和复杂语言任务的模型来说,尤为重要。

总结

AdamW 是一种结合了 Adam 自适应优化器和准确的权重衰减策略的优化算法,通过将权重衰减与梯度更新解耦,它解决了传统 Adam 中正则化不准确的问题。AdamW 在大规模模型(如 LLaMA)训练中的表现尤为优越,能够稳定参数更新、提高模型的泛化能力,并避免过拟合问题。

关键字:AdamW和Adam优化器对比分析

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: