开丰娱乐-开丰注册登录绿色站

0898-08980898  13876453617

网站公告
诚信为本,市场在变,诚信永远不变...

分享本站:

开丰资讯

0898-08980898
传真:0000-1234-5678
邮件:admin@youweb.com
客服:

行业新闻

您当前的位置: 首页 > 开丰资讯 > 行业新闻

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

点击数:     更新时间:2024-03-04 12:46:05

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

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)

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

假设\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来确定迭代步长的上界,以便在一定次数内到达最优解。

通过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也是同理。

我们通过分析其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的迭代算法,其基本思想是在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{	heta}_t \leftarrow \beta_2 \cdot \bar{	heta}_{t-1} + (1-\beta_2)	heta_t,with \ 	heta_0 = 0

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

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


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

客服头部
0898-08980898
13876453617

网站二维码

平台注册入口