优化算法-2:动量梯度下降法
本文来自于网易云课堂
指数加权平均
指数加权平均在统计学中也称为指数加权移动平均。为了更好的理解这个术语,我们以温度随天数变化为例介绍。
上图是温度随天数变化的散点图,为了计算温度随天数的变化趋势,我们引入公式:
我们可以近似的将看做是天数的平均温度。
- 取为0.9。前一天的权重为0.9,当天的权重为0.1,通过计算可知这大约是10天的而平均温度。如红线所示。
- 取为0.98。前一天的权重为0.98,当天的权重为0.02,通过计算可知这大约是50天的而平均温度。如绿线所示。由于平均的天数太多,可以看到曲线更平缓,缺点是曲线向右动。为了平均更多的温度值,公式计算的时候适应的更缓慢一些,以至于出现了一定的延迟。
- 取为0.5。前一天的权重为0.5,当天的权重为0.5,通过计算可知这大约是2天的而平均温度。如黄线所示。由于仅平均了2天的气温,平均的数据太少,所以曲线有更多的噪声,更有可能出现异常值,但这个曲线能够更快地适应温度变化。
指数加权平均是怎么起作用的呢?
那么对于来说,我们可以得到:
这个过程和卷积有点相似,用图像来表示的话,就是2个图像相乘,如下图所示。
可以看到其过程是原始数据与指数衰减函数相乘求和,故称之为指数加权平均。那么到底需要多少天的平均呢?实际上,大约是0.35,大概等于。一般来说,如果有,换句话说,下降到初始值的大约的天数就是选定的数。
偏差修正
当取0.98的时候,实际上并不是绿色曲线,而是紫色曲线。可以看到,紫色曲线初始值较低。因为,, ,这时计算的值并不准。
如何修正呢?可以采用来代替,例如,对于来说, = 0.039,那么,就可以修正偏差。而随着天数的增加,逐渐接近为1,基本上不再产生影响,此时绿线和紫线就基本重合了。
在机器学习中,在计算加权指数平均的大部分时候,大家不在乎执行修正偏差,因为大部分人宁愿熬过初始时期,拿到具有偏差的估测然后继续算下去。如果你关心初始偏差,在刚开始计算的时候,偏差修正能帮你获得更准确的估测
动量梯度下降法(momentum)
动量梯度下降法下降速度几乎总是优于标准梯度下降法,基本思想就是计算梯度指数加权平均,并利用该梯度更新你的权重。
当我们采用标准梯度下降法的时候,我们可以看到梯度的来回波动减少了梯度下降法的速度,你就无法使用更大的学习率,因为有可能偏离函数的范围。我们希望的是在纵轴上能减少波动而在横轴上能加速接近中心点。那么动量梯度下降法可以这么实现:
那么会表现出这样的样子: