返回报告库

AI / Technology

Adam一种随机优化方法

同一全局步长面对陡峭、稀疏和噪声梯度时的困难

图 1|教学示意,不是论文原图。固定尺度的更新难以同时照顾陡峭、稀疏和嘈杂的坐标;它解释的是动机,不代表实测轨迹。

随机梯度只看一小批数据,因此方向会抖;高维模型里,不同参数的梯度还可能相差很多:有的持续很大,有的很少出现,有的正负反复。普通 SGD 用一个全局学习率缩放所有坐标,容易出现一边跨过头、另一边走不动。高阶方法又往往不适合大数据和高维参数,于是论文把问题限定为:只用一阶梯度和少量额外内存,能否同时适应噪声、稀疏性和非平稳目标? [来源:论文 §1,第 1 页]

Adam 单步:随机梯度分成方向记忆和尺度记忆,校正后合成自适应更新

图 2|教学重绘。上下两路分别表示一阶矩和第二原始矩;两路都校正零初始化偏差后才合成参数更新。图中符号只表示逐坐标运算,完整公式以上文为准。

分子保留稳定方向,分母按各坐标近期尺度缩放,ϵ\epsilon 防止数值问题。论文给出的测试任务默认值是 α=0.001\alpha=0.001β1=0.9\beta_1=0.9β2=0.999\beta_2=0.999ϵ=108\epsilon=10^{-8};这是经验起点,不是对所有任务的最优保证。[来源:论文 Algorithm 1,第 2 页]

Adam 原论文的经验覆盖与理论边界

图 3|非定量证据地图。勾号仅表示论文在对应任务族报告了有竞争力的训练收敛,不表示统一胜出;橙色区域提醒读者,形式化保证位于有界梯度等假设下的在线凸优化范围。

论文统一参数初始化,对各优化器的学习率、动量等做密集网格搜索,并报告各自最佳设置;主要观察如下。[来源:论文 §6,第 5 页]

研究附录

官方原题: Adam: A Method for Stochastic Optimization
作者: Diederik P. Kingma、Jimmy Ba · 发表: ICLR 2015 · 版本: arXiv v9(2017-01-30)
主来源: arXiv:1412.6980 · 论文 PDF

核心结论

三句话记住 Adam

  1. 它不让所有参数共用同一种步幅。 Adam 为每个参数分别追踪梯度的近期方向和近期尺度,再据此调整更新量。
  2. 它把“动量”和“按尺度归一化”放进同一个简单的一阶算法。 第一矩给出较稳定的方向,第二原始矩抑制尺度大或波动大的坐标;初期的零初始化偏差另行修正。
  3. 原论文的实验证明它在多类训练任务中很有竞争力,但没有证明它对所有深度学习问题都收敛或泛化更好。 理论保证针对带假设的在线凸优化;非凸网络部分是实验观察。

一句话说,Adam 的改变是:把同一批随机梯度变成每个参数自己的、带记忆且经过尺度校准的更新。 论文最强的证据是它在凸分类、稀疏文本特征、多层网络和卷积网络上与当时多种一阶优化器比较;最大的未决风险是理论适用范围比实际使用场景窄。[来源:论文摘要、§2、§4、§6]

问题

为什么一个学习率不够用

随机梯度只看一小批数据,因此方向会抖;高维模型里,不同参数的梯度还可能相差很多:有的持续很大,有的很少出现,有的正负反复。普通 SGD 用一个全局学习率缩放所有坐标,容易出现一边跨过头、另一边走不动。高阶方法又往往不适合大数据和高维参数,于是论文把问题限定为:只用一阶梯度和少量额外内存,能否同时适应噪声、稀疏性和非平稳目标? [来源:论文 §1,第 1 页]

论文承接了什么

