优化算法--深度学习Lesson2--week2

在大数据上进行深度学习的速度很慢,因此我们需要学习一些方法来加快深度学习的速度。

1batch vs. mini-batch梯度下降

1.什么是mini-batch?
向量化能够使得我们更快地处理输入X和输出Y,可是当输入样本量太大时,比如m=5000000,梯度下降的速度仍旧会比较慢。这时可以把训练集分割为小一点的子训练集,这些子集称为mini-batch,比如1~1000为第一个mini-batch,符号为X{1},那么一共有5000个mini-batch,Y也是如此。每个mini-batch的符号为X{t},Y{t}

2.几种梯度下降的性能。PS:深度学习中的SGD指的就是mini-batch gredient descent
使用mini-batch gradient descent需要将batch gradient descent分解为T次mini-batch梯度下降。
优化算法--深度学习Lesson2--week2

batch size name 特点
size=m batch.. 向量化,一次迭代需要长时间
size=T mini batch.. 既有向量化带来的速度提升,又使得梯度下降的速度变快
size=1 stochastic.. 失去了向量化带来的优势

注意:随机梯度下降和mini-batch永远不会收敛,只是会在最小值附近。

3.mini-batch的size怎么选?
一般选择2的整数次幂,{64,128,256,512}.

2指数加权平均(exponentially weighted average)

1.概念
优化算法--深度学习Lesson2--week2
每一天的均值Vt=βVt1+(1β)θt,计算出的均值Vt大约是1/(1β)天的均值。所以β越接近1,均值曲线越平滑,如绿色曲线,越接近0波动越大,如黄色曲线。
β=0.9,我们将公式展开,代入每天的温度,可以计算出与当前值相差10天的温度值的权重为当天权重的0.9100.351e,也就是说它的权重为当前天的1/3,我们不再考虑权重小于当前1/3的温度值。因此计算均值时,是将公式βn1e近似为n=11β

2.优势
使用指数加权平均来计算均值的好处是不需要存储每一天的数据,它的近似计算均值的方法只需要每次取出一天的均值与之前的均值做加权计算就行了。在计算机中实现也十分简单:
v=0
repeat{
get next θ
v:=βv+(1β)θ
}

3.偏差修正bias correction
在指数加权平均的初期阶段,因为初始化v=0,因此最开始算的均值v会偏小,这时我们进行偏差修正使得初始值正常。
v=0
repeat{
get next θ
v:=βv+(1β)θ
v:=v/(1βt) # t是循环次数
}
开始时t比较小用来修正v,后期t较大,βt接近0,修正作用减小。

3动量梯度下降Momentum

优化算法--深度学习Lesson2--week2
对于碗状的损失函数,在利用Momentum之后因为均值化参数,横轴保持向前摆动,纵轴因为正负值相互抵消而摆动减小。(也就是在梯度方向不变的时候加速学习,在梯度方向改变的时候减少更新,因此增加了稳定性。)
这样使得学习速率learning rate可以设置为较大的值。
优化算法--深度学习Lesson2--week2
从这里看出,每一次进行梯度下降的值都是前几次计算出来的dw,db的均值。

4 RMS(root mean square) prop

implemention

on each iteration t:
compute dw,db on current mini-batch
Sdw=β2Sdw+(1β2)dw2
Sdb=β2Sdb+(1β2)db2
w=wαdwSdw+ϵ, 一般取ϵ=108
b=bαdbSdb+ϵ

优化算法--深度学习Lesson2--week2
使得纵轴上变化较大的db被一个较大的数(斜率大)相除,而横洲上的dw被一个较小的数(斜率小)相除,这样做的结果就是减小的纵轴上的摆动。

5 Adam

Adam方法是将Momentum与RMS方法相结合的一种优化算法。

on each iteration t:
compute dw,db on current mini-batch
Vdw=0,Vdb=0,Sdw=0,Vdb=0,
Vdw=β1Vdw+(1β1)dw, Vdb=β1Vdb+(1β1)db, 一般有β1=0.9
Sdw=β2Sdw+(1β2)dw2, Sdb=β2Sdb+(1β2)db2, 一般有β2=0.999
Vdwcorrrected=Vdw/(1β1t),Vdbcorrrected=Vdb/(1β1t)
Sdwcorrrected=Sdw/(1β2t),Sdbcorrrected=Sdb/(1β2t)
w=wαVdwSdw+ϵ, b=bαVdbSdb+ϵ,一般取ϵ=108

超参数有α,β1,β2,ϵα需要调节参数,其余超参数一般取经验值。

6 Learning rate decay学习速率衰减

公式:α=11+decayRateepochNumα0
epochNum指的是遍历一遍所有训练集的次数。公式中有两个超参数α0,decayRate需要调参。公式表示的是随着遍历次数的增加,学习速率逐渐降低。
其他的学习速率降低:α=0.95epochNumα0
α=kepochNumα0

7 局部最优问题

在深度学习中,最优化问题其实并不容易困在局部最小值点。在高维度空间时(如20000维),局部最小值点需要在所有维度上都取得最小值,概率为220000,相反更容易困在鞍点处。 也就是它的导数在某些维度上凸,在有些维度下凹,(在一个方向是极大值,另一个方向是极小值的点)。鞍点的Hessian矩阵是半正定矩阵。
如果局部最优不是问题,那问题是什么?
缓慢变化的平台会使得训练减慢,因此可以通过自适应学习率算法如Adam或者RMSProp加速学习。

总结

1.优化算法是为了做什么?
2.几种不同的优化算法的优缺点?(重点)
三种优化算法+adagrad
https://zhuanlan.zhihu.com/p/22252270
https://blog.****.net/qq_28031525/article/details/79535942