前面四篇文章中,我们探讨了SGD从有界域到无界域、从平均损失到终点损失的一系列收敛结论。或许有读者觉得,说来说去都还是SGD,这恐怕是“上古时代”的结果了吧?还真不是!像第四篇《让炼丹更科学一些(四):新恒等式,新学习率》所依赖的核心恒等式,出自不远的2023年;第三篇《让炼丹更科学一些(三):SGD的终点损失收敛》的结论稍早一点,亦不过出自2020年。
同样是在第四篇中,我们推出了实践常见的学习率策略“线性衰减”,它表明这系列理论推导并非“纸上谈兵”,而是能对实践产生有效的指导。接下来,我们将讨论基于梯度的更精细的学习率策略,它有助于我们了解学习率调度的原理,同时也是各种自适应学习率优化器的基础。
最初起点 #
如果仔细重温前面的证明过程,我们会发现,这一系列结论的起点,是一个毫不起眼的恒等式
\begin{equation}\begin{aligned}
\Vert\boldsymbol{\theta}_{t+1} - \boldsymbol{\varphi}\Vert^2=&\, \Vert\boldsymbol{\theta}_t - \eta_t \boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)- \boldsymbol{\varphi}\Vert^2 \\
=&\, \Vert\boldsymbol{\theta}_t - \boldsymbol{\varphi}\Vert^2 - 2\eta_t (\boldsymbol{\theta}_t- \boldsymbol{\varphi})\cdot\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t) + \eta_t^2\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2
\end{aligned}\label{eq:begin}\end{equation}
之所以说它“毫不起眼”,是因为它太平凡了,任何一个及格的高中生都能理解和证明它,然后就是这么一个简单的恒等式,支撑起了随机优化的一系列结论,不得不让人感慨大道至简、返璞归真。
要理解这个恒等式,我们要注意两点“任意性”。第一,$\boldsymbol{\varphi}$是任意的,多数情况下我们会将它取理论最优解$\boldsymbol{\theta}^*$,以得到最有价值的结果,但这不改变$\boldsymbol{\varphi}$本身的任意性,我们已经知道《让炼丹更科学一些(三):SGD的终点损失收敛》、《让炼丹更科学一些(四):新恒等式,新学习率》两篇文章推导的关键之一就是代入了$\boldsymbol{\varphi}=\boldsymbol{\theta}_{T-k}$和$\boldsymbol{\varphi}=\boldsymbol{\theta}_k$。
第二,$\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)$是任意的,这个咋看之下可能有点意外,因为之前的文章都默认$\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)$是损失函数的梯度$\nabla_{\boldsymbol{\theta}_t}L(\boldsymbol{x}_t,\boldsymbol{\theta}_t)$,但事实上,将它设为梯度的唯一作用是结合$L$的凸性得到
\begin{equation}L(\boldsymbol{x}_t,\boldsymbol{\theta}_t) - L(\boldsymbol{x}_t,\boldsymbol{\varphi}) \leq (\boldsymbol{\theta}_t- \boldsymbol{\varphi})\cdot\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\end{equation}
从而让恒等式跟损失函数联系起来,如果我们不需要这一点,或者有别的办法做到这一点,那么它就是非必要的。这个任意性很关键,它允许我们构造更复杂的更新规则,也是后面将结果推广到非SGD优化器的关键。
经典结果 #
简单调整一下式$\eqref{eq:begin}$得
\begin{equation}2\eta_t (\boldsymbol{\theta}_t- \boldsymbol{\varphi})\cdot\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)= \Vert\boldsymbol{\theta}_t - \boldsymbol{\varphi}\Vert^2 - \Vert\boldsymbol{\theta}_{t+1} - \boldsymbol{\varphi}\Vert^2 + \eta_t^2\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2 \label{eq:begin-2}\end{equation}
接下来“老派”的思路是,先将两端除以$2\eta_t$,然后对$t$从$1\sim T$求和,这样好处是左端能够通过凸性直接建立起它跟损失的不等关系,坏处是需要引入有界域和学习率非增的假设,才能比较容易对右端进行放缩。到目前为止,我们只有在第一篇《让炼丹更科学一些(一):SGD的平均损失收敛》用到了“老派”方法,最终结果是
\begin{equation}\frac{1}{T}\sum_{t=1}^T L(\boldsymbol{x}_t,\boldsymbol{\theta}_t) - \frac{1}{T}\sum_{t=1}^T L(\boldsymbol{x}_t,\boldsymbol{\theta}^*)\leq \frac{R^2}{2T\eta_T} + \frac{1}{2T}\sum_{t=1}^T\eta_t\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2\label{leq:old-avg}\end{equation}
这次我们显式保留了$\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert$,而没有假设$\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert\leq G$进一步化简。由于假设了学习率非增,所以我们有
\begin{equation}\frac{R^2}{2T\eta_T} + \frac{1}{2T}\sum_{t=1}^T\eta_t\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2\geq \frac{R^2}{2T\eta_T} + \frac{\eta_T}{2T}\sum_{t=1}^T\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2 \geq \frac{R}{T}\sqrt{\sum_{t=1}^T\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2}\label{leq:old-avg-optimal}\end{equation}
记$V_t = \sum_{k=1}^t\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2$,那么取等号的条件是$\eta_1 = \eta_2 = \cdots = \eta_T = R/\sqrt{V_T}$。也就是说,不等式$\eqref{leq:old-avg}$右端在常数学习率$R/\sqrt{V_T}$取到最小值,这是收敛最快的学习率。然而,这个结果是违反因果律的,在$t$时刻我们无法“预知”后面时刻的梯度模长。将它修改成符合因果律的一种方式是
\begin{equation}\eta_t = \frac{R}{\sqrt{V_t}} = \frac{R}{\sqrt{\sum_{k=1}^t\Vert\boldsymbol{g}(\boldsymbol{x}_k,\boldsymbol{\theta}_k)\Vert^2}}\label{eq:adagrad-mini}\end{equation}
修改后我们要重新证明一下
\begin{equation}\sum_{t=1}^T\eta_t\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2 = R\sum_{t=1}^T\frac{V_t - V_{t-1}}{\sqrt{V_t}}\leq 2R\sum_{t=1}^T\frac{V_t - V_{t-1}}{\sqrt{V_t} + \sqrt{V_{t-1}}} = 2R\sum_{t=1}^T (\sqrt{V_t} - \sqrt{V_{t-1}}) = 2R\sqrt{V_T}\end{equation}
代回到不等式$\eqref{leq:old-avg}$得
\begin{equation}\frac{1}{T}\sum_{t=1}^T L(\boldsymbol{x}_t,\boldsymbol{\theta}_t) - \frac{1}{T}\sum_{t=1}^T L(\boldsymbol{x}_t,\boldsymbol{\theta}^*)\leq \frac{3R}{2T}\sqrt{\sum_{t=1}^T\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2}\end{equation}
结果只比最理想的$\eqref{leq:old-avg-optimal}$大50%,已经相当不错了,关键是它不违反因果律,是实践可行的学习率策略。它也是AdaGrad优化器的雏形,将式$\eqref{eq:adagrad-mini}$的形式Element-wise地应用到每个分量上,我们就得到了标准版的AdaGrad,后面我们还会回来讨论它。
小心期望 #
从第二篇《让炼丹更科学一些(二):将结论推广到无界域》开始,我们使用了“新派”的处理手段,它直接对式$\eqref{eq:begin-2}$两端求和:
\begin{equation}\begin{aligned}
\sum_{t=1}^T 2\eta_t (\boldsymbol{\theta}_t- \boldsymbol{\varphi})\cdot\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t) =&\, \Vert\boldsymbol{\theta}_1 - \boldsymbol{\varphi}\Vert^2 - \Vert\boldsymbol{\theta}_{T+1} - \boldsymbol{\varphi}\Vert^2 + \sum_{t=1}^T \eta_t^2\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2 \\
\leq &\, \Vert\boldsymbol{\theta}_1 - \boldsymbol{\varphi}\Vert^2 + \sum_{t=1}^T \eta_t^2\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2
\end{aligned}\end{equation}
很明显,“新派”的好处是不假设学习率的单调性,也不需要假设有界域,右端的$\Vert\boldsymbol{\theta}_t - \boldsymbol{\varphi}\Vert^2$就自然地消去了,代价是左端的求和多了个权重$\eta_t$。这个权重对于SGD来说问题不大,但对于自适应学习率优化器来说几乎是致命的,所以纵使新派方法有诸多精妙之处,但几乎都无法推广到自适应学习率优化器,到那时我们还是只能用“老派”方法。
先不扯太远了,还是回到SGD的分析,对上式左端利用凸性得
\begin{equation}\sum_{t=1}^T \eta_t [L(\boldsymbol{x}_t,\boldsymbol{\theta}_t) - L(\boldsymbol{x}_t,\boldsymbol{\varphi})]\leq \frac{\Vert\boldsymbol{\theta}_1 - \boldsymbol{\varphi}\Vert^2}{2} + \frac{1}{2}\sum_{t=1}^T \eta_t^2\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2\end{equation}
在前三篇文章中,紧接着上式的步骤是对两端取数学期望$\mathbb{E}$,但这里我们要非常小心!因为取期望是对全体$\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_T$取的,而在前三篇文章中,我们都假设了学习率$\eta_t$与数据无关,那么成立$\mathbb{E}[\eta_t [L(\boldsymbol{x}_t,\boldsymbol{\theta}_t) - L(\boldsymbol{x}_t,\boldsymbol{\varphi})]] = \eta_t\mathbb{E} [L(\boldsymbol{x}_t,\boldsymbol{\theta}_t) - L(\boldsymbol{x}_t,\boldsymbol{\varphi})] = \eta_t\mathbb{E} [L(\boldsymbol{\theta}_t) - L(\boldsymbol{\varphi})]$,从而建立起左端与目标损失的联系。然而,本文是要考虑梯度相关的学习率,$\eta_t$无法简单地被分离出来。
一个比较简单的补救办法是假设$\eta_t$至多跟$\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_{t-1}$有关,此时$\boldsymbol{x}_t$的期望可以单独求,比如$\mathbb{E}[\eta_t L(\boldsymbol{x}_t,\boldsymbol{\theta}_t)] = \mathbb{E}[\eta_t \mathbb{E}_{\boldsymbol{x}_t}[L(\boldsymbol{x}_t,\boldsymbol{\theta}_t)]] = \mathbb{E}[\eta_t L(\boldsymbol{\theta}_t)]$,但这未免有点束手束脚了,所以我们干脆还是假设$\eta_t$数据无关。这样是否无法实现梯度调节学习率了?并不会,而是我们只能实现基于梯度期望$G_t = \sqrt{\mathbb{E}[\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2]}$的调节,即
\begin{equation}\sum_{t=1}^T \eta_t \mathbb{E}[L(\boldsymbol{\theta}_t) - L(\boldsymbol{\varphi})]\leq \frac{\mathbb{E}[\Vert\boldsymbol{\theta}_1 - \boldsymbol{\varphi}\Vert^2]}{2} + \frac{1}{2}\sum_{t=1}^T \eta_t^2\underbrace{\mathbb{E}[\Vert\boldsymbol{g}(\boldsymbol{x}_t,\boldsymbol{\theta}_t)\Vert^2]}_{G_t^2}\label{leq:E-L}\end{equation}
还是旧的 #
有了不等式$\eqref{leq:E-L}$,后续推导就比较平凡了,我们将逐一推广第二、三、四篇文章中的结论,看它们对学习率调节有何新启发。第二篇《让炼丹更科学一些(二):将结论推广到无界域》有两个结论,第一个结论假设了学习率的非增性,左端的$\eta_t$统一用$\eta_T$代替,并代入$\boldsymbol{\varphi}=\boldsymbol{\theta}^*$得
\begin{equation}\frac{1}{T}\sum_{t=1}^T \mathbb{E}[L(\boldsymbol{\theta}_t) - L(\boldsymbol{\theta}^*)] \leq \frac{R^2}{2T\eta_T} + \frac{1}{2T\eta_T}\sum_{t=1}^T \eta_t^2 G_t^2\end{equation}
这里$R = \Vert\boldsymbol{\theta}_1 - \boldsymbol{\theta}^*\Vert$。由于学习率非增,容易证明右端也是在常数学习率下取到最小值,此时
\begin{equation}\eta_t = \frac{R}{ \sqrt{\sum_{k=1}^T G_k}}\end{equation}
当然,这个结果也违反了因果律,所以我们只能将它修改成
\begin{equation}\eta_t = \frac{R}{\sqrt{\sum_{k=1}^t G_k^2}} = \frac{R}{ \sqrt{\sum_{k=1}^t \mathbb{E}[\Vert\boldsymbol{g}(\boldsymbol{x}_k,\boldsymbol{\theta}_k)\Vert^2]}}\end{equation}
但分母中的$\mathbb{E}$也是不现实的,它意味着我们要重复跑很多次取平均。我们直接去掉$\mathbb{E}$来作为上式的近似,或者说假设$\Vert\boldsymbol{g}(\boldsymbol{x}_k,\boldsymbol{\theta}_k)\Vert^2$的方差非常小,所以单次采样就足够准确,后面的结果我们都默认采取这样的操作。总之,拿掉期望$\mathbb{E}$后,结果跟$\eqref{eq:adagrad-mini}$本质一样,暂时没有新的启发。
梯度反比 #
《让炼丹更科学一些(二):将结论推广到无界域》的第二个结论是加权平均形式的不等式
\begin{equation}\frac{\sum_{t=1}^T \eta_t \mathbb{E}[L(\boldsymbol{\theta}_t) - L(\boldsymbol{\theta}^*)]}{\sum_{t=1}^T \eta_t}\leq \frac{R^2}{2\sum_{t=1}^T \eta_t} + \frac{\sum_{t=1}^T \eta_t^2 G_t^2}{2\sum_{t=1}^T \eta_t}\label{leq:avg-weighted}\end{equation}
利用柯西不等式得
\begin{equation}\sum_{t=1}^T \eta_t^2 G_t^2 = \frac{\sum_{t=1}^T (\eta_t G_t)^2 \sum_{t=1}^T G_t^{-2}}{\sum_{t=1}^T G_t^{-2}} \geq \frac{\left(\sum_{t=1}^T \eta_t G_t G_t^{-1}\right)^2}{\sum_{t=1}^T G_t^{-2}} = \frac{\left(\sum_{t=1}^T \eta_t\right)^2}{\sum_{t=1}^T G_t^{-2}}\end{equation}
取等号的条件是$\eta_t G_t \propto G_t^{-1}$,即$\eta_t \propto G_t^{-2}$。将上式代入到$\eqref{leq:avg-weighted}$右端,我们有
\begin{equation}\frac{R^2}{2\sum_{t=1}^T \eta_t} + \frac{\sum_{t=1}^T \eta_t^2 G_t^2}{2\sum_{t=1}^T \eta_t} \geq \frac{R^2}{2\sum_{t=1}^T \eta_t} + \frac{\sum_{t=1}^T \eta_t}{2\sum_{t=1}^T G_t^{-2}}\geq \frac{R}{\sqrt{\sum_{t=1}^T G_t^{-2}}}\end{equation}
最终取等号的总条件是$\eta_t = R G_t^{-2}/\sqrt{Q_T}$,其中$Q_t = \sum_{k=1}^t G_k^{-2}$。这个结果最特别的地方是,它告诉我们学习率要反比于梯度模长平方,这可以用来解释Warmup的必要性,因为训练初期梯度模长会比较大,而之后梯度模长会降下来,并在相当长时间近似不变。将它修改成符合因果律的形式是
\begin{equation}\eta_t = \frac{R G_t^{-2}}{\sqrt{Q_t}} = \frac{R G_t^{-2}}{\sqrt{\sum_{k=1}^t G_k^{-2}}}\end{equation}
修改之后还要重新证明一下:
\begin{gather}\sum_{t=1}^T \eta_t = \sum_{t=1}^T \frac{R(Q_t - Q_{t-1})}{\sqrt{Q_t}} \geq \sum_{t=1}^T \frac{R(Q_t - Q_{t-1})}{\sqrt{Q_t} + \sqrt{Q_{t-1}}} = \sum_{t=1}^T R(\sqrt{Q_t} - \sqrt{Q_{t-1}}) = R \sqrt{Q_T} \\
\sum_{t=1}^T \eta_t^2 G_t^2 = \sum_{t=1}^T \frac{R^2(Q_t - Q_{t-1})}{Q_t} = R^2 + \sum_{t=2}^T \frac{R^2(Q_t - Q_{t-1})}{Q_t} \leq R^2 + R^2\sum_{t=2}^T \ln \frac{Q_t}{Q_{t-1}}= R^2+ R^2\ln \frac{Q_T}{Q_1}\end{gather}
将这两个结果代入$\eqref{leq:avg-weighted}$得
\begin{equation}\frac{\sum_{t=1}^T \eta_t \mathbb{E}[L(\boldsymbol{\theta}_t) - L(\boldsymbol{\theta}^*)]}{\sum_{t=1}^T \eta_t}\leq \frac{R}{\sqrt{Q_T}}\left(1 + \frac{1}{2}\ln \frac{Q_T}{Q_1}\right)\end{equation}
跟最优解的核心区别是多了个对数增长的因子$\ln (Q_T/Q_1)$,这是静态学习率改动态学习率的常见现象。
关注当下 #
从第三篇《让炼丹更科学一些(三):SGD的终点损失收敛》开始,我们的结论开始面向终点损失收敛,将该文章的核心结论推广到动态梯度,结果是
\begin{equation}\mathbb{E}[L(\boldsymbol{\theta}_T) - L(\boldsymbol{\theta}^*)] \leq \frac{R^2}{2T\eta_T} + \frac{1}{2\eta_T}\sum_{t=1}^{T}\frac{\eta_t^2 G_t^2}{\max(1,\,T-t)}\label{leq:last-1}\end{equation}
由于这个结果也是要求学习率非增的,所以容易证明右端最小值是$R\sqrt{V_T/T}$,在常数学习率取到:
\begin{equation}\eta_t = \frac{R}{\sqrt{T V_T}},\qquad V_t = \sum_{k=1}^t\frac{G_k^2}{\max(1,\,t-k)}\end{equation}
这个学习率同样也很有意思,它具有跟“迷你版”AdaGrad学习率$\eqref{eq:adagrad-mini}$相似的分母,$V_t$都是梯度平方求和的形式,不同的是这里$k$时刻的梯度被加权$1/\max(1,\,t-k)$,这意味着更关注当前时刻的梯度,这是从平均损失到终点损失带来的新特性,它跟RMSProp、Adam等通过EMA来更新二阶矩的做法已经非常接近了。
直觉上,因果律版本是$\eta_t = R/\sqrt{t V_t}$,但这个并不够精准,正确版本应该是$\eta_t = R/\sqrt{T V_t}$,代入式$\eqref{leq:last-1}$右端得
\begin{equation}\begin{aligned}
\frac{R^2}{2T\eta_T} + \frac{1}{2\eta_T}\sum_{t=1}^{T}\frac{\eta_t^2 G_t^2}{\max(1,\,T-t)} =&\, \frac{R}{2}\sqrt{\frac{V_T}{T}}\left(1 + \sum_{t=1}^{T}\frac{G_t^2/V_t}{\max(1,\,T-t)}\right) \\
\leq&\, \frac{R}{2}\sqrt{\frac{V_T}{T}}\left(1 + \sum_{t=1}^{T}\frac{1}{\max(1,\,T-t)}\right) \\
\leq&\, \frac{R}{2}\sqrt{\frac{V_T}{T}} (3 + \ln T)\\
\end{aligned}\end{equation}
这里利用了$G_t^2\leq V_t$。相比最优解,同样多出了一个对数增长的因子$\ln T$。
集大成者 #
在《让炼丹更科学一些(四):新恒等式,新学习率》中,我们得到了到目前为止最强的终点损失收敛结果,将它推广到动态梯度,便得到式$\eqref{leq:avg-weighted}$和式$\eqref{leq:last-1}$的“集大成者”:
\begin{equation}\mathbb{E}[L(\boldsymbol{\theta}_T) - L(\boldsymbol{\theta}^*)] \leq \frac{R^2}{2\eta_{1:T}} + \frac{1}{2}\sum_{t=1}^T\frac{\eta_t^2 G_t^2}{\eta_{\min(t+1, T):T}}\label{leq:last-2}\end{equation}
这个结果看起来简单,实际上很复杂,至少我们没法直观看出右端的最小值在何种学习率模式下取到。不过上一篇文章笔者提供了一个思路,那就是连续化近似后用变分法求解,这里我们依然可以尝试一下:设$S_t = \eta_{\min(t+1, T):T}$,那么对于$t < T - 1$有$\eta_t = S_{t-1} - S_t\approx -\dot{S}_t$,统一用$-\dot{S}_t$近似$\eta_t$、用积分近似求和,那么上式右端近似为(代换$S_t = W_t^2$)
\begin{equation}\frac{R^2}{2S_0} + \frac{1}{2}\int_0^T \frac{\dot{S}_t^2 G_t^2}{S_t}dt = \frac{R^2}{2W_0^2} + 2\int_0^T \dot{W}_t^2 G_t^2 dt \label{eq:int-approx}\end{equation}
根据定义$W_T=0$,再固定$W_0$,那么积分部分就是边界固定的变分问题,欧拉-拉格朗日方程给出$\frac{d}{dt}(\dot{W}_t G_t^2)=0$,即$\dot{W}_t \propto G_t^{-2}$,两端积分并结合$W_T=0$得$W_t = W_0\int_t^T G_s^{-2} ds/\int_0^T G_s^{-2} ds$,代回$\eqref{eq:int-approx}$得$R^2/2W_0^2 + 2 W_0^2 / \int_0^T G_s^{-2} ds$,最小值在$2W_0^2 = R(\int_0^T G_s^{-2} ds)^{1/2}$取到。最后,根据近似$\eta_t\approx -\dot{S}_t=-2W_t\dot{W}_t$,最终可得
\begin{equation}\eta_t \approx \frac{R G_t^{-2} \int_t^T G_s^{-2}ds}{(\int_0^T G_s^{-2}ds)^{3/2}}\end{equation}
如果恢复离散化,可以猜测最优学习率大致是
\begin{equation}\eta_t = \frac{R G_t^{-2} (Q_T - Q_t)}{Q_T^{3/2}} = \frac{R G_t^{-2}}{\sqrt{Q_T}} (1 - Q_t/Q_T)\label{eq:last-2-opt-lr}\end{equation}
的形式,其中$Q_t$就是前面定义过的$\sum_{k=1}^t G_k^{-2}$。事实上,这个“猜测”就是正确答案!然而,将它代回式$\eqref{leq:last-2}$验证会非常麻烦,因为式$\eqref{leq:last-2}$的分母是$\eta_{t+1:T}$而不是$\eta_{t:T}$,所以无法保证$\eta_t / \eta_{t+1:T}$有界,放缩起来会特别困难,笔者尝试了一周依然未果。这里我们不打算继续尝试下去,而是等到下一篇文章通过一个更精妙的构造去证明它。
现在我们来赏析一下式$\eqref{eq:last-2-opt-lr}$。注意到$R G_t^{-2}/\sqrt{Q_T}$正好是$\eqref{leq:avg-weighted}$的最优学习率,特点是正比于$G_t^{-2}$,前面说了这可以用来解释Warmup;式$\eqref{eq:last-2-opt-lr}$在此基础上多乘了一项$1 - Q_t/Q_T$,这是单调递减的,在适当假设下它是线性衰减,所以这一项可以用来解释Decay。因此,式$\eqref{eq:last-2-opt-lr}$正好对应了经典的“Warmup-Decay型”学习率策略。
更有趣的是,上一节$\eqref{leq:last-1}$的最优学习率告诉我们要更关注当前时刻的梯度,结果式$\eqref{eq:last-2-opt-lr}$更极端,它只依赖当前时刻和未来时刻的梯度,完全不依赖历史梯度。这无疑是违反因果律的,怎么将它修改成符合因果律呢?$\sqrt{Q_T}$可以考虑换成$\sqrt{Q_t}$,至于$Q_t/Q_T$中的$Q_T$可以写成$(Q_T/T)\times T$,然后考虑将$Q_T/T$换成$Q_t/t$,于是得到
\begin{equation}\eta_t = \frac{R G_t^{-2}}{\sqrt{Q_t}} (1 - t/T)\end{equation}
看上去很合理,但要想代回式$\eqref{leq:last-2}$证明它真的有效,也不是一件容易的事情。
文章小结 #
这篇文章开始,我们考虑基于梯度的学习率调度,它有助于我们了解诸如Warmup、Decay等学习率策略的原理,也能为各种自适应学习率优化器提供有益的参考。
转载到请包括本文地址:https://kexue.fm/archives/11530
更详细的转载事宜请参考:《科学空间FAQ》