ADAM A METHOD FOR STOCHASTIC OPTIMIZATION

ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION

1 INTRODUCTION

基于随机梯度的优化方法在许多科学和工程领域都具有重要的实际意义。这些领域中的许多问题都可以归结为一类标量参数化目标函数的优化问题,要求对其参数进行最大化或最小化。如果函数的参数是可微的,梯度下降法是一种相对有效的优化方法,因为一阶偏导数的计算,所有参数的计算复杂度都与函数的计算复杂度相同。通常,目标函数是随机的。例如,许多目标函数由在不同数据子样本上评估的子函数之和组成;在这种情况下,通过采用梯度步骤w.r.t.单个子函数,即随机梯度下降(SGD)或上升,可以使优化更有效。SGD被证明是一种高效的优化方法,在许多机器学习的成功案例中起着核心作用,例如深度学习的最新进展。目标也可能有数据子采样以外的其他噪声源,例如dropout(Hinton等人,2012b)正则化。对于所有这些噪声目标,都需要有效的随机优化技术。本文主要研究高维参数空间随机目标的优化问题。在这些情况下,高阶优化方法是不适合的,本文的讨论将限于一阶方法。

我们提出了一种有效的随机优化方法Adam,它只需要一阶梯度,而对内存的要求很小。该方法通过对梯度的第一和第二阶矩的估计来计算不同参数的个体自适应学习率;Adam这个名字来自于自适应矩估计。我们的方法旨在结合两种最近流行的方法的优点:在稀疏梯度下工作良好的AdaGrad(Duchi等人,2011年),在线和非平稳设置下工作良好的RMSProp(Tieleman&Hinton,2012年);这些方法和其他随机优化方法的重要联系在第5节中阐明。Adam的一些优点是,参数更新的幅度对梯度的重新缩放是不变的,其步长近似地受步长超参数的限制,它不需要固定的目标,它与稀疏的梯度一起工作,并且自然地执行一种步长退火。

在第二节中,我们描述了算法及其更新规则的性质。第三节介绍了我们的初始化偏差校正技术,第四节对在线凸规划中的Adam收敛性进行了理论分析。根据经验,我们的方法在各种模型和数据集上始终优于其他方法,如第6节所示。总之,我们证明了Adam是一个多用途的算法,可以扩展到大规模的高维机器学习问题。

2 ALGORITHM

我们提出的Adam算法的伪代码见算法1。

ADAM A METHOD FOR STOCHASTIC OPTIMIZATION

f(θ)f(\theta)是一个带噪声的目标函数:一个可微的随机标量函数,参数为θ\theta

我们感兴趣的是最小化这个函数的期望值,E[f(θ)]{\Bbb E}[f(\theta)],通过优化他的参数θ\theta。用f(θ1),...,fT(θ)f(\theta_1),...,f_T(\theta)表示随机函数在随后的时间步1,…,T的实现。随机性可能来自随机子样本(小批量)的数据点评价,也可能来自固有的函数噪声。用gt=θft(θ)g_t=\nabla_{\theta}f_t(\theta)代表梯度,即在时间步t函数ftf_t的偏导向量。

该算法更新了梯度的指数移动平均线(mt)(m_t)和梯度的平方(vt)(v_t),超参数β1,β2[0,1)\beta_1,\beta_2\in[0,1)控制这些移动平均线的指数衰减率。移动平均值本身是梯度的第一阶矩(平均值)和原始二阶矩(无中心方差)的估计值。然而,这些移动平均值被初始化为(向量)0,导致矩估计偏向于0,特别是在初始时间步期间,特别是当衰减率很小时(即 β\beta 接近1)。好消息是,这种初始化偏差可以很容易地抵消,从而得到偏差更正后的估计mt^,vt^\hat{m_t},\hat{v_t},更多细节见第3节。

请注意,算法1的效率可以通过改变计算顺序来提高,例如,将循环中的最后三行替换为以下几行:

αt=αt1β2t/(1β1t)\alpha_t=\alpha_t\cdot\sqrt{1-\beta_2^t}/(1-\beta_1^t)θtθt1αtmt/(vt+ϵ^)\theta_t\leftarrow \theta_{t-1}-\alpha_t\cdot m_t/(\sqrt{v_t}+\hat\epsilon)

2.1 ADAM’S UPDATE RULE

