吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam

文章目录

  • 前言
  • 一、小批量梯度下降 mini-batch
    • 1、batch gradient descent
    • 2、stochastic gradient descent
    • 3、mini-batch gradient descent
  • 二、指数加权平均
    • 1.什么是指数加权平均
    • 2、理解指数加权平均
    • 3、与普通求平均值的区别
    • 4、指数加权平均的偏差修正
  • 三、gradient descent with momentum
  • 四、RMSprop
  • 五、适应性矩估计 Adam
  • 六、学习率衰减
  • 七、局部最优解问题。


前言

一、小批量梯度下降 mini-batch

如果一个数据集有500w个数据,那我们迭代一次花费的时间就太久,且对所有训练集遍历一次也只是梯度逼近一步,但如果我们采用小批量梯度下降,大小为1000,那我们每迭代一次在1000个数据上就能逼近w一步,迭代完所有数据就梯度逼近5000步,能够提高效率。

吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第1张图片
向前传播 损失函数的计算 向后传播都要相应改变。

1、batch gradient descent

如果 mini-batch size=m
则就相当于普通的梯度下降了。
如果数据集不大的情况下,这是一种好的算法。一般而言<2000

2、stochastic gradient descent

随机梯度下降
如果 mini-batch size=1
这时候我们便失去了矢量化使计算加速的优点了
因为每次只有一个样本。

3、mini-batch gradient descent

如果 1 我们一般取2的n次方,与计算机存储有关,一般取64-512
这样的好处是:既可以使用矢量计算的好处
又可以不必每次在所有数据遍历完一遍之后在梯度逼近

二、指数加权平均

exponentially weighted averages

1.什么是指数加权平均

这里以温度为例

吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第2张图片
Vt 为加权后的温度,
theta t:是当天的真实温度
β:是系数,也相当于一个超参数,一般取0.9
当β=0.9时,我们说取的近似是10的平均温度。
1/1-β。
吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第3张图片
红色是β=0.9
绿色是β=0.98
我们可以看出β=0.98时,绿色线向右移动,
通过公式我们可以看出,那是因为之前的权重变大了而当天的权重减小了。

2、理解指数加权平均

吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第4张图片对于V100 我们可以一步一步拆解开来,可以看到对于每天的温度都有不同的权重。
0.9的10次方≈1/e 约等于最大值的三分之一
即当10天之后的温度会下降到最大权重的三分之一,可以忽略。
即就相当于β=0.9时,我们相当于计算的是10天的平均气温。

3、与普通求平均值的区别

①普通求平均值我们都是相当于一样的权值,比如语文100,数学99,英语98。那么三科平均值就是99.
但是对于指数平均我们相当于给了不同的值不同的权重,例如温度,我们肯定是离今天近的权重大,离今天太远的,我们可以忽略。
②代码简单,且需要的存储空间小。
比如想要求n天的平均值,那么我们只要有前n-1天的值和当天的值即可,
若是普通求平均值,则需要把n天的值都存储起来。

4、指数加权平均的偏差修正

吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第5张图片
当β=0.98时,我们实际得到的是紫色这条线
刚开始V0=0
V1=βV0+(1-β)θ1 =0.02θ1
V2=0.98
0.02*θ1+0.02θ2
因为前面的系数太小,所以导致V1,V2这些得到的并不是前几天的平均值。
比平均值小。
但是当往后时,迭代次数增多之后,紫色与绿色线几乎重合。
所以在批量梯度下降时,由于迭代次数多,所以几乎可以不用偏差修正。
吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第6张图片
我们可以采用第一个公式进行偏差修正,当t很大时,βt≈0,此时紫色与绿色线又几乎重合。


三、gradient descent with momentum

吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第7张图片
一般的 对于我们的梯度下降算法来说,如果我们的学习率太小,迭代一次效率就会过低,但是如果学习率太大,就会造成我们的损失函数并没有朝着 减小的方向前进。
我们既希望在水平方向上朝着最小值前进,又希望在垂直方向上不要太过跌宕。

动量梯度下降
我们采用了指数加权平均的方法
如果我们的学习率过大,我们在垂直方向上可能如图:
在这里插入图片描述
虽然水平方向上一直还是沿着最小值,但是水平方向可能太过跌宕,如下图绿色线。
吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第8张图片

画的太丑 可以忽略。不过我觉得这个更直观
红色的是我们希望的 水平方向沿着最小值前进 且垂直方向不会太跌宕
采用了指数加权平均后,我们在垂直方向上的平均值就会平缓许多,平且在水平方向上还是沿着最小值方向前进。

吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第9张图片

吴老师这个公式我觉得不太对…公式右边为什么还是Vdw呢?那移到左边不是可以抵消了吗?心存疑惑…希望知道的可以解答一下~~

后续:
懂了,老师的公式没错,是我理解错了。
Vt=βVt-1+(1-β)θt
这里的Vt-1是关于Vt的上一次迭代,而
Vdw[l]=βVdw[L]+(1-β)dw
这里的L与之前的t不同,这里的L是某一次迭代的某一个参数W[l]
而两边的Vdw[L]并不同,右边的是之前迭代得到的,而左边是通过之前的和当前的dw[l]得到的
并不能抵消。

四、RMSprop

root mean square prop

我们希望在垂直方向上数值不要太大,水平方向上数值不要太小。
在垂直方向上 的值会过大,db也就会大,相对而言水平方向的值小。
除以之后就会变化,w会大,b会小。
rmsprop 和动量梯度一样可以降低我们梯度下降中的震荡,同时使我们可以以一个大的学习率α,从而提高算法的效率。

五、适应性矩估计 Adam


Adam结合了动量梯度下降和RMSprop的好处。
Adam一般都需要偏差修正!!!
超参数:
吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第10张图片

六、学习率衰减

learning rate decay
吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第11张图片
蓝色:是我们学习率固定时,由于学习率固定,在最后阶段我们在最小值周围绕,且这个范围较大。
此时,如我们采取学习率衰减,刚开始仍能以较大的步长梯度下降,最后我们可以以小的步长来接近最小值。如绿色。
学习率衰减的公式:
吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第12张图片
dacay-rate是一个超参数。
其他公式:
吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第13张图片

t是批处理中 批处理的t,每一次遍历中学习率α都随t的变化而变化,并且每次遍历都与之前遍历的α相同。就导致如左下图的学习率。

七、局部最优解问题。

吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第14张图片

比如左边图,这是一个低维图,我们很容易可以看出这个图有很多局部最优,而不是全局最优。
但是对于高维图,这种局部最优是很难的,它需要每一个方向上都是凹函数,对于一个200维的,这种局部最优概率是1/2的200平方。
所以对于高维图,是很难出现多个局部最优的,出现的大多都是右图这种,叫做鞍点。
每个方向的凹凸不一定都一致,这不是局部最优点。

对于高维我们要解决的不是多个局部最优的问题,更应该解决的是停滞区的问题,梯度逼近太慢。
但是通过adam和动量梯度下降可以解决这个问题。
吴恩达week6 ~批量梯度下降 指数加权平均 动量梯度下降 学习率衰减 Adam_第15张图片

你可能感兴趣的:(深度学习吴恩达,人工智能,深度学习)