adam优化算法_机器学习中的优化算法(2)-Momentum, RMSProp, AdaM

本文深入探讨了Momentum、RMSProp和AdaM优化算法,从不同角度阐述了它们的工作原理。Momentum通过累积梯度实现平滑更新,RMSProp利用梯度平方根的指数移动平均来适应性地调整更新幅度,而AdaM结合了Momentum和RMSProp的优点,自适应地调整学习率,尤其适合非平稳环境。
摘要由CSDN通过智能技术生成
郝曌骏:机器学习中的优化算法(1)​zhuanlan.zhihu.com
8acb930d0f358a1afb1fb8f02f32a593.png

第一篇介绍了这系列文章的思路,罗列了重要的数学记号,并讲了标准梯度下降法(GD, Gradient Descent)和Momentum机制.今天我们换个角度来解释Momentum,然后介绍RMSProp(Root Mean Square Propagation)和AdaM(Adaptive Moment Algo).

换角度看Momentum

第一篇中讲到带有Momentum的GD的迭代方法为

equation?tex=%5CDelta+x_t+%3D++-+%5Ceta%2A+g_t+%2B+%5Crho+%2A+%5CDelta+x_%7Bt-1%7D

这个式子可以帮助我们更好的理解“momentum”.

不过它也可以改写为

equation?tex=tmp_%7Bt%2B1%7D+%3D+g_t+%2B+%5Crho+%2A+tmp_t++%5C%5C+%28+%5Ctext%7B%E8%AE%B0%E4%BD%8F%7Dtmp_t%3D+-+%5Cfrac%7B1%7D%7B%5Ceta%7D+%2A+%5CDelta+x_%7Bt-1%7D+%29+%5C%5C+%5CDelta+x_t+%3D++-+%5Ceta+%2A+tmp_%7Bt%2B1%7D

进一步改写为

equation?tex=v_%7Bt%2B1%7D+%3D++%5Cbeta_1+%2A+v_t+%2B++%281+-+%5Cbeta_1%29+%2A+g_t+

equation?tex=%5CDelta+x_t+%3D+-+%5Ceta_2+%2A+v_%7Bt%2B1%7D

两者完全等价,只需要

equation?tex=%5Cbeta_1+%3D+%5Cfrac%7B%5Crho%7D%7B1+%2B+%5Crho%7D%2C++%5Ceta_2+%3D+%5Ceta+%2A%281+%2B+%5Crho%29

我们扩展下

equation?tex=+v_%7Bt%2B1%7D++

equation?tex=%3D+%5Cbeta_1+%2A+v_t+%2B+%281+-+%5Cbeta_1%29+%2A+g_t++

equation?tex=%3D+%28%5Cbeta_1%29%5E2+%2A+v_%7Bt-1%7D+%2B+%5Cbeta_1+%2A+%281-%5Cbeta_1%29+%2A+g_%7Bt-1%7D+%2B++%281+-+%5Cbeta_1%29+%2A+g_t+

equation?tex=%3D++%28%5Cbeta_1%29%5E3+%2A+v_%7Bt-2%7D+%2B++%28%5Cbeta_1%29%5E2+%2A+%281-%5Cbeta_1%29+%2A+g_%7Bt-2%7D+%2B+%5Cbeta_1+%2A+%281-%5Cbeta_1%29+%2A+g_%7Bt-1%7D+%2B++%281+-+%5Cbeta_1%29+%2A+g_t+

equation?tex=%3D+%28%5Cbeta_1%29%5E%7Bt%2B1%7D+%2A+v_0+%2B++%281+-+%5Cbeta_1+%29+%2A+%5Csum_%7B%5Ctau%3D0%7D%5Et+%28%5Cbeta_1%29%5E%7B%5Ctau%7D++%2A+g_%7Bt-%5Ctau%7D

因为

equation?tex=+%281+-+%5Cbeta_1+%29+%2A+%5Csum_%7B%5Ctau%3D0%7D%5Et+%28%5Cbeta_1%29%5E%7B%5Ctau%7D+%3D+1+-+%28%5Cbeta_1%29%5E%7Bt%2B1%7D

equation?tex=v_0+%3D+0

我们就会发现Momentum每次迭代的方向是当次迭代为止所有梯度

equation?tex=%5C%7Bg_%7B%5Ctau%7D+%5C%7D_%7B%5Ctau%3D0%7D%5Et+%5Ccup+%5C%7B0%5C%7D的指数加权平均!做过时序模型的一定不陌生.而均值在统计学中叫做一阶距.

RMSProp (Root Mean Square Propagation)

