Batch vs Mini-batch 梯度下降算法
- 批梯度下降法表示,在计算网络参数的梯度时每次使用所有的训练样本。而mini-batch梯度下降法,每次计算网络参数的梯度时使用的是mini-batch个训练样本,比如batch_size设置为1000;Mini-batch梯度下降法,在处理大量的训练数据的时候会比batch梯度下降法快很多。


随机梯度下降法 vs 批梯度下降法 vs Mini-batch梯度下降法
- 随机梯度下降法,每次梯度下降更新网络参数使用一个训练样本;批梯度下降法使用所有的训练集;Mini-batch梯度下降法介于它们之间,使用batch size个训练样本执行一次梯度下降过程。
- 批梯度下降法,每次执行梯度下降更新网络参数后,损失函数每次都是下降的;但是Mini-batch梯度下降法,损失函数是波动的并不一定每次都是下降的。
- batch size一般设置为2的幂次方。例如64,128,256,512等;


指数加权平均
-
下图中的
代表某一天的温度值。假设
,则
计算公式如下:
-
假设
取值为0.9,则最终的曲线为如下图红色曲线所示;如果增大
的值相当于使用了更多天的数据做移动平均,曲线变得更加平缓。减小
的值,使用更少天的数据做移动平均。注意
的取值约等于
天的数据做平均的结果。
image.png
image.png
-
指数加权平均的理解;

- 指数加权平均,在初期的时候计算误差较大;实际呈现的是紫色的线条,为了缓解这个问题可以在
的基础上乘以
;
image.png
动量法(Momentum)
- 动量法采用指数加权平均,将历史的梯度做指数加权平均,使得学习速度更快。原始参数更新公式
,动量法将
替换成
用于参数更新。
的取值一般为0.9;

RMSprop优化算法
- RMSprop也是为了解决梯度更新过程中的摆动,使得梯度大的参数更新的更慢点,梯度小的参数更新的更快点。具体实现也是使用指数加权平均法,公式如下。其中
是一个很小的值,防止除以0;
的取值一般为0.9。

Adam优化算法
- Adam优化算法将Momentum、RMSprop算法进行结合。具体公式如下;所以对于Adam优化算法有以下几个参数:

学习率衰减
- 在刚开始训练的时候,学习率应该设置的大点。使得训练过程更快点,然后学习率需要不断的减小,使得模型趋近于局部最优值附近。
- 学习率衰减的方法有很多,常见的是跟epoch_num成反比,然后再加上一个衰减系数decay_rate。
- 另外一种常用的学习率衰减策略,就是在warmup_steps内学习率先线性递增;之后再指数衰减。



深度学习中局部最优值问题
- 深度学习的优化问题一般是一个非凸的优化问题,所以梯度下降可能找到的是一个局部最优值。模型优化的过程中最怕碰到的是 鞍点问题,因为鞍点的导数为0,使得模型迭代的会很慢。


网友评论