Adam与AdamW

Adam

adam优化器是经常使用到的模型训练时的优化器,但是在bert的训练中不起作用,具体表现是,模型的f1上不来。

AdamW

简单来说,AdamW就是Adam优化器加上L2正则,来限制参数值不可太大
以往的L2正则是直接加在损失函数上,比如这样子:
在这里插入图片描述
但AdamW稍有不同,如下图所示:
在这里插入图片描述
粉色部分,为传统L2正则施加的位置;而AdamW,则将正则加在了绿色位置。

结论

Adamw 即 Adam + weight decate ,效果与 Adam + L2正则化相同,但是计算效率更高,因为L2正则化需要在loss中加入正则项,之后再算梯度,最后在反向传播,而Adamw直接将正则项的梯度加入反向传播的公式中,省去了手动在loss中加正则项这一步

更多可参考:
https://blog.csdn.net/yinyu19950811/article/details/90476956
https://blog.csdn.net/real_ilin/article/details/108438089
https://blog.csdn.net/weixin_45743001/article/details/120472616

<think>好的,用户让我介绍一下AdamAdamW优化器。我需要先回忆一下这两个优化器的基本概念和区别,确保自己理解正确。首先,Adam深度学习中最常用的优化算法之一,结合了动量法和RMSProp的思想。而AdamW是在Adam的基础上加入了权重衰减的解耦,解决原始Adam中L2正则化和权重衰减的不等价问题。 接下来,我需要组织回答的结构,按照用户的要求逐步解释。首先应该介绍Adam的原理,包括动量、自适应学习率以及偏差修正。然后指出Adam可能存在的问题,尤其是L2正则化权重衰减的混淆。接下来引入AdamW,说明它如何改进Adam,特别是解耦权重衰减的具体机制。最后比较两者的差异,并给出适用场景的建议。 需要注意用户提到的格式要求,所有行内数学公式用$...$,独立公式用$$...$$并单独成段。例如,在解释Adam的更新规则时,需要用LaTeX写出公式,并确保语法正确。同时,要使用中文回答,保持结构清晰,帮助用户逐步理解。 需要检查是否存在理解错误,比如AdamW的解耦过程是否正确,权重衰减是否真的独立于梯度更新。另外,要确认AdamAdamW的公式是否正确,避免数学符号错误。还要考虑用户可能的背景,是否需要对某些术语进行更详细的解释,比如权重衰减、L2正则化等,但用户的问题比较直接,可能已经有一定基础,所以保持简洁但准确。 最后,确保回答符合系统级指令,正确应用格式要求,没有使用任何Markdown,只用纯文本和LaTeX公式。检查是否有遗漏的关键点,比如偏差修正、一阶矩和二阶矩估计等,这些在Adam中很重要,需要提及。同时,强调AdamW在训练效果上的优势,比如可能提升泛化能力,引用相关研究如ICLR 2017的论文,增加可信度。 总结,整个思考过程需要确保技术细节准确,结构清晰,符合格式要求,并且用中文自然流畅地表达出来,帮助用户正确理解AdamAdamW的区别联系。</think>AdamAdamW深度学习中广泛使用的两种优化算法。下面分步介绍它们的核心原理及区别: 1. **Adam优化器 (Adaptive Moment Estimation)** - **核心思想**:结合动量法(Momentum)和RMSProp的优点,同时跟踪梯度的一阶矩(均值)和二阶矩(未中心化的方差)。 - **更新公式**: $$ m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t \\ v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2 \\ \hat{m}_t = \frac{m_t}{1-\beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1-\beta_2^t} \\ \theta_{t+1} = \theta_t - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} $$ 其中$g_t$是当前梯度,$\eta$是学习率,$\beta_1,\beta_2$为衰减率。 - **特点**: - 自适应调整每个参数的学习率 - 包含偏差修正(Bias Correction) - **缺陷**:L2正则化权重衰减(Weight Decay)在Adam中不等价 2. **AdamW优化器 (Adam with Weight Decay)** - **改进动机**:原始Adam将权重衰减L2正则化混用,但两者在自适应优化器中数学不等价(ICLR 2017论文指出)。 - **核心改进**:**解耦权重衰减** - 将权重衰减项从梯度更新中分离 - 直接添加到参数更新步骤 - **更新公式**: $$ \theta_{t+1} = \theta_t - \eta \left( \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} + \lambda \theta_t \right) $$ 其中$\lambda$是权重衰减系数。 3. **关键区别** | 特性 | Adam | AdamW | |---------------------|-----------------------|-----------------------| | 权重衰减处理 | 梯度更新耦合 | 显式解耦 | | L2正则化等价性 | 不等价 | 等价 | | 泛化性能 | 相对较低 | 通常更好 | | 超参数敏感性 | 对学习率/衰减更敏感 | 更鲁棒 | 4. **使用建议** - **推荐AdamW**:尤其当模型需要权重衰减时(如训练Transformer、CNN) - **学习率设置**:AdamW通常可使用比Adam更大的学习率 - **实践注意**:主流框架(PyTorch等)已内置AdamW实现 **示例代码对比**: ```python # Adam(耦合权重衰减) optimizer = Adam(model.parameters(), lr=0.001, weight_decay=1e-4) # AdamW(解耦权重衰减) optimizer = AdamW(model.parameters(), lr=0.001, weight_decay=1e-4) ``` 实验表明,AdamW在图像分类(如ResNet)、自然语言处理(如BERT)等任务中能获得更好的泛化性能。其根本优势在于正确实现了权重衰减的物理意义——直接约束参数范数,而非通过梯度修改隐式实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值