RMSProp来源于Hinton

Coursera神经网络课程的课后作业​www.coursera.org

和Momentum一样,RMSProp也可以从多个角度理解[1].

首先给出更新公式

equation?tex=w_%7Bt%2B1%7D+%3D+%5Cbeta_2+%2A+w_t+%2B+%281+-+%5Cbeta_2%29+%2A+%28g_t%29%5E2

equation?tex=%5CDelta+x_t+%3D+-%5Ceta+%2A+%5Cfrac%7B1%7D%7B%5Csqrt%7Bw_%7Bt%2B1%7D%7D%2B+%5Cepsilon%7D+%2A+g_t

其中

  1. equation?tex=%5Csqrt%7Bw_%7Bt%2B1%7D%7D+
    equation?tex=w_%7Bt%2B1%7D 向量各个维度(element-wise)的平方根,比如
    equation?tex=%5Csqrt%7B%281%2C+4%2C+9%29%7D+%3D+%281%2C+2%2C+3%29
  2. equation?tex=%5Cepsilon 是很小的常数,用来稳定数值计算(当
    equation?tex=%5Csqrt%7Bw_%7Bt%2B1%7D%7D+ 某一维度很小时)

类似之前对

equation?tex=v_%7Bt%2B1%7D 的展开,我们同样可以得到

equation?tex=w_%7Bt%2B1%7D+%3D+%28%5Cbeta_2%29%5E%7Bt%2B1%7D+%2A+w_0+%2B++%281+-+%5Cbeta_2+%29+%2A+%5Csum_%7B%5Ctau%3D0%7D%5Et+%28%5Cbeta_2%29%5E%7B%5Ctau%7D++%2A+%28g_%7Bt-%5Ctau%7D%29%5E2

也就是

equation?tex=w_%7Bt%2B1%7D 是直到当前迭代为止所有梯度的平方的平均.这也解释了为什么叫做
Root Mean Square.

RMSProp达到的效果是对幅度的自适应调整:

  • 之前更新幅度大的维度上更新幅度变小
  • 之前更新幅度不大的维度上更新幅度相对大些

那为什么这个效果很有效,在神经网络优化中脱颖而出呢?据说很大一部分原因是

每次用mini-batch迭代,不同的参数梯度可能相差几个量级,通过梯度的平方的指数加权平均,可以有效得不同参数在多次迭代中的量级差,效果类似于批标准化(BN, Batch Normalization,每一次mini-batch迭代,该批每个参数都先经过仿射变换使得均值为0,方差为1).

此外RMSProp自称在non-stationary的环境下表现很好.所谓non-stationary环境就是随机变量的统计量随时间改变的性质.

AdaM(Adaptive Moment estimates)

AdaM(Adaptive Moment estimates)是一种结合了Momentum和RMSProp的自适应学习率方法.从它的迭代可以看出

b937f845030ee81237e371e862783c5b.png

3446407e4e18f31a9f0d20b691f63a3d.png

equation?tex=v%5E%7Bcorrected%7D_%7Bt%2B1%7D+%3D+%5Cfrac%7Bv_%7Bt%2B1%7D%7D%7B1-%5Cbeta%5E%7Bt%2B1%7D_1%7D
equation?tex=w%5E%7Bcorrected%7D_%7Bt%2B1%7D+%3D+%5Cfrac%7Bw_%7Bt%2B1%7D%7D%7B1-%5Cbeta%5E%7Bt%2B1%7D_2%7D
equation?tex=%5CDelta+x_t+%3D+-+%5Ceta+%2A+%5Cfrac%7Bv%5E%7Bcorrected%7D_%7Bt%2B1%7D%7D%7B%5Csqrt%7Bw%5E%7Bcorrected%7D_%7Bt%2B1%7D%7D+%2B+%5Cepsilon%7D

其中
equation?tex=v%5E%7Bcorrected%7D_%7Bt%2B1%7D 为梯度的一阶矩(均值),
equation?tex=w%5E%7Bcorrected%7D_%7Bt%2B1%7D 为梯度的二阶矩(未中心化的方差),所以叫做Adaptive Moment estimates.

如果说Momentum是用一阶矩来估计梯度方向,RMSProp用二阶矩来估计更新幅度,那AdaM就是结合一阶矩和二阶矩来同时估计梯度方向和更新幅度.

参考

  1. ^从RPROP和AdaGrad角度来理解RMSProp https://towardsdatascience.com/understanding-rmsprop-faster-neural-network-learning-62e116fcf29a?gi=35550bcbd74e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值