Mini_batch梯度下降法,指数加权平均,动量梯度下降法,RMSprop,以及Adam优化算法总结

Mini_batch梯度下降法,动量梯度下降法,RMSprop,以及Adam优化算法总结
(根据吴恩达老师深度学习课程笔记总结,如有不正确的地方,麻烦指出)



1.Mini_batch梯度下降法

1.1.定义的理解:

对于一个有500万个数据的超大样本,如果直接对整个训练集进行梯度下降,就必须直接对该超大样本进行处理,进行一次梯度下降耗时耗内存,进行完一次梯度下降后再进行下一次,多次下来,将耗费大量的时间。如果将该样本进行划分,比如1000个数据为一个子训练集,那么就有5000个子训练集了,可以分别对每个子训练集进行梯度下降,将节省大量的时间。
上角标用大括号表示为第几个子集,小括号为第几个样本,中括号为神经网络的第几层
(上角标用大括号表示为第几个子集,小括号为第几个样本,中括号为神经网络的第几层)
或者说:
如果对整个训练集进行梯度下降的时候,是 batch 梯度下降,只对一个样本进行梯度下降的时候,是 stochastic 梯度下降,处理样本的个数在上面二者之间,就是 mini_batch 梯度下降

1.2.Mini_batch算法实现:

以一个epoch为例进行说明:
在这里插入图片描述


2.指数加权平均

2.1.公式及定义

动量梯度法的关键即为指数加权平均。这里介绍一下指数加权平均:
**公式:**[在这里插入图片描述](https://img-blog.csdnimg.cn/2019112820435970.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RxcHRyX29wcXd3,size_16,color_FFFFFF,t_70)
(说明:这里Vt代表的含义是:1/(1-β)个数据的平均值)
当β=0.9时,Vt为10天数据的均值,得到的拟合曲线为L1
当β=0.98时,Vt为50天数据的均值,得到的拟合曲线为L2
那么,由于L2为更多数据得到的平均,故应比L1更为平缓,且比L1右移。

2.2.指数加权平均的本质

如下图所示:在这里插入图片描述
可以看出,每个数据前都有一个系数,且从数据100到数据1,前面的数据是一个指数下降的过程,所以可以将指数加权平均理解为:将第i个数据乘以0.1*power(0.9,100-i)然后加上前i-1个指数加权平均后的数据。
指数衰减函数

2.3.指数加权平均的偏差修正在这里插入图片描述


3.动量梯度下降法

3.1.定义的理解

对于batch梯度下降法,处理大样本太耗时;对于Mini_batch梯度下降法,相比batch梯度下降法上下波动较大,减慢了梯度下降的速度,而且无法使用较大的学习率;动量梯度下降法,上下波动减小,梯度下降快

3.2.动量梯度下降法实现原理:

在这里插入图片描述


4.RMSprop梯度下降法

4.1.RMSprop实现公式:

在这里插入图片描述

4.2.RMSprop理解:

在这里插入图片描述
(蓝线是未使用RSMprop的下降曲线,绿线是RSMprop下降曲线)
如果以每次迭代得到的w为横坐标,b为纵坐标,那么可以看出,Sdw<Sdb,未使用RSMprop的曲线b的波动大,w波动小,这样将要很多次迭代才能找到中心最优解。使用RSMprop算法后,w的更新步长增大,b的更新步长减小,很快就到达了最优解。


5.Adam优化算法

Adam全称为:Adaptive Moment Estimation
Adam算法是动量梯度下降法和RMSprop算法的结合

1. 初始时有
在这里插入图片描述
2.运用动量梯度下降法:
在这里插入图片描述
3.运用RSMprop法:
在这里插入图片描述
4.运用Adam算法:
在这里插入图片描述
**超参说明:
α:需要自己调试找到合适值
β1:0.9
β2:0.999
ε:exp(-8)



猜你喜欢

转载自blog.csdn.net/tqptr_opqww/article/details/103300115