训练与优化 / 优化器 原理笔记入门 3 分钟阅读 查看源文件 ↗

Adam#

TL;DR#

本页内容7 个部分

1. 背景与问题#

Momentum保留了历史方向,但所有坐标仍共用一个学习率系数。如果两个坐标的梯度尺度相差很大,直接沿动量移动,更新也可能相差很大。

Adam 在平滑方向之外,再保存一份梯度平方的历史,用它估计各坐标的尺度,进而对方向做归一化。它要改变的是更新规则,训练损失本身没有改变。

2. 目标与定义#

记待最小化的损失为 L(θ)\mathcal L(\theta),第 tt 步 batch 梯度为 gt=∇Lt(θt−1)g_t=\nabla\mathcal L_t(\theta_{t-1})。Adam 保存一阶状态 mtm_t 与非中心二阶状态 vtv_t;下文平方、开方和除法都逐元素进行。

这里的二阶矩是梯度平方的期望。若某坐标的梯度均值为 μ\mu、方差为 σ2\sigma^2,则 E[g2]=μ2+σ2\mathbb E[g^2]=\mu^2+\sigma^2;恒定梯度 2 的方差为零,二阶矩仍为 4。

3. 方法与推导#

3.1 方向与尺度分别怎样累积#

从 m0=v0=0m_0=v_0=0 开始,取 0≤β1,β2<10\le\beta_1,\beta_2<1:

mt=β1mt−1+(1−β1)gt,vt=β2vt−1+(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.

mtm_t 平滑方向,vtv_t 平滑平方尺度。用后者的平方根作分母,得到与梯度单位一致的尺度,而不是把梯度除以方差。[1]

3.2 零初始化的偏差怎样修正#

展开一阶递推,mt=(1−β1)∑k=1tβ1t−kgkm_t=(1-\beta_1)\sum_{k=1}^t\beta_1^{t-k}g_k。历史权重和为 1−β1t1-\beta_1^t;当各步梯度具有同一均值 μ\mu 时,E[mt]=(1−β1t)μ\mathbb E[m_t]=(1-\beta_1^t)\mu。因此定义:

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}.

二阶状态使用相同推理。修正消除了恒定矩假设下的零初始化偏差,分布变化造成的历史滞后仍存在。[1]

3.3 归一化后怎样更新#

用修正后的方向除以均方根尺度,取学习率 η>0\eta>0、稳定项 ϵ>0\epsilon>0:

θt=θt−1−ηm^tv^t+ϵ.\theta_t=\theta_{t-1}-\eta\frac{\hat m_t}{\sqrt{\hat v_t}+\epsilon}.

分子、分母都来自历史。较大分母并不单独意味着最终更新较小;需要一起计算比值。恒定正梯度 2 和 20,在忽略 ϵ\epsilon 时都给出归一化方向 1。

4. 计算过程#

沿用 SGD 页的固定梯度输入 g1=2,g2=−1g_1=2,g_2=-1,取 θ0=2\theta_0=2、η=0.1\eta=0.1、β1=0.9\beta_1=0.9、β2=0.999\beta_2=0.999,本例忽略 ϵ\epsilon:

步数 mtm_t vtv_t m^t\hat m_t v^t\hat v_t 归一化方向
1 0.2 0.004 2 4 1
2 0.08 0.004996 0.08/0.19≈0.4210530.08/0.19\approx0.421053 0.004996/0.001999≈2.4992500.004996/0.001999\approx2.499250 0.266337

第一步 θ1=2−0.1=1.9\theta_1=2-0.1=1.9,第二步 θ2≈1.9−0.026634=1.873366\theta_2\approx1.9-0.026634=1.873366。当前梯度虽转负,历史方向仍为正,所以参数继续减小;更新幅度与普通 Momentum 不同。

5. 比较与边界#

SGD 用原始梯度,Momentum 平滑方向,Adam 进一步使用逐坐标尺度。代价是保存两份矩状态,仍需选择学习率与历史窗口。

缩放不变性要求整段历史同步缩放,且 ϵ\epsilon 可忽略;随机分母也使“比值期望”一般不等于“期望比值”。相应推导由统计解释维护。损失中加入 L2 会进入两份状态,与直接收缩权重的差别由 AdamW解释。

参考资料#

  1. Adam: A Method for Stochastic Optimization(2015). Algorithm 1、§3:矩估计、偏差修正与更新规则。

相关阅读路线

完成一次训练更新 ↗理解优化器 ↗