资讯

Adam 优化器是什么?深度学习中最常用的训练算法

2026-11-052 分钟阅读百科
TL;DRAdam(自适应矩估计)是 Diederik Kingma 和 Jimmy Ba 在 2014 年提出、2015 年发表于 ICLR 的一阶梯度优化算法,结合动量和自适应学习率,为每个参数自动调整步长,实现简单、效率高,是训练深度神经网络最常用的优化器。

Adam(Adaptive Moment Estimation,自适应矩估计)是训练神经网络最常用的优化算法之一,由 Diederik P. Kingma 和 Jimmy Ba 在 2014 年提出,并在 2015 年的 ICLR 会议上发表论文《Adam:一种随机优化方法》。它实现简单、计算高效、内存需求小,适合处理大规模数据和参数的优化问题,至今仍是深度学习中默认的首选优化器,包括大语言模型的训练普遍使用它的变体 AdamW。

先说梯度下降

训练神经网络,本质上是不断调整参数,让损失函数越来越小。最基本的方法是梯度下降:计算损失对每个参数的梯度,也就是“往哪个方向调能让损失下降最快”,然后让参数沿着这个方向走一小步。每一步走多远,由学习率决定。随机梯度下降(SGD)每次只用一小批数据来估计梯度,计算更快。但它有一些问题:所有参数用同一个学习率,而不同的参数可能需要不同的步长;梯度估计有噪声,更新方向容易来回摇摆;学习率很难调,太大会震荡,太小会很慢。

Adam 怎么做

Adam 结合了两种思想。第一是动量:不只看当前这一步的梯度,而是对过去的梯度做一个指数加权平均,也就是梯度的一阶矩估计。这就像一个滚下山的球,有惯性,不会因为一时的颠簸就改变方向,能让更新更平稳、更快地穿过平坦的区域。第二是自适应学习率:同时记录过去梯度平方的指数加权平均,也就是二阶矩估计,用它来为每个参数单独调整步长。梯度一直很大、变化剧烈的参数,步长自动变小;梯度一直很小的参数,步长自动变大。这个思想来自更早的 RMSProp 和 AdaGrad 算法。

此外,因为这两个平均值在训练刚开始时从零开始累积,会偏小,Adam 还加入了偏差修正,让训练初期的估计更准确。

优点和变体

Adam 对学习率等超参数不太敏感,默认参数在很多任务上都能工作得不错,大大降低了调参的难度,这也是它广受欢迎的原因。它的一个常用变体是 AdamW,由 Loshchilov 和 Hutter 提出,修正了 Adam 中权重衰减(一种防止过拟合的正则化)的实现方式,在大模型训练中被广泛使用。研究也发现,在某些图像任务上,精心调参的 SGD 加动量的最终泛化效果可能更好,近年来也出现了 Lion、Sophia、Muon 等试图超越 Adam 的新优化器,但 Adam 家族仍然是最主流的选择。