优化算法-2:动量梯度下降法

本文来自于网易云课堂

指数加权平均

指数加权平均在统计学中也称为指数加权移动平均。为了更好的理解这个术语,我们以温度随天数变化为例介绍。
优化算法-2:动量梯度下降法
上图是温度随天数变化的散点图,为了计算温度随天数的变化趋势,我们引入公式:
vt=βvt1+(1β)θtθt,vt
我们可以近似的将vt看做是11β天数的平均温度。

  • β为0.9。前一天的权重为0.9,当天的权重为0.1,通过计算可知这大约是10天的而平均温度。如红线所示。
    优化算法-2:动量梯度下降法
  • β为0.98。前一天的权重为0.98,当天的权重为0.02,通过计算可知这大约是50天的而平均温度。如绿线所示。由于平均的天数太多,可以看到曲线更平缓,缺点是曲线向右动。为了平均更多的温度值,公式计算的时候适应的更缓慢一些,以至于出现了一定的延迟。
    优化算法-2:动量梯度下降法
  • β为0.5。前一天的权重为0.5,当天的权重为0.5,通过计算可知这大约是2天的而平均温度。如黄线所示。由于仅平均了2天的气温,平均的数据太少,所以曲线有更多的噪声,更有可能出现异常值,但这个曲线能够更快地适应温度变化。
    优化算法-2:动量梯度下降法

指数加权平均是怎么起作用的呢?

优化算法-2:动量梯度下降法
那么对于v100来说,我们可以得到:
v100=0.1θ100+0.9(0.1θ99+0.9(0.1θ98+....))
v100=0.1θ100+0.10.9θ99+0.10.92θ98+...
这个过程和卷积有点相似,用图像来表示的话,就是2个图像相乘,如下图所示。
优化算法-2:动量梯度下降法
可以看到其过程是原始数据与指数衰减函数相乘求和,故称之为指数加权平均。那么到底需要多少天的平均呢?实际上,0.910大约是0.35,大概等于1e。一般来说,如果有(1ϵ)1ϵ=1e,换句话说,下降到初始值的大约13的天数就是选定的数。

偏差修正

β取0.98的时候,实际上并不是绿色曲线,而是紫色曲线。可以看到,紫色曲线初始值较低。因为v0=0v1=0.02θ1v2=0.0196θ1+0.02θ2 ,这时计算的值并不准。
如何修正呢?可以采用vt1βt来代替vt,例如,对于v2来说,1βt = 0.039,那么v2=0.0196θ1+0.02θ20.039,就可以修正偏差。而随着天数的增加,1βt逐渐接近为1,基本上不再产生影响,此时绿线和紫线就基本重合了。
优化算法-2:动量梯度下降法
在机器学习中,在计算加权指数平均的大部分时候,大家不在乎执行修正偏差,因为大部分人宁愿熬过初始时期,拿到具有偏差的估测然后继续算下去。如果你关心初始偏差,在刚开始计算的时候,偏差修正能帮你获得更准确的估测

动量梯度下降法(momentum)

动量梯度下降法下降速度几乎总是优于标准梯度下降法,基本思想就是计算梯度指数加权平均,并利用该梯度更新你的权重。
优化算法-2:动量梯度下降法
当我们采用标准梯度下降法的时候,我们可以看到梯度的来回波动减少了梯度下降法的速度,你就无法使用更大的学习率,因为有可能偏离函数的范围。我们希望的是在纵轴上能减少波动而在横轴上能加速接近中心点。那么动量梯度下降法可以这么实现:
优化算法-2:动量梯度下降法
那么会表现出这样的样子:
优化算法-2:动量梯度下降法