文献阅读《ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION》

一、Adam介绍

Adam是一种基于低阶矩的自适应随机目标函数的一阶梯度优化算法。它具有如下优点:对梯度的缩放具有不变性;既适用于数据或参数较大的问题,也同样适用于稀疏梯度问题;步长能够自动退火等。相较于SGD、RMSProp以及AdaGrad而言,在一般优化问题上都具有良好的表现。

二、Adam的算法原理

1.算法简述

Adam算法是对梯度的一阶矩、二阶矩进行估计并将其应用于参数更新的一种算法。

Adam算法的实现方式

Adam算法的实现如上图所示,其中m_tv_t分别是对梯度的一阶矩和二阶矩的估计,并由超参数\beta _1\beta _2控制衰减。但在算法中,如果初始化m_0v_0为0,会导致矩估计接近0(尤其是当\beta _2接近1时),因此我们需要进行偏差矫正。

上述算法的后三行可简化为如下形式并不影响运算结果:

 \alpha _t = \alpha \cdot \sqrt{1-\beta _2 ^t} / (1 - \beta_1^t)

\theta_t \leftarrow \theta _{t-1} -\alpha_t \cdot m_t / (\sqrt{v_t} + \hat{ \epsilon })

2.Adam的步长

假设\epsilon = 0,对于参数更新的步长可写作\Delta _t = \alpha \cdot \hat{m_t} / \sqrt{\hat{v_t}},它具有上界

when (1-\beta_1) > \sqrt{1-\beta_2}: \left | \Delta_t \right | \leq \alpha \cdot (1-\beta_1)/\sqrt{1-\beta_2}

else: \left | \Delta_t \right | \leq \alpha

第一种情况仅会在稀疏性最严重的情况下发生,即除了当前时间步外,其余时间梯度都为0。这里补充证明,假设只有t时间步时,梯度不为0,则对于m_tv_t有:

m_t = (1-\beta_1)\cdot g_t

v_t = (1-\beta_2) \cdot g_t^2

\frac{\hat{m_t}}{\sqrt{\hat{v_t}}} = \frac{1-\beta_1}{1-\beta_1^t} \cdot \frac{\sqrt{1-\beta_2^t}}{1-\beta_2}

 由条件(1-\beta_1) > \sqrt{1-\beta_2}知随t增大,\Delta _t减小,因此在t=1时具有上界。

对于一般情况,我们假设梯度具有先验\left |\mathbb{E}[g] / \mathbb{E}[g^2]\right | \leq 1,此时步长满足\left |\Delta_t \right |\lesssim\alpha,因此我们可以通过设置\alpha来确定迭代步长的上界,以便在一定次数内到达最优解。

3.初始化偏差矫正

通过v_t的迭代公式,我们可以计算出v_t与前时刻所有梯度之间的关系

v_t = (1 - \beta_2)\sum_{i=1}^{t} \beta _2 ^{t-i} \cdot g_i^2

我们想知道vt与真实二阶矩之间相差多少,对其求期望,得到:

如果二阶矩为静态时,ζ=0,ζ不为0时,我们可以选择\beta _1来使过去较远的梯度衰减到比较小的权重,此时ζ也很小。因此我们通过上述结果可知,通过v_t除以这个值,可以矫正偏差。m_t也是同理。

 4.收敛性分析

我们通过分析其regret bound来分析它的收敛性,regret可以被定义为每一步预测的参数与可行域中最优参数差值的总和:

作者在文中证明了如下定理:

 其中\sum_{i=1}^{d}\left \| g_{1:T,i} \right \|_2 \ll dG_\infty \sqrt{T}以及\sum_{i=1}^{d}\sqrt{T\hat{v}_{T,i})} \leq dG_\infty \sqrt{T},因此可以证明R(T)的上界为O(\sqrt{T})

对regret求均值,得到

\frac{R(T)}{T} = O(\frac{1}{\sqrt{T}})

\lim_{T\rightarrow \infty } \frac{R(T)}{T}=0

可证其收敛性。

三、实验部分

该部分,作者分别在逻辑回归、多层神经网络以及卷积神经网络上比较了几种迭代算法的优劣,可以从图中看出Adam在以上机器学习模型中均有比较好的表现。

 

 此外,作者还研究了偏差矫正对优化结果的影响,从图中可以看出,当不存在偏差矫正项时,\beta_2接近1时会导致训练的不稳定,尤其是在训练初期。

四、AdaMax

作者在本文中还提出了AdaMax的迭代算法,其基本思想是在Adam的基础上进行进一步的拓展。Adam的二阶矩项采用了梯度的L2范数进行更新,作者认为可将L2范数一般化至LP范数,那么v_t的表达式可写作:

 当p\rightarrow \infty,可以得到一个更为简单的算法,在这里定义u_t满足:

 将上式写成递归式,可表达为

u_t = \max(\beta_2 \cdot u_{t-1}, \left | g_t \right |)

因此,AdaMax算法可改写称如下形式:

此外,作者还认为可以通过平均来使Adam以及AdaMax获得更好的泛化能力,即在算法中添加如下两行:

\bar{\theta}_t \leftarrow \beta_2 \cdot \bar{\theta}_{t-1} + (1-\beta_2)\theta_t,with \ \theta_0 = 0

\hat{\theta}_t = \bar{\theta}_t/(1-\beta_2^t)

五、总结

Adam算法是在AdaGrad及RMSProp等算法的基础上进一步改良的算法,首先它将动量并入到梯度的一阶矩估计中,同时增加了二阶矩(非中心方差)的估计。相比RMSProp而言,增加了偏差矫正项,避免了二阶矩估计在训练初期产生很大的偏差。Adam算法已经成为了当下比较常用的算法之一,在一般问题的优化上,都具有比较良好的表现。


论文地址:Adam: A Method for Stochastic Optimization (arxiv.org)

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值