Adam的更新规则的一个重要属性是它对stepsizes的谨慎选择。假设ϵ=0\epsilon=0,第t时刻在参数空间中所采取的有效步长为Δt=αmt^/vt^\Delta_ t=\alpha\cdot\hat{m_t}/\sqrt{\hat{v_t}} 。有效步长有两个上限:当(1β1)>1β2(1-\beta_1)>\sqrt{1-\beta_2}时,Δtα(1βt)/1β2|\Delta_t|\le\alpha\cdot(1-\beta_t)/\sqrt{1-\beta_2},否则Δtα|\Delta_t|\le\alpha。第一种情况只发生在最严重的稀疏情况下:除了当前时间步长之外,梯度在所有时间步长都为零。对于较少稀疏的情况,有效步长会更小。当(1β1)=1β2(1-\beta_1)=\sqrt{1-\beta_2}时,mt^/vt^<1|\hat{m_t}/\sqrt{\hat{v_t}}|<1 ,因此,Δt<a|\Delta_t<a|。在更常见的情况下,我们会遇到这种情况mt^/vt^±1\hat{m_t}/\sqrt{\hat{v_t}}\approx\pm1 since E[g]/E[g2]1|{\Bbb E}[g]/\sqrt{{\Bbb E}[g^2]}\le1| 。每个时间步长在参数空间中所采取的有效步长大约受步长设置的α\alpha限制,即,[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iehH9YsZ-1593961208304)(030.jpg)]。这个可以理解为在当前参数值下确定一个置信域,因此其要优于没有提供足够信息的当前梯度估计。这正可以令其相对简单地提前知道α正确的范围。

对于许多机器学习模型来说,我们知道好的最优状态是在参数空间内的集合域上有极高的概率。这并不罕见,例如我们可以在参数上有一个先验分布。因为α确定了参数空间内有效步长的量级(即上确界),我们常常可以推断出α的正确量级,而最优解也可以从θ0 开始通过一定量的迭代而达到。我们可以将ADAM A METHOD FOR STOCHASTIC OPTIMIZATION称之为信噪比(signal-to-noise ratio/SNR)。如果 SNR 值较小,那么有效步长∆t 将接近于 0,目标函数也将收敛到极值。这是非常令人满意的属性,因为越小的 SNR 就意味着算法对方向ADAM A METHOD FOR STOCHASTIC OPTIMIZATION是否符合真实梯度方向存在着越大的不确定性。例如,SNR 值在最优解附近趋向于 0,因此也会在参数空间有更小的有效步长:即一种自动退火(automatic annealing)的形式。有效步长∆t 对于梯度缩放来说仍然是不变量,我们如果用因子 c 重缩放(rescaling)梯度 g,即相当于用因子 c 重缩放ADAM A METHOD FOR STOCHASTIC OPTIMIZATION和用因子 c2c^2 缩放ADAM A METHOD FOR STOCHASTIC OPTIMIZATION,而在计算信噪比时缩放因子会得到抵消ADAM A METHOD FOR STOCHASTIC OPTIMIZATION.

3 INITIALIZATION BIAS CORRECTION

正如在第2节中所解释的,Adam使用了初始化偏差校正术语。我们将在这里推出二阶估计的术语;一阶矩估计的推导是完全类似的。设g为随机目标f的梯度,首先我们可以求得随机目标函数 f 的梯度,然后我们希望能使用平方梯度(squared gradient)的指数移动均值和衰减率β2β_2 来估计它的二阶原始矩(有偏方差)。让g1,...,gTg_1,...,g_T为后续时间步长的梯度,,其中每个梯度都服从一个潜在的梯度分布gtg_t~p(gt)p(g_t)。我们把指数移动平均初始化为v0=0v_0=0(一个0向量)。首先注意指数移动平均线在t时刻的更新vt=β2vt1+(1β2)gt2v_t=\beta_2\cdot v_{t-1}+(1-\beta_2)\cdot g_t^2,其中gt2g_t^2代表Hadamard积gtgtg_t\bigodot g_t,即对应元素之间的乘积。同样我们可以将其改写为在前面所有时间步上只包含梯度和衰减率的函数,即消去 v:

ADAM A METHOD FOR STOCHASTIC OPTIMIZATION

我们希望知道时间步 t 上指数移动均值的期望值E[vt]{\Bbb E}[v_t]如何与真实的二阶矩

E[gt2]{\Bbb E}[g_t^2]相关联,下面我们同时对表达式(1)的左边和右边去期望,即如下所示:
ADAM A METHOD FOR STOCHASTIC OPTIMIZATION