介绍
在论文 [1] Unknown-material 中, 作者首次介绍了 Adam 优化器. 此算法一经出现立刻爆火, 现在在深度学习当中已经成为一种最常用的优化算法.
算法Adam
Adam 的更新公式如下:
$$ \begin{aligned} 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} \\ \hat{v}_t & = \frac{v_t}{1 - \beta_2^t} \\ \theta_t & = \theta_{t-1} - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \odot \hat{m}_t \end{aligned} $$其中 $\odot$ 表示逐元素相乘. 超参数通常取 $\beta_1=0.9, \beta_2=0.999, \epsilon=10^{-8}$.
可以认为 Adam 本身直接由 SGD 而来. 在此基础上 Adam 引入了几个重要技术:
- 移动平均 (Moving Average): $m_t$ 不是通过对梯度直接求和, 而是按照 $\beta_1$ 和 $\beta_2$ 的比例进行移动平均, 保证了梯度的稳定性.
- 自适应学习率 (Adaptive Learning Rate): $v_t$ 通过对梯度的二阶矩进行估计, 使得学习率可以自适应地调整.
- 偏差修正 (Bias Correction): 由于在训练开始移动平均几乎为 0, 对其引入偏差修正可以加快初始化时刻的收敛速度.
当然还有加上衰减的 AdamW, 以及其他的变种, 以适应 Transformer 等模型的训练.
收敛 … 吗?
论文 [1] 中提到我们可以引入误差量来衡量收敛性:
定义
称 累积误差 为
$$R(T) = \sum_{t=1}^T (f_t(\theta_t) - f_t(\theta^*))$$其中 $\theta^*$ 是最优解, 即 $\theta^* = \argmin_{\theta} \sum_{t=1}^T f_t(\theta)$.
可以认为, 当 $R(T)/T \to 0$ 时算法收敛. 作者在文献中对 Adam 的收敛性给了自己证明, 里面的细节太多, 这里只给粗略过程.
鉴于偏差修正只在初期有较大影响, 之后对于收敛性的讨论, 以下证明对其不予考虑 (原论文有), 此外忽略微小项 $\epsilon$.
在原始的 Adam 中 $\beta_1, \eta$ 都是常数, 实际上此时难以证明. 因此原文中, 对参数做了随时间动态调整:
$$\eta_t = \frac{\eta}{\sqrt{t}}, \beta_{1,t}=\beta_1 \lambda^{t-1}, \lambda \in (0,1)$$注意: 以下定理的证明有争议!
定理
假设 $f_t$ 梯度有界, $\theta_t$ 之间的距离有界, 即 $\| g_t \|_{\infty} \le G, \|\theta_i-\theta_j\|_{\infty} \le D$, 且 $\beta_1^4 < \beta_2$, Adam 中超参数 $\eta, \beta_1$ 遵从如上动态调整, 则 $R(T) \le \mathcal{O}(\sqrt{T})$, 因而 Adam 收敛.
证明
首先, 可以证明:
$$ f_t(\theta_t) - f_t(\theta^*) \le g_t^T(\theta_t - \theta^*) = \sum_{i=1}^d g_{t,i}(\theta_{t,i} - \theta^*_i) $$$d$ 个分量求和并不会影响量级, 从而我们只需要关心第 $i$ 个分量, 因而下面我们不妨设 $\theta_t, g_t, m_t, v_t$ 等都是一维的. (或者可以用 $\theta_t = \theta_{t,i}$ 来表示), 那么我们只要证明:
$$ \sum_{t=1}^{T} g_t(\theta_t - \theta^*) \le \mathcal{O}(\sqrt{T}) $$既然要估计 $\theta_t - \theta^*$, 由学习率公式, 我们可以得到:
$$(\theta_{t+1} - \theta^*) = (\theta_t - \theta^*) - \eta_t \frac{m_t}{\sqrt{v_t}}$$取平方, 有:
$$(\theta_{t+1} - \theta^*)^2 = (\theta_t - \theta^*)^2 - 2\eta_t \frac{m_t}{\sqrt{v_t}}(\theta_t - \theta^*) + \eta_t^2 \frac{m_t^2}{v_t}$$要把 $m_t$ 换成 $g_t$, 由 $m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t$ 代入得到:
$$(\theta_{t+1} - \theta^*)^2 = (\theta_t - \theta^*)^2 - 2\eta_t \frac{\beta_{1,t} m_{t-1} + (1 - \beta_{1,t}) g_t}{\sqrt{v_t}}(\theta_t - \theta^*) + \eta_t^2 \frac{m_t^2}{v_t} $$把需要处理的量放在左边:
$$ (1-\beta_{1,t})g_t(\theta_t - \theta^*) = \frac{\sqrt{v_t}\left((\theta_t - \theta^*)^2-(\theta_{t+1} - \theta^*)^2\right)}{2\eta_t} - \beta_{1,t} m_{t-1}(\theta_t - \theta^*) + \frac{\eta_t m_t^2}{2\sqrt{v_t}} $$这左边可以由 $1 \ge 1-\beta_{1,t} \ge 1-\beta_{1,1}$ 直接看作 $g_t(\theta_t - \theta^*)$ 量级, 右边现在已经分成三个部分了, 只需要累和来看每个部分的量级.
一个显然的结论是, 在移动平均下, 易见 $m_t \le G (m_0 \le G), v_t \le G^2 (v_0 \le G^2)$.
第一项: 忽略常数 $2$, 暂记 $\gamma_t = \frac{\sqrt{v_t}}{\eta_t} = \mathcal{O}(\sqrt{T})$, 只要考虑:
$$ M_1=\sum_{t=1}^{T} \gamma_t \left((\theta_t - \theta^*)^2-(\theta_{t+1} - \theta^*)^2\right) $$利用 Abel 求和法则, 可以得到:
$$ M_1 =\gamma_1(\theta_1 - \theta^*)^2 - \gamma_{t+1}(\theta_{T+1} - \theta^*)^2 + \sum_{t=1}^{T} (\gamma_{t+1} - \gamma_t)(\theta_t - \theta^*)^2 $$一般来说 $\gamma_t = \mathcal{O}(\sqrt{T})$ 应该是单调不减的, 在 $\gamma_t \le \gamma_{t+1}$ 的情况下, 可以得到:
$$ \begin{aligned} M_1 &\le \gamma_1(\theta_1 - \theta^*)^2 + \sum_{t=1}^{T} (\gamma_{t+1} - \gamma_t)D^2 \\ &= C + (\gamma_{t+1} - \gamma_1)D^2 = \mathcal{O}(\sqrt{T}) \end{aligned} $$问题就出在这个 “一般来说” 上, 因为尽管引入参数衰减, 实际上 Adam 并不能保证 $\gamma_t$ 是单调不减的. 后面会提到这里的争议.
第二项: 直接放缩即可:
$$ \begin{aligned} M_2 &=\sum_{t=1}^{T} \beta_{1,t}m_{t-1}(\theta_t - \theta^*) \le \sum_{t=1}^{T} \beta_{1,t} |m_{t-1}| D \\ &\le GD \sum_{t=1}^{T} \beta_{1,t} = G D \beta_1 \frac{1-\lambda^T}{1-\lambda} = \mathcal{O}(1) \end{aligned} $$第三项: $v_t$ 未必有下界, 有点麻烦! 直接写通式:
$$ \begin{aligned} m_t &= \sum_{s=1}^t (1-\beta_{1,s})\left(\prod_{r=s+1}^{t}\beta_{1,r}\right)g_s \le \sum_{s=1}^t \beta_1^{t-s}g_s\\ v_t &= (1-\beta_2)\sum_{s=1}^t \beta_2^{t-s}g_s^2 \end{aligned} $$既然要控制 $\frac{m_t^2}{\sqrt{v_t}}$, 结合 $\beta_1^4 < \beta_2$, 那么考虑 Young 不等式:
$$ \begin{aligned} m_t^4 &\le \left(\sum_{s=1}^t \beta_2^{t-s}g_s^2 \right) \left(\sum_{s=1}^t \frac{\beta_1^{\frac{4}{3}(t-s)}}{\beta_2^{\frac{1}{3}(t-s)}}g_s^{\frac{2}{3}} \right)^{3} \\ &\le v_t^2 G^2 \left(\frac{1-\mu^t}{1-\mu}\right)^3 = v_t^2 \mathcal{O}(1) \end{aligned} $$这里 $\mu = \beta_1^{\frac{4}{3}} / \beta_2^{\frac{1}{3}} < 1$. 因此:
$$ M_3 =\sum_{t=1}^{T} \eta_t^2 \frac{m_t^2}{\sqrt{v_t}} \le C \sum_{t=1}^{T} \eta_t^2 = C \sum_{t=1}^{T} \mathcal{O}\left(\frac{1}{t}\right) = \mathcal{O}(\ln T) $$自此, 三项综合可以得到:
$$ R(T) \le \mathcal{O}(\sqrt{T}) + \mathcal{O}(1) + \mathcal{O}(\ln T) = \mathcal{O}(\sqrt{T}) $$Objection!
论文 [1] 的这个漏洞显然为人诟病. 于是论文 [2] Unknown-material 中, 作者指出 Adam 并不总是收敛的. 论文中给出了一个反例:
我们取 $\beta_1=0, \beta_2=\frac{1}{1+C^2}$. 设考虑在时间 $t$ 观测到的函数 $f_t$ 为:
$$ f_t(x) = \begin{cases} Cx & t \equiv 1 \pmod {3} \\ -x & \text{Otherwise} \\ \end{cases}, \quad x \in [-1,1] $$其中 $C>2$ 是一个常数. 从宏观尺度上, $f=\frac{1}{3}(C-2)x$, 最低点在 $x=-1$ 处. 显然 $f$ 和其他超参数满足定理条件, 然而经过 (冗长枯燥的) 计算可以得知, 由于每三次迭代中 $f$ 就会有两次向错误的方向更新, 加上移动平均导致的历史遗忘, 会导致无法正确收敛. 具体过程可以参考原文附录.
为了解决这个问题, 作者提出为了确保 $\gamma$ 是单调不减的, 可以在更新时让 $v_{t+1}$ 与 $v_t$ 取一个最大值作为更新值. 由此, 引出 Amsgrad 算法:
算法Amsgrad
Amsgrad 的更新公式如下:
$$ \begin{aligned} 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{v}_t &= \max(v_t, \hat{v}_{t-1}) \\ \theta_t & = \theta_{t-1} - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \odot m_t \end{aligned} $$此处省略了偏差修正.
论文 [2] 采取实验证明, Amsgrad 具有更好的收敛性.
辩护与和解
既然 Adam 可能不收敛, 那为什么在实际中表现良好呢? 一个直观的批驳是, 论文 [2] 中的反例取的参数相当极端: $\beta_1, \beta_2$ 都很小. 在实际中, 我们通常取 $\beta_1=0.9, \beta_2=0.999$, 这便是论文 [3] Unknown-material 的切入点. 作者认为, 只要 $\beta_1^2 < \beta_2$, 且 $\beta_2$ 充分大, 就可以保证收敛.
和 [2] 不同, 论文 [3] 更注重实际. 从训练角度上, 一般是分成若干个 Epoch, 每个 Epoch 内处理的都是相同的 $n$ 个函数. 作者对 $f$ 以及其内的 $n$ 个分函数提出了如下要求:
定义
定义集合 $\mathcal{F}$ 为满足如下条件的函数 $f: \mathbb{R}^d \mapsto \mathbb{R}$ 集合:
- $f$ 有界, 即 $$f \le f^\ast$$
- 所有 $n$ 个时间刻的 $f_t$ 是 Lipschitz 连续的, 即 $$\|f_t(x) - f_t(y)\| \le L \|x - y\|$$
- 所有 $n$ 个时间刻的 $f_t$ 满足 $$\sum_{i=0}^{n-1} \| \nabla f_i(x) \|^2 \le D_1 \| \nabla f(x) \|^2 + D_0 $$
作者称第三个要求实际上是非常容易的, 事实上确实如此.
我们记第 $k$ 个 Epoch 开始时的变量为 $x_k$, 运行到第 $0 \le i < n$ 个函数时为 $x_{k,i}$, 即 $x_k=x_{k,0}=x_{k-1,n}$. 现在, 作者称梯度的上界有保证:
定理
设 $f(x) \in \mathcal{F}$, 遵守 $\mathcal{F}$ 内定义中的记号. 设 $\beta_1^2 < \beta_2 < 1$, 且 $\beta_2 \ge \gamma(n)$, 学习率衰减 $\eta_k= \frac{\eta}{\sqrt{nk}}$, 则存在某个充分大的 $K$, 对于 $T>K$ 均有:
$$ \min_{k \in [K,T]} \mathbb{E} \left\{ \min \left[ \sqrt{\frac{2D_1d}{D_0}} \| \nabla f(x_k) \|^2, \| \nabla f(x_k) \| \right] \right\} = \mathcal{O} \left( \frac{\log T}{\sqrt{T}} + \sqrt{D_0}\right) $$证明
我们先澄清, 由 $R(T)$ 中的证明, $m_t$ 和 $v_t$ 有上界, 且 $\frac{m_t}{\sqrt{v_t}}$ 也有上界 (证明依然类似, 把 Young 特化成 Cauchy 即可, 此时条件变为 $\beta_1^2 \le \beta_2$).
从下降引理出发:
$$ \mathbb{E}f(x_{k+1}) - \mathbb{E}f(x_k) \le \mathbb{E} \left< \nabla f(x_k), x_{k+1} - x_k \right> + \frac{L}{2} \mathbb{E} \|x_{k+1} - x_k\|^2 $$做累加, 有:
$$ \mathbb{E} \sum_{k=t_0}^T \left< \nabla f(x_k), x_k - x_{k+1} \right> \le \frac{L}{2} \mathbb{E} \sum_{k=t_0}^T \|x_{k+1} - x_k\|^2 + \mathbb{E}f(x_{t_0}) - \mathbb{E}f(x_{T+1}) $$首先考虑右侧的上界, 这个相对容易, 注意到由于 $m_k$, $v_k$ 都是常量级:
$$ \begin{aligned} \mathbb{E} \|x_{k+1} - x_k\|^2 &\le \mathbb{E} \sum_{i=0}^{n-1} \|x_{k,i+1} - x_{k,i}\|^2 \le n \max_{0 \le i < n} \mathbb{E} \|x_{k,i+1} - x_{k,i}\|^2 \\ &= n\mathcal{O}\left(\frac{\eta_k^2m^2_{k,i}}{v_{k,i}}\right) = \mathcal{O}\left(\frac{1}{k}\right) \end{aligned} $$因此:
$$ \frac{L}{2} \mathbb{E} \sum_{k=t_0}^T \|x_{k+1} - x_k\|^2 \le \sum_{k=t_0}^T \mathcal{O}\left(\frac{1}{k}\right) = \mathcal{O}(\log T) $$关于左侧的下界, 按每一维展开:
$$ \begin{aligned} \mathbb{E} \left< \nabla f(x_k), x_k - x_{k+1} \right> &= \eta_k \mathbb{E} \left< \nabla f(x_k), \sum_{i=0}^{n-1} \frac{m_{k,i}}{\sqrt{v_{k,i}}} \right> \\ &= \eta_k \mathbb{E} \sum_{l=1}^d \sum_{i=0}^{n-1} \partial_l f(x_k) \frac{m_{k,i}^{(l)}}{\sqrt{v_{k,i}^{(l)}}} \end{aligned} $$以下推导长达数十页, 这里简要概括一下思路. 先考虑其中一维:
$$ \begin{aligned} \mathbb{E} \sum_{i=0}^{n-1} \nabla f(x_k) \frac{m_{k,i}}{\sqrt{v_{k,i}}} \end{aligned} $$其中 $x_k$ 实际上应该是 $x_k^{(l)}$, $\nabla f(x_k)$ 实际上应该是 $\partial_l f(x_k)$.
显然一方面, 我们提过 $\frac{m_{k,i}}{\sqrt{v_{k,i}}}$ 是有界的, 由于 Lipschitz 连续, $\nabla f(x_k)$ 也是有界的, 则这一项自然也是有界的, 此界与 $k$ 无关. 因此整个左侧为 $\mathcal{O}(\eta_k) = \mathcal{O}(1/\sqrt{k})$, 这个放缩是平凡的.
另一方面, 感性上讲, $v_{k,i} \approx C, m_{k,i} \approx \nabla f_i(x_k)$, 如果这个 $\approx$ 成立, 显然就有左边 $\ge 0$ 了, 这是我们的目标. 是时候做拆分了:
$$ \begin{aligned} \sum_{i=0}^{n-1} \nabla f(x_k) \frac{m_{k,i}}{\sqrt{v_{k,i}}} &= \sum_{i=0}^{n-1} \left( \nabla f(x_k) \frac{m_{k,i}}{\sqrt{v_{k,i}}}-\nabla f(x_k) \frac{\nabla f_i(x_k)}{\sqrt{v_{k,i}}} \right) \\ &+ \sum_{i=0}^{n-1} \nabla f(x_k) \frac{\nabla f_i(x_k)}{\sqrt{v_{k,i}}} \end{aligned} $$现在作者称: 两项的 $v_{k,i}$ 均可以换成 $v_{k,0}$, 且不影响量级, 证明太过繁杂这里省略. 我们转而考虑:
$$ \begin{aligned} \sum_{i=0}^{n-1} \nabla f(x_k) \frac{m_{k,i}}{\sqrt{v_{k,i}}} &\approx \sum_{i=0}^{n-1} \left( \nabla f(x_k) \frac{m_{k,i}}{\sqrt{v_{k,0}}}-\nabla f(x_k) \frac{\nabla f_i(x_k)}{\sqrt{v_{k,0}}} \right) \\ &+ \sum_{i=0}^{n-1} \nabla f(x_k) \frac{\nabla f_i(x_k)}{\sqrt{v_{k,0}}} \\ \end{aligned} $$第二项正是我们的目标:
$$M_2 = \frac{\nabla f(x_k)}{\sqrt{v_{k,0}}}\sum_{i=0}^{n-1} \nabla f_i(x_k) = \frac{\| \nabla f(x_k)^2 \|}{\sqrt{v_{k,0}}} \ge 0$$现在全力以赴地考虑第一项, 这是证明的核心, 证明也很繁杂, 涉及大量计算以及对梯度范围的讨论, 这里省略. 最后合并处理得到结论.
强调一点, 所谓 $\beta_2$ 充分大, 是指 $\beta_2$ 需要大于一个与 $n$ 有关的常数 $\gamma(n)$, 如果 $n$ 不固定, 定理并不能证明什么. 因此, 作者与 [2] 的结论达成了和解, 它们并不矛盾. 在 [3] 中, 作者给出了关于收敛的结论:
-
首先, 对于每个函数, 只要满足 $\beta_1^2<\beta_2$, 且 $\beta_2$ 充分大, 则当 $T \to \infty$ 时, 右侧趋于 $\sqrt{D_0}$, 这意味着收敛到一个范围内的点. 特别地, 如果 $D_0=0$, 右侧趋于 $0$, 这意味着收敛到最优点. 这与我们在实际中观察到的现象一致. 作者还给出了一块 “危险区域”, 只要 $(\beta_1, \beta_2)$ 落在这个区域内, 就会导致 Adam 不收敛. 除此之外的区域, 仍是未知的.
-
如果超参数先于函数取值, 注意此时 $n$ 可变. 无论 $(\beta_1, \beta_2)$ 取什么值, 都存在一个函数, 使得 Adam 不收敛. 作者给出的反例是:
$$ \begin{aligned} f_0(x) &= \begin{cases} nx, & x \ge -1 \\ \frac{n}{2}(x+2)^2 - \frac{3n}{2}, & x < -1 \end{cases} \\ f_i(x) &= \begin{cases} x, & x \ge -1 \\ \frac{1}{2}(x+2)^2 - \frac{3}{2}, & x < -1 \end{cases} \\ \end{aligned} $$在 $n \to \infty$ 时, 不收敛的 “危险区域” 会变得越来越大, 直到盖住 $(\beta_1, \beta_2)$ 这个点. 这个反例显然要比论文 [2] 中的更加深刻.
-
如果超参数在函数之后取值. 前面提到只要条件保证成立, 就可以保证收敛到最优局部或最优点.
显然, 日常训练中的情形更符合第二种, 我们都是先定义好损失函数, 然后再选择超参数, 因此这也就解释了为什么 Adam 在绝大多数训练中表现良好, 重点在于我们选取的超参数符合定理的要求.
应用: 另一个算法
遇到了一个基于 Nestorov 等价形式的算法, 和 Adam 非常相似, 于是想能不能直接推广证明, 方便起见暂时叫它 C’Adam. 更新公式如下:
算法C'Adam
$$ \begin{aligned} 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 \\ \theta_{t+1} &= \theta_t - \frac{\eta}{\sqrt{v_t} + \epsilon} \odot (\beta_1 m_t + g_t) \end{aligned} $$忽略偏差修正, 可以看到和 Adam 只有最后一行不同. 我尝试着给出一份证收敛性证明. 以下仍然简记 $x_k = x_{k,0}$.
定理
设 $f(x) = \sum_{i=0}^{n-1} f_i$ 有界, 且任意时刻 $f_t$ 满足 $L$- Lipschitz 连续, 满足增长性条件 $\sum_{i=0}^{n-1} \| \nabla f_i(x) \|^2 \le D_1 \| \nabla f(x) \| ^2 + D_0$ . 设 $\beta_1^2 < \beta_2 < 1$, 且 $\beta_2 \ge \gamma(n)$, 学习率衰减 $\eta_k= \frac{\eta}{\sqrt{nk}}$, 则存在某个充分大的 $K$, 对于 $T>K$ 均有:
$$ \min_{k \in [K,T]} \mathbb{E} \left\{ \min \left[ \sqrt{\frac{2D_1d}{D_0}} \| \nabla f(x_k) \|^2, \| \nabla f(x_k) \| \right] \right\} = \mathcal{O} \left( \frac{\log T}{\sqrt{T}} + \sqrt{D_0}\right) $$证明
从下降引理出发:
$$ \mathbb{E}f(x_{k+1}) - \mathbb{E}f(x_k) \le \mathbb{E} \left< \nabla f(x_k), x_{k+1} - x_k \right> + \frac{L}{2} \mathbb{E} \|x_{k+1} - x_k\|^2 $$做累加, 有:
$$ \mathbb{E} \sum_{k=t_0}^T \left< \nabla f(x_k), x_k - x_{k+1} \right> \le \frac{L}{2} \mathbb{E} \sum_{k=t_0}^T \|x_{k+1} - x_k\|^2 + \mathbb{E}f(x_{t_0}) - \mathbb{E}f(x_{T+1}) $$考虑右侧, 后两项是常数级别, 只需要考虑第一项:
$$ \begin{aligned} \mathbb{E} \|x_{k+1} - x_k\|^2 &\le \mathbb{E} \sum_{i=0}^{n-1} \|x_{k,i+1} - x_{k,i}\|^2 \le n \max_{0 \le i < n} \mathbb{E} \|x_{k,i+1} - x_{k,i}\|^2 \\ &\le n \mathcal{O}\left(\frac{\eta_k^2m^2_{k,i}}{v_{k,i}}\right) = \mathcal{O}\left(\frac{1}{k}\right) \end{aligned} $$这里用到 $\eta_k = \mathcal{O}(1/\sqrt{k})$, 而对于 $m^2_{k,i}/{v_{k,i}}$, 论文已经证明其为有界.
从而右边:
$$ RHS \le \sum_{k=t_0}^T \mathcal{O}\left(\frac{1}{k}\right) + C = \mathcal{O}(\log T) + \mathcal{O}(1) $$现在考察左侧, 右上角标 $(l)$ 表示第 $l$ 个分量:
$$ \begin{aligned} \mathbb{E} \left< \nabla f(x_k), x_k - x_{k+1} \right> &= \eta_k \mathbb{E} \left< \nabla f(x_k), \sum_{i=0}^{n-1} \frac{\beta_1 m_{k,i}+ g_{k,i}}{\sqrt{v_{k,i}}} \right> \\ &= \eta_k \mathbb{E} \sum_{l=1}^d \sum_{i=0}^{n-1} \partial_l f(x_k) \left( \frac{\beta_1 m_{k,i}^{(l)} + \partial_l f_i(x_k)}{\sqrt{v_{k,i}^{(l)}}}\right) \end{aligned} $$按分子上的加号拆成两部分. 对于前者, 论文中 (35) 式已经证明了:
$$ \begin{aligned} \mathbb{E} \sum_{l=1}^d \sum_{i=0}^{n-1} \partial_l f(x_k) \frac{m_{k,i}^{(l)}}{\sqrt{v_{k,i}^{(l)}}} \ge &\frac{1}{d \sqrt{10D_1d}} \mathbb{E} \min \left[ \sqrt{\frac{2D_1d}{D_0}} \| \nabla f(x_k) \|^2, \| \nabla f(x_k) \| \right] \\ & - \mathcal{O}\left(\frac{1}{\sqrt{k}}\right) - \mathcal{O}\left(\sqrt{D_0}\right) \end{aligned} $$对于后者, 再拆分:
$$ \begin{aligned} \mathbb{E} \sum_{l=1}^d \sum_{i=0}^{n-1} \partial_l f(x_k) \frac{\partial_l f_i(x_k)}{\sqrt{v_{k,i}^{(l)}}} = \mathbb{E} \sum_{l=1}^d \sum_{i=0}^{n-1} \frac{\partial_l^2 f(x_k)}{\sqrt{v_{k,i}^{(l)}}} + \mathbb{E} \sum_{l=1}^d \sum_{i=0}^{n-1} \partial_l f(x_k) \frac{\partial_l f_i(x_k) - \partial_l f(x_k)}{\sqrt{v_{k,i}^{(l)}}} \end{aligned} $$前一项显然非负, 后一项即论文中的 $(a_2)$项, 其在引理 G.5 已经证明当 $\beta_2 \to 1$ 时, 此项趋于 $0$.
我们综合关于左侧的讨论, 即有:
$$ LHS \ge \beta_1 \sum_{k=t_0}^T \eta_k \left( \frac{1}{d \sqrt{10D_1d}} \mathbb{E} \min \left[ \sqrt{\frac{2D_1d}{D_0}} \| \nabla f(x_k) \|^2, \| \nabla f(x_k) \| \right] - \mathcal{O}\left(\frac{1}{\sqrt{k}}\right) - \mathcal{O}\left(\sqrt{D_0}\right) \right) $$又 $\eta_k = \mathcal{O}(1/\sqrt{k})$, 则 $\sum_{k=t_0}^T \eta_k = \mathcal{O}(\sqrt{T})$, 忽略所有低阶项, 联合左右两端, 我们得到:
$$ \mathcal{O} \left(\sqrt{T}\right) \left( \frac{1}{d \sqrt{10D_1d}} \mathbb{E} \min \left[ \sqrt{\frac{2D_1d}{D_0}} \| \nabla f(x_k) \|^2, \| \nabla f(x_k) \| \right] - \mathcal{O} \left(\sqrt{D_0}\right) \right) \le \mathcal{O}(\log T) $$由此移项即得证.
总结
Adam 优化器的收敛性问题, 经过多篇论文的讨论, 目前已经有了比较清晰的结论. 论文 [1] 中的定理是有漏洞的, 但在实际中, Adam 的表现依然良好. 尽管存在着不收敛的情况, 论文 [3] 已经充分表明, 在日常使用中, 只要按照正常习惯选取合理的超参数, 就可以保证收敛, Adam 的实用性至此得到了验证.