Adaptive Gradient Methods with Dynamic Bound of Learning Rate

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30241709/article/details/88101430

北大和浙大本科生的这篇ICLR论文所提出的优化算法被媒体称为”拳打Adam,脚踢SGD“,该工作为他们在滴滴AI实验室实习时完成。这篇论文提出了两种优化算法,分别是Adabound和AMSBound,两个算法分别是Adam和AMSGrad的变体。在概括这篇论文的研究之前,首先介绍一下Adam和AMSGrad。


本文传送机

回顾之Adam

回顾之AMSGrad

论文内容

Abstract

Introduction

Notations and Preliminaries

Notations

Online convex programming

A generic overview of optimization methods

The Non-Convergence Caused by Extreme Learning Rate

Theorem 1

Theorem 2

Theorem 3

Adaptice Mement Estimation with Dynamic Bound

Theorem 4 & Corollary 4.1

Experiments

Feedforward Neural Network

Convolutional Neural Network

Recurrent Neural Network


回顾之Adam

Adam算法是两种优化算法优点的结合:

  • 适应性梯度算法(AdaGrad)为每一个参数保留一个学习率以提升在稀疏梯度(自然语言处理和计算机视觉问题)上的性能
  • 均方根传播(RMSProp)基于权值梯度最近的均值为每一个参数适应性地保留学习率。这意味着算法在非稳态和在线学习问题上具有很优秀的性能

其中m_t为梯度的一阶矩估计(类似于AdaGrad),v_t为梯度的二阶矩估计(类似于RMSProp)

\hat{m}_t\hat{v}_t分别为m_tv_t的偏差矫正

这样,每一次迭代的\theta更新为\theta_t \rightarrow \theta_{t-1}-\alpha\cdot \hat{m}_t/(\sqrt{\hat{v}_t}+\epsilon),其中的\epsilon是为了防止除0操作

默认的参数设置为:

  • \alpha=0.001
  • \beta_1=0.9
  • \beta_2=0.999
  • \epsilon=10^{-8}

回顾之AMSGrad

对比Adam,AMSGrad的主要改动为:

  • 基于算法简单性考量,去除了Adam的偏差矫正步骤
  • 仅当v_t>v_{t-1}时,才应用v_t ——这有助于避免收敛至次优解

算法流程为:

m_t=\beta_1m_{t-1}+(1-\beta_1)g_t

v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2

\hat{v}_t=\max(\hat{v}_{t-1}, v_t)

\theta_{t+1}=\theta_t-\frac{\eta }{\sqrt{\hat{v}_t}+\epsilon}m_t

论文内容

Abstract

像AdaGrad, RMSprop和Adam这样的自适应算法非常流行,但是和随机梯度下降SGD比起来,它们甚至不能收敛。最近提出的AMSGrad优化算法试图去解决这个问题,但是也没比现有的优化方法有多大的提升。本文提出了两个优化算法:

  • AdaBound——Adam的变体
  • AMSBound——AMSGrad的变体

这两个优化算法在学习率learning rate上应用了动态边界(dynamic bounds)机制。

 

