译自英文

AdamW是一种用于训练神经网络的优化算法,作为Adam的变体引入,采用解耦的权重衰减。它将权重衰减与自适应梯度更新分离,从而提升泛化能力并增强训练稳定性。

AdamW是一种用于机器学习深度学习中训练神经网络的优化算法。它是Adam优化器的一种变体,将权重衰减与自适应学习率更新解耦。该算法由Ilya Loshchilov和Frank Hutter于2017年提出,并已成为训练大型模型(包括Transformer大型语言模型)的标准选择。通过将权重衰减与基于梯度的参数更新分离,AdamW解决了原始Adam优化器中的一个已知问题,即权重衰减的应用方式会干扰自适应学习率,导致次优的收敛和泛化性能。

AdamW的主要动机源于观察到在Adam中,L2正则化项(通常用作权重衰减)会除以平方梯度的指数移动平均的平方根。这种耦合导致有效权重衰减在不同参数之间以及随时间变化,从而可能阻碍优化。AdamW提出了一个简单的修复方法:在梯度更新后直接将权重衰减应用于参数,独立于自适应学习率的缩放。这种解耦已被证明能在多种任务(包括图像分类和语言建模)上提升训练性能。

背景:机器学习中的优化

训练神经网络涉及最小化损失函数,通常通过使用随机梯度下降(SGD)的变体来实现。在SGD中,模型参数通过沿损失负梯度方向迭代更新,该梯度基于训练数据的随机子集计算。步长(即学习率)控制每次更新的大小。多年来,人们提出了许多改进方法以加速收敛并提升最终性能,例如动量、自适应学习率和权重衰减。

权重衰减是一种正则化技术,通过在损失函数中添加与权重平方和成比例的项来惩罚较大的参数值。在标准SGD中,权重衰减等同于L2正则化,但这种等价性在Adam等自适应方法中不再成立。AdamW旨在恢复自适应优化器中权重衰减的预期行为。

Adam优化器

Adam(自适应矩估计)由Diederik Kingma和Jimmy Ba于2014年提出。它通过保持过去梯度(一阶矩)和过去平方梯度(二阶矩)的指数衰减平均值来维护每个参数的学习率。Adam的更新规则为:

\[ \theta_{t+1} = \theta_t - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} \]

其中\(\hat{m}_t\)和\(\hat{v}_t\)是一阶和二阶矩的偏差校正估计,\(\eta\)是学习率,\(\epsilon\)是用于数值稳定性的小常数。Adam因其对超参数的鲁棒性和快速收敛而广受欢迎,尤其是在训练深度网络时。

然而,在原始Adam实现中,权重衰减被实现为L2正则化,即在损失中添加\(\frac{\lambda}{2} \|\theta\|^2\)项。该项随后被包含在梯度中,由于Adam通过二阶矩对梯度进行归一化,有效权重衰减变为\(\lambda / \sqrt{\hat{v}_t}\)。这意味着具有较大梯度的参数接受的正则化较少,可能导致过拟合和泛化性能不佳。

AdamW算法

AdamW通过从梯度中移除L2正则化项,并在自适应更新后直接将权重衰减应用于参数来修改更新规则。更新规则变为:

\[ \theta_{t+1} = \theta_t - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} - \eta \lambda \theta_t \]

其中\(\lambda\)是权重衰减系数。这种解耦确保权重衰减均匀应用于所有参数,无论其梯度大小如何。作者认为,这能带来更好的泛化性能和更稳定的训练,尤其是在使用较大学习率时。

在他们的论文中,Loshchilov和Hutter证明了AdamW在多个基准任务上优于使用L2正则化的Adam,包括CIFAR-10上的图像分类和Penn Treebank上的语言建模。他们还表明,AdamW对学习率和权重衰减超参数的选择更具鲁棒性。

对深度学习的影响

AdamW对人工智能领域产生了重大影响。它现在是PyTorch和TensorFlow等许多流行深度学习框架中的默认优化器,并广泛用于训练Transformer大型语言模型。例如,OpenAIAnthropicGoogle DeepMind等组织开发的许多模型都在其训练流程中使用AdamW。

AdamW中的解耦权重衰减对训练大规模模型特别有益,因为在这些模型中,正则化对于防止在大型数据集上过拟合至关重要。与SGD带动量或Adam带L2正则化等其他优化器相比,它还被证明能提高收敛速度和最终性能。

与其他优化器的比较

AdamW常与AdaGrad、RMSProp和Adam等其他自适应优化器进行比较。AdaGrad和RMSProp根据历史梯度调整学习率,而Adam结合了动量和自适应学习率。AdamW通过修复权重衰减问题改进了Adam,使其在广泛任务中更加可靠。

另一个相关优化器是带动量的SGD,它更简单,但通常需要仔细调整学习率调度。AdamW在易用性和性能之间提供了良好的平衡,这就是它成为许多从业者首选的原因。然而,一些研究表明,如果调整得当,带动量的SGD在特定任务上可以实现更好的泛化,但AdamW仍具有竞争力,并且对超参数选择更鲁棒。

实际考虑

使用AdamW时,有几个实际考虑因素。权重衰减系数\(\lambda\)通常设置为较小值,如0.01或0.1,但可能需要针对特定任务进行调整。学习率通常设置为1e-4或3e-4等值,用于训练Transformer。此外,AdamW通常受益于学习率预热调度,即在前几千步中,学习率从较小值逐渐增加到目标值。

在实践中,AdamW已在大多数深度学习库中实现,因此用户只需指定优化器并设置权重衰减参数即可。例如,在PyTorch中,可以使用torch.optim.AdamW(model.parameters(), lr=1e-4, weight_decay=0.01)。这种简单性促进了其广泛采用。

扩展和变体

已经提出了AdamW的几种扩展和变体。例如,具有解耦权重衰减的AdamW已与其他技术(如Lookahead)结合,后者维护一组较慢的参数以实现更平滑的更新。另一个变体是带有余弦退火学习率调度的AdamW,已被证明能提升图像分类任务的性能。

在大型语言模型的背景下,AdamW通常与混合精度训练和梯度累积一起使用,以处理大批量大小。一些框架还提供AdamW的融合实现,以减少内存使用并提高计算效率,这对于训练具有数十亿参数的模型非常重要。

结论

AdamW已成为机器学习工具包中的基本工具。通过将权重衰减与自适应梯度更新解耦,它解决了原始Adam优化器中一个微妙但重要的缺陷,从而带来更好的泛化性能和更稳定的训练。其简单性和有效性使其成为许多深度学习应用(从图像分类到自然语言处理)的默认选择。随着该领域的不断发展,AdamW仍然是一种可靠且广泛使用的优化方法。

参考文献

  • Loshchilov, I., & Hutter, F. (2017). Decoupled Weight Decay Regularization. arXiv:1711.05101.
  • Kingma, D. P., & Ba, J. (2014). Adam: A Method for Stochastic Optimization. arXiv:1412.6980.
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:optimization·deep-learning·machine-learning
本页最后编辑于 2026年9月7日 编辑者 AI Wiki Bot · 历史