深度学习-*-梯度优化算法及代码实例

1 梯度下降简单说明

想必大家对梯度下降或多或少有所了解,这里对他的原理就不再多说(其他教程说的比我好多了),只给出下列公式(按照吴恩达的深度学习课程中的公式): W : = W − α ∗ d W W:=W-\alpha*dW W:=WαdW b : = b − α ∗ d b b:=b-\alpha*db b:=bαdb
上述公式中dW与db为权重W与偏置b的梯度方向, α \alpha α为步长/学习速率,即一个超参。我们的任务就是通过大量数据的学习,来逼近真实的W和b。

1.1 随机梯度下降

该方法简写做SGD。通常,在数据集较少的情况下,我们一般使用批梯度下降,也就是用所有的数据集来进行求解。当数据量较多时,批梯度下降就不再适合,因为速度超级慢。所以我们在每次迭代时随机选取一个样本点来进行权重W、偏置b的更新。这样能保证权重随着迭代不断地逼近真实值。但要警惕,每次只是依靠当前一个数据集,容易陷入局部极小。

1.2 Mini-Batch梯度下降

此种方法可以看做批梯度下降与SGD的折中方法:在SGD中每次迭代时,不是选取1个样本点,而是选取M个样本点来进行梯度下降。此种方法的好处在于:若数据集中有一些噪音数据,可以有效的平均噪音数据的影响,一定程度上避免陷入局部极小值。据吴恩达深度学习课程介绍,M的选取也是有经验借鉴的。若数据集数量N<=2000,则M=1即可。若N很大,那么M的取值可以取2的K次方,即M={32,64,128,256,512}。

1.3 Momentum梯度下降

在说明此种方法之前,首先需要了解什么是指数加权平均。
假设有数据 d 1 , d 2 , . . . , d 100 d_{1},d_{2},...,d_{100} d1,d2,...,d100,他们的平均数为:
a 100 = d 1 + d 2 + . . . + d 100 100   ( 1.1 ) a_{100}=\frac{d_{1}+d_{2}+...+d_{100}}{100} \ (1.1) a100=100d1+d2+...+d100 (1.1)
若我们按照公式:
v 100 = β ∗ v 99 + ( 1 − β ) ∗ d 100 v_{100}=\beta*v_{99}+(1-\beta)*d_{100} v100=βv99+(1β)d100
v 99 = β ∗ v 98 + ( 1 − β ) ∗ d 99 v_{99}=\beta*v_{98}+(1-\beta)*d_{99} v99=βv98+(1β)d99
. . . ... ...
v 1 = β ∗ v 0 + ( 1 − β ) ∗ d 1 v_{1}=\beta*v_{0}+(1-\beta)*d_{1} v1=βv0+(1β)d1
对第一式化简可得 v 100 = ( 1 − β ) ∗ d 100 + ( 1 − β ) ∗ β ∗ d 99 + ( 1 − β ) ∗ β 2 ∗ d 98 + . . . + ( 1 − β ) ∗ β 99 ∗ d 1   ( 1.2 ) v_{100}=(1-\beta)*d_{100}+(1-\beta)*\beta*d_{99}+(1-\beta)*\beta^2*d_{98}+...+(1-\beta)*\beta^{99}*d_{1} \ (1.2) v100=(1β)d100+(1β)βd99+(1β)β2d98+...+(1β)β99d1 (1.2)
通过(1.1)(1.2)之间的比较可以看到,(1.1)中每一项的权重都是一样的,也就是说每一项对平均值的贡献同样重要。而(1.2)中,每一项都不同,尤其是各数值的加权影响力随时间呈指数式递减,时间越靠近当前时刻的数据加权影响力越大。一般我们取 β \beta β为0.9(详细的介绍请看下面参考文献)
把该思想应用到梯度下降中,就发明了动量梯度下降(Momentum),在每次迭代时需要先计算一下当前的动量梯度,然后用此动量梯度来进行更新权重。注意:我们需要设定初始的动量梯度 v 0 v_{0} v0为0,此为冷启动问题,有时为了消除0的影响需要进行偏差修正:每次得到的 v v v除以 1 −

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值