Introduction

  • SGD (Robbins & Monro, 1951)
    • 优点:虽然很简单,但是在很多应用上都表现得很好
    • 缺点:在所有方向上都均匀地缩放梯度——>当训练数据非常稀疏时会导致表现较差,同时速度也不快
  • 为解决SGD的这个问题,各种自适应方法被提了出来,这些方法的普遍思路是用过去梯度均方的某种形式来调节梯度。这类方法包括Adam (Kingma & Lei Ba, 2015), AdaGrad (Duchi et al., 2011)和RMSprop (Tielema & Hinton, 2012)。Adam由于其快速训练的特性,成为了许多深度学习框架的默认优化方法。
  • 尽管这些自适应方法很流行,但是其泛化能力和样本外的表现能力还不如其非自适应的版本。自适应方法的特点是:通常在训练刚开始的时候非常快,但是到了未遇到的数据(测试集或者评估集)它的变现就停滞了。(Wilson et al., 2017)最近自然语言处理和计算机视觉方面的最优(state-of-the-art)工作也都是选择SGD(带momentum动量)的优化方法。
  • Reddi et al.(2018)提出了一个Adam的变体称为AMSGrad。但是AMSGrad在未见数据上的泛化能力似乎和Adam差不多。过大的learning rate会导致较差的泛化能力,而过小的learning rate会导致模型很难收敛。
  • 作者所提出的两个优化方法的思路是:在Adam和AMSGrad方法的学习率使用动态边界,其中下界和上界分别初始化为0和无穷大,它们平滑地收敛到一个恒定的最终步长。这两个新的变量可以看成是训练开始时的自适应方法,随着时间步长的增长平稳地转换为SGD(带动量)。这样能保证训练开始时较快的速度,同时在训练结束时也能有较好的泛化能力

 

Notations and Preliminaries

Notations

  • \theta_i\theta \in \mathbb{R}^d的第i个坐标
  • \theta^k\theta的k幂
  • \left \| \theta \right \|\theta的L2范数
  • \theta_{t, i}: \theta在第t个迭代的第i个坐标
  • \left \langle v,w \right \rangle: 向量vw的内积
  • v\odot w: 向量vw的元素乘积
  • v/w: 向量vw的元素除
  • \max(v,w), \min(v,w)向量vw的元素最大值(最小值)
  • S_+^d: 所有d \times d的正定矩阵集合
  • a/M: 对于向量a \in \mathbb{R}^d,正定矩阵M \in \mathbb{R}^{d \times d}a/M=M^{-1}a
  • \begin{matrix} \prod_{\mathcal{F},M}(y) \end{matrix}: 对M \in S_+^d的映射操作\begin{matrix} \prod_{\mathcal{F},M}(y) \end{matrix}定义为:\arg \min_{x \in \mathcal{F}} \left \| M^{1/2}(x-y) \right \|, \textup{for} \ y \in \mathbb{R}^d

Online convex programming

分析迭代优化方法的一个灵活框架是在线优化问题(online optimization problem)

公式描述可描述为算法和Loss的重复竞争:

  • 在step t,算法选择一个决定x_t \in \mathcal{F}, \textup{where} \ \mathcal{F} \subset \mathbb{R}^d
  • 选择一个凸损失函数f_t,算法x_t引起了损失f_t(x_t)
  • 总损失\begin{matrix}\sum _{t=1}^T f_t(x_t)\end{matrix}和固定决策最小值之间的差为regret \ R_T = \begin{matrix} \sum_{t=1} ^T f_t(x_t) - \min_{x \in \mathcal{F}} \sum_{t=1}^Tf_t(x_t)\end{matrix}
  • 假定可选集合\mathcal{F}有边界限定,\left \| \nabla f_t(x) \right \|_\infty是所有t \in [T]x \in \mathcal{F}的边界
  • 使得R_T=o(T)