Adam 有意结合两条已有思路:AdaGrad 擅长稀疏梯度,但累计平方梯度会让有效学习率持续缩小;RMSProp 用指数移动平均适应非平稳目标,但当第二矩衰减率接近 1 时,若不修正零初始化偏差,早期步幅可能异常大。Adam 同时保留近期梯度的均值与平方值,并显式加入偏差修正。[来源:论文 §1、§3、§5]

方法

两本账:方向与尺度

第 (t) 步拿到随机梯度 (g_t) 后,Adam 更新两份指数移动平均:

mt=β1mt1+(1β1)gt,vt=β2vt1+(1β2)gt2.m_t=\beta_1m_{t-1}+(1-\beta_1)g_t,\qquad v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2.

(m_t) 是梯度的一阶矩估计,可理解为“近期方向”;(v_t) 是逐元素平方梯度的第二原始矩估计,可理解为“近期尺度”。每个参数都有自己的 (m) 和 (v),额外存储量因此与参数量同阶,而不是保存完整二阶矩阵。[来源:论文 Algorithm 1、§2]

先修正起步偏差,再更新参数

两份移动平均从零开始,早期会系统性偏小,尤其当 β\beta 接近 1。论文用

m^t=mt1β1t,v^t=vt1β2t\hat m_t=\frac{m_t}{1-\beta_1^t},\qquad \hat v_t=\frac{v_t}{1-\beta_2^t}

校正后,再执行

θt=θt1αm^tv^t+ϵ.\theta_t=\theta_{t-1}-\alpha\frac{\hat m_t}{\sqrt{\hat v_t}+\epsilon}.

分子保留稳定方向,分母按各坐标近期尺度缩放,ϵ\epsilon 防止数值问题。论文给出的测试任务默认值是 α=0.001\alpha=0.001β1=0.9\beta_1=0.9β2=0.999\beta_2=0.999ϵ=108\epsilon=10^{-8};这是经验起点,不是对所有任务的最优保证。[来源:论文 Algorithm 1,第 2 页]

为什么这种组合可能有效

如果梯度整体乘上常数,分子约乘该常数、分母约乘其绝对值,两者大体抵消,所以更新对梯度的对角尺度重标定不敏感。方向不稳定时,一阶矩相对第二矩变小,有效步幅也会减小;论文把这个比值近似解释为信噪比,并视为一种自动退火。严格说,这些是更新规则的性质和直觉,不等于“任何损失地形上都更快”。[来源:论文 §2.1,第 3 页]

证据与局限

实验到底支持了什么

论文统一参数初始化,对各优化器的学习率、动量等做密集网格搜索,并报告各自最佳设置;主要观察如下。[来源:论文 §6,第 5 页]

场景设置与比较论文报告的结果
MNIST 逻辑回归784 维输入,mini-batch 128;对比 Nesterov SGD、AdaGradAdam 与带动量 SGD 收敛相近,二者快于 AdaGrad。
IMDB 稀疏文本前 10,000 个高频词的 BoW,50% dropout;对比 AdaGrad、RMSProp、Nesterov SGDAdam 与 AdaGrad 一样快,并明显快于普通动量 SGD。
MNIST 多层网络两个 1,000 单元 ReLU 隐层,mini-batch 128,含有或不含 dropout论文图 2 中 Adam 的训练代价下降优于所列比较方法。
CIFAR-10 卷积网络c64-c64-c128-1000,mini-batch 128,观察 45 个 epochAdam 与 AdaGrad 初期都快;后期 Adam 和 SGD 明显快于 AdaGrad,Adam 仅略优于动量 SGD。
VAE 偏差修正消融500 隐层、50 维潜变量;β2{0.99,0.999,0.9999}\beta_2\in\{0.99,0.999,0.9999\}log10α[5,1]\log_{10}\alpha\in[-5,-1]β2\beta_2 接近 1 且没有偏差修正时,早期训练更不稳定;Adam 在所试设置中不差于无修正版。

