深度学习基础—动量梯度下降法

1.算法原理

        动量梯度下降法就是在梯度下降法的基础上,使用指数加权移动平均值,来平均梯度,这种算法比梯度下降法更快。

        如上图,损失函数的最小值是红点,椭圆是损失函数的图像,梯度下降法就像蓝线和紫线(学习率高,因此计算容易超出范围)一样,摆动着朝最小值移动。但是这种优化算法的计算步骤很多,并且靠近最小值,梯度比较小,此时算法速度减慢,也无法使用更高的学习率(否则就会出现紫色的情况)。

        从另一角度讨论,我们希望算法的运行轨迹是x轴处更快点,y轴更慢点,不希望摆动太多(增加计算),因此这就启发我们寻找更加平滑的优化路径。于是指数加权移动平均值就排上用场,因为它可以平滑计算,同时也能反应趋势。

2.算法流程

        在梯度下降法或Mini-batch 梯度下降法中添加指数加权移动平均值深度学习基础—指数加权移动平均值icon-default.png?t=N7T8http://t.csdnimg.cn/ZY628代替原来的权重更新,得到的算法如下:

        这个算法存在两个超参数:学习率a和参数b,参数b通常取值0.9。不加偏差修正的原因是b=0.9表示平均了10次的梯度,我们不需要准确估计网络初期的梯度,而10次迭代后就已经越过了这个时期,此时预估的梯度是比较准确的,因此不需要偏差修正。

        结合开始的图可以发现,对于y轴方向,正负值抵消,梯度的估计值接近0,因此减小了摆动,而x轴方向微分始终朝向最小值方向,因此优化更加平缓的向最小值方向移动,因此减少了计算,加快了收敛速度。对于接近最小值的地方,该算法预估出来的梯度值更大,因此也加快了速度。

3.如何理解

        如何理解算法:通常优化函数是一个碗状形状,最小值在碗底。优化路径像从碗边滚下的小球,小球的加速度就是梯度(dW、db),小球的速度就是动量项(VdW、Vdb)。梯度下降法更像离散的运动轨迹,因为小球是每计算出一个优化值,就向那个地方直接跳跃。而动量梯度下降法是连续的运动轨迹,指数加权移动平均值平滑了梯度,进而速度也更加平滑,小球有了连续运动的惯性,因此赋予了小球动量。这也是动量梯度下降法名字的由来。

        注意:有些文献去掉了(1-b),这也不错,但是去掉(1-b)后往往会导致VdW和Vdb扩大,于是可能需要调整学习率a,从而控制权重更新不那么快。这更加繁琐,至于使用哪个公式,顺手就行。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值