A generic overview of optimization methods

  • 跟随Reddi et al. (2018)提供了一个封装了许多流行的自适应和非自适应方法的通用框架:
    • 对理解各个优化方法的属性很有用,但是Algorithm1 仍然很抽象(因为\phi _t: \mathcal{F}^t \rightarrow \mathbb{R}^d\psi_t: \mathcal{F}^d \rightarrow S^d_+没有明确定义)
  • 在上述框架下,总结了流行的优化方法:
    • Adam和RMSprop可以看成是AdaGrad的变体,前两个使用了指数移动平均作为\psi(t),而不是AdaGrad中使用的简单平均
    • RMSprop本质上是Adam\beta=0的简化版本
    • AMSGrad没有列在表格中,是因为其\psi(t)不是一个简简单单的表达式。\psi(t)可定义为\psi(t)=\textup{diag}(\hat{v}_t)\hat{v}_t通过以下递归过程获得\left\{\begin{aligned} & v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2\\ & \hat{\beta}_t=\max(\hat{v}_{t-1},v_t)\\ & \hat{v}_0=v_0=0 \end{aligned}\right.
    • \phi_t定义和Adam一样

 

The Non-Convergence Caused by Extreme Learning Rate

  • 推测Adam算法中过大或者国小的学习速率都是其泛化能力差的原因
  • 为证实推论,在CIFAR-10上使用了带Adam优化方法的ResNet-34并采样了几个weigts和bias的学习率(在不同的层上随机选择了9个3 \times 3卷积核以及最后线性层的bias):                                                                                                                                                                                          
    采样的weights和bias,这里取了学习率的对数。可以发现,模型在快要收敛时,学习率要么很小(<0.01),要么很大(>1000)
  • AMSGrad减小了过大学习率的影响,但是忽视了过小学习率这一方面的影响

Theorem 1

存在在线凸优化问题,对于任何初始step size \alpha,Adam优化有非零平均regret。即R_T/T \not \rightarrow 0 \ \textup{as} \ T\rightarrow \infty

Theorem 2

对任意常数\beta_1,\beta_2 \in [0,1)满足\beta_1 < \sqrt{\beta_2},存在在线凸优化问题对于任意初始step size \alpha,Adam优化有非零平均regret。即R_T/T \not \rightarrow 0 \ \textup{as} \ T\rightarrow \infty

Theorem 3

对任意常数\beta_1,\beta_2 \in [0,1)满足\beta_1 < \sqrt{\beta_2},存在随机凸优化问题对于任意初始step size \alpha,Adam不能收敛到最优解

 

Adaptice Mement Estimation with Dynamic Bound

作者提出算法的思路是:组合自适应算法训练初期速度较快的优点和SGD最终泛化能力较好的优点。也就是该算法训练初期表现得像自适应优化方法,训练末期表现得像SGD。

 其中, \eta _l(t)是一个当t=0从0开始的非下降函数,逐渐收敛到\alpha^*\eta _u(t)是一个当t=0\infty开始的非上升函数,逐渐收敛到\alpha^*.本文中这两个函数通过以下公式计算:

\eta _l(t)=0.1- \frac{0.1}{(1-\beta_2)t}

\eta _u(t)=0.1+ \frac{0.1}{(1-\beta_2)t}

Theorem 4 & Corollary 4.1

定理4和推论4.1主要说明的是,AdaBound的regret上限为O(\sqrt{T} )

 

Experiments

实验主要集中在三个任务上:MNIST人类,CIFAR-10分类,Penn Treebank语言建模

Feedforward Neural Network

在MNIST数据集上的多分类表现为:

训练集上,所有的算法基本上ACC都达到了100%,在测试集上SGD要比Adam和AMSGrada好一点,AdaBound和AMSBound要比它们的原型要好一点。

Convolutional Neural Network

在CIFAR-10上使用了DenseNet-121 (Huang et al., 2017)和ResNet-34 (He et al., 2016)。实验设置了200个epoch,在第150个epoch时将学习率减小10

DenseNet

训练开始时,自适应优化方法的速度快,表现更好,但是当150epoch将学习率减小时,SGDM就超过了自适应优化方法。可以看出AdaBound和AMSBound有着自适应算法一样的优化速度,同时比SGDM在测试集上的准确率还要高。此外,AdaBound和AMSBound在测试集上的精度也比它们的原型高了2%.

ResNet

基本结论和DenseNet上的实验结果差不多。测试集上AdaBound和AMSBound的精度甚至比SGDM高1%.

Recurrent Neural Network

CONTACT INFORMATION

E-mail: [email protected]

QQ: 46611253

猜你喜欢

转载自blog.csdn.net/qq_30241709/article/details/88101430
今日推荐