不能从这篇论文推出什么

  • 理论分析假定凸代价、梯度与参数间距离有界,并使用随时间衰减的 αt=α/t\alpha_t=\alpha/\sqrt tβ1,t=β1λt1\beta_{1,t}=\beta_1\lambda^{t-1};在这些条件下,平均遗憾为 O(1/T)O(1/\sqrt T)。它不直接证明固定默认超参数下的现代非凸网络必然收敛。[来源:论文 Theorem 4.1、Corollary 4.2]
  • 实验主要看训练代价与训练收敛,不是系统性的测试集泛化、墙钟时间、能耗或跨随机种子稳定性研究;图中也没有为所有方法给出置信区间。[来源:论文 §6、Figures 1–4]
  • 各方法都取密集搜索后的最佳超参数,这让比较较公平,却不能回答“默认值零调参时谁最好”。论文的实验集合也不足以证明 Adam 对所有模型和数据都优于 SGD、AdaGrad 或 RMSProp。
  • 在 CIFAR-10 CNN 实验里,作者观察到第二矩估计数个 epoch 后接近零并被 ϵ\epsilon 主导,因此它对几何结构的近似较差;此处优势更多来自第一矩降噪。这是论文自己揭示的机制边界。[来源:论文 §6.3,第 7 页]

实际意义

何时把 Adam 当作起点

如果模型参数多、梯度噪声大、不同层尺度不一,或输入特征稀疏,Adam 是合理的首个基线:实现只需当前梯度及两份同规模状态,并能逐参数调节更新。实践中先从论文默认值附近开始,同时记录训练损失、验证指标、更新幅度和不同随机种子的波动;若最终泛化或稳定性不理想,再与经过同等调参预算的 SGD/动量方法比较。这里是基于论文机制与证据的实践解读,不是作者证明的通用处方。

复现与核验清单

读实验图时,先确认比较的是训练代价而非测试准确率;复现时固定初始化与数据顺序,给各优化器相近的搜索预算,并同时报告默认值和调优后结果。进一步研究最值得问三件事:固定超参数的非凸训练是否稳定、训练更快是否带来更好泛化、额外两份参数状态在大模型上的内存代价是否值得。

术语速查: 随机梯度是小批数据给出的带噪方向;一阶矩是梯度均值;第二原始矩是平方梯度均值,并非中心化方差;偏差修正补偿移动平均从零起步造成的系统性低估;遗憾是在线学习中累计损失相对最佳固定参数的差距。

来源定位: 算法与默认值见 Algorithm 1;缩放不变性与有效步幅直觉见 §2.1;偏差修正推导见 §3;凸优化保证见 §4;与 RMSProp、AdaGrad 的关系见 §5;全部实验见 §6;AdaMax 与时间平均扩展见 §7。以上页码按 arXiv v9 PDF 的论文页标标注。

关于这篇论文的三个关键问题

Adam:一种随机优化方法 解决了什么问题?

随机梯度只看一小批数据,因此方向会抖;高维模型里,不同参数的梯度还可能相差很多:有的持续很大,有的很少出现,有的正负反复。普通 SGD 用一个全局学习率缩放所有坐标,容易出现一边跨过头、另一边走不动。高阶方法又往往不适合大数据和高维参数,于是论文把问题限定为:只用一阶梯度和少量额外内存,能否同时适应噪声、稀疏性和非平稳目标? [来源:论文 §1,第 1 页]

Adam:一种随机优化方法 的核心结论有哪些证据?

论文统一参数初始化,对各优化器的学习率、动量等做密集网格搜索,并报告各自最佳设置;主要观察如下。[来源:论文 §6,第 5 页]

阅读 Adam:一种随机优化方法 时最需要注意什么局限?

论文统一参数初始化,对各优化器的学习率、动量等做密集网格搜索,并报告各自最佳设置;主要观察如下。[来源:论文 §6,第 5 页]

今天还可免费读 2 篇新报告订阅 Pro 后无限阅读,并获得每月 10 篇新论文生成额度。升级 Pro