[深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 6笔记

Lecture 6 Training Neural Networks,Part 2

多种梯度下降优化方式

SGD

本节讨论多种梯度下降的优化方式,之前我们着重讲了随机梯度下降SGD方式,这是一种很容易理解的梯度下降方式,但是,其实SGD方式在某些特定情况会很慢,比如,当数据处于下图这种椭圆形式的梯度时,SGD可能沿浅维度进展非常缓慢,并且沿陡峭方向抖动,虽然下降到了极小值点,但是速度极慢:
在这里插入图片描述
还有其他两种情况,SGD都到不了全局极小值点,比如当SGD运行到局部极小值点与鞍点时,梯度下降为0,SGD被卡住,并且其实在多维数据中,鞍点情况极为常见,这里说一下局部极小值点,在越来越多的研究表明,当你的规模越大时,局部极小值与全局极小值会越来越接近,这也是一个对模型设计有益现象:
在这里插入图片描述

SGD + Momentum

动量(Momentum)更新是另一个方法,这个方法在深度网络上几乎总能得到更好的收敛速度。该方法可以看成是从物理角度上对于最优化问题得到的启发。损失值可以理解为是山的高度(因此高度势能是 U = m g h U=mgh U=mgh,所以有 U ∝ h U\propto h Uh)。用随机数字初始化参数等同于在某个位置给质点设定初始速度为0。这样最优化过程可以看做是模拟参数向量(即质点)在地形上滚动的过程。因为作用于质点的力与梯度的潜在能量( F = − ∇ U F=-\nabla U F=U)有关,质点所受的力就是损失函数的(负)梯度。还有,因为 F = m a F=ma F=ma,所以在这个观点下(负)梯度与质点的加速度是成比例的。

注意这个理解和上面的随机梯度下降(SGD)是不同的,在普通版本中,梯度直接影响位置。而在这个版本的更新中,物理观点建议梯度只是影响速度,然后速度再影响位置:
在这里插入图片描述
这里将速度初始化为0,还有一个参数rho,这个参数在最优化的过程中被看做动量(一般值设为0.9),但其物理意义与摩擦系数更一致。这个变量有效地抑制了速度,降低了系统的动能,不然质点在山底永远不会停下来。通过交叉验证,这个参数通常设为[0.5,0.9,0.95,0.99]中的一个。这个动量也可以随时间慢慢变化改善效果,一个典型的设置是刚开始将动量设为0.5而在后面的多个周期(epoch)中慢慢提升到0.99。

还有另一种解释方法:在普通的梯度下降法 x = x − V x =x- V x=xV中,每次 x x x的更新量 V V V V = d x ∗ λ V = dx * λ V=dxλ;

当使用动量时, V V V考虑为本次的梯度下降量与部分上次更新量的矢量和,即 − d W ∗ λ -dW*λ dWλ与上次 x x x的更新量 V V V乘以一个介于[0, 1]的系数momemtum的和,即: V = d W ∗ λ + V ∗ m o m e m t u m V = dW * λ+ V*momemtum V=dW

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值