神经网络优化——梯度下降常用算法:min-batch、随机梯度下降(SGD)、批量梯度下降、Momentum、move average、RMSprop、Adma
简介
- 梯度下降算法是应用于神经网络反向传播过程的计算梯度,然后更新参数,最终找到最优的位置。本博客主要介绍随机梯度下降、批处理梯度下降、Momentum、move average、RMSprop、Adma。也是对Andrew NG 的deeplearning.ai 课程的部分内容进行总结。
算法原理
-
1、 随机梯度下降和批量梯度下降都是基于min-batch的,他们区别是 batch size大小不一样。
- min-batch就是把数据分为组, 代表样本总数目,每组里有个样本,随机梯度下降就是 min-batch size = 1。批处理是m-batch size >1,正常是(64 128 256 512 1024 …),假设loss是Cross Entrophy, Cross Entrophy 公式里的就是等于min-batch size。按批次的计算梯度和loss,而不是所有样本处理完再计算,这样会加快训练速度.
上图左边图像就是没采用mini-batch策略的loss图,右侧是采用mini-batch策略,可以看出来右边曲线上下抖动,那是因为参数可能对有些batcn里面数据效果比较好或差,不过只要有下降趋势,效果还是比左侧图好并训练速度更快。
- min-batch就是把数据分为组, 代表样本总数目,每组里有个样本,随机梯度下降就是 min-batch size = 1。批处理是m-batch size >1,正常是(64 128 256 512 1024 …),假设loss是Cross Entrophy, Cross Entrophy 公式里的就是等于min-batch size。按批次的计算梯度和loss,而不是所有样本处理完再计算,这样会加快训练速度.
-
2、 move average
move average也称为指数加权平均算法。用前面一个优化后的值和当前值进行加权计算,优化当前值,让曲线更加平滑。
:代表时刻优化后的,上图就是时刻优化后温度
:代表时刻优化后的温度。
:代表权重,正常取0.8-0.999,正常取0.9.
:代表时刻的值,上图就是时刻的温度
利用优化,优化后的曲线。-
move average 偏差纠正,由于,所以会造成刚开始时候较小,很偏离,所以要进行偏差纠正。用公式(1)计算完后,再对纠正偏差。
-
move average 偏差纠正,由于,所以会造成刚开始时候较小,很偏离,所以要进行偏差纠正。用公式(1)计算完后,再对纠正偏差。
-
3、Momentum 梯度下降算法是结合move average的。在神经网络中,主要计算梯度,代表学习速率。这里就举例这两个。moment就是对进行优化。
-
4、RMSprop梯度下降优化算法
RMSprop和momentum区别就是对取平方,是整个矩阵平方。 -
5、Adam*梯度优化算法
Adam是把momentum和RMSprop结合起来,有个特点就是他的超参比较多。,主要是调节参数
总结
- 利用指数加权平均可以让梯度在纵轴方向上下抖动减小,加快训练和收敛。