人工智能

AI数学基础22——动量梯度下降法

2018-05-25  本文已影响107人  LabVIEW_Python

复习一下上一节《AI数学基础21——指数加权移动平均》,为了解决初始化S0=0导致前几个平均值的不准的影响,引入了指数加权平均的偏差修正,如下所示:

在深度学习训练实践中,我们并不在意初始几个平均值不太准的问题,因为经过几次迭代后,平均值就准了,所以,在编程实践中,几乎大部分人都直接使用没有偏差修正的指数加权平均,如下:

移动加权平均的一个典型效果就是,让上下抖动很厉害的信号变得平滑,如下图所示

气温变化图

图中,蓝色的散点是每天的温度,可以看出变化和抖动很厉害;绿色曲线是β=0.9时的移动加权平均,可以很明显的看出,经过移动加权平均后,温度曲线变得非常平滑了。

移动平均的窗口大小N,可以由一个经验公式算出

移动平均的窗口大小N

β=0.9时,移动平均的窗口大小N=10,意味着是10天的气温加权移动平均值。

有了上面的概念后,看看梯度下降法会遇到什么问题。假设,需要优化成本函数,函数形状如下图所示,红点代表最小值的位置。蓝点代表起点位置,由于成本函数成椭圆形,纵轴上会出现很大的抖动,这时候,学习率还不能设太大,一旦太大,会超出成本函数的曲线,如紫色曲线所示。

所以,抖动造成了学习率不能设太大,由于抖动前进,而不是理想状态的直线前进,所以收敛速度会很慢。

为了解决这个问题,我们希望在纵轴方向的抖动变得平滑(横轴方向基本没有抖动),这样学习率可以设的比较大,收敛速度会加快。

上面说了,移动加权平均的一个典型效果就是,让上下抖动很厉害的信号变得平滑,所以,我们引入移动加权平均还计算当前的dW

这样,只要有抖动的地方,就会变得平滑,学习速率可以设大一些了,收敛速度会加快。这就好像梯度下降法获得了一个动量(Momentum),跟普通梯度下降法相比,引入了移动加权平均的方法叫动量梯度下降法(Gradient descent with Momentum)

另外,β=0.9是一个很好的经验值,通常效果不错;不知道β设为多少的时候,可以设为0.9

参考文献:Andrew Ng《Gradient Descent with Momentum》

上一篇 下一篇

猜你喜欢

热点阅读