几种梯度下降优化器和技巧介绍

本文章大部分算法来自于这篇论文

An overview of gradient descent optimization algorithms

优化器:

1.动量(mommentum)

采用部分上一时刻的动量来更新这一步的梯度,具有加速收敛,减缓震荡的作用

几种梯度下降优化器和技巧介绍_第1张图片

2.NAG(Nesterov Accelerated Gradient)

加入了预测的概念,预测的依据是假设和上一次和这一次的动量一样,可以有效防止增高

几种梯度下降优化器和技巧介绍_第2张图片

3.Adagrad(Adaptive Dradient)

因为神经网络中有很多参数,有的参数跟新频率低有的高,更新频率低的我们让他步长大一点反之小一点,利用梯度累加和来衡量跟新的频率

几种梯度下降优化器和技巧介绍_第3张图片

字有点丑,见谅。。

4.RMSprop

是对Adagrad的一种改进,解决累加和过大的问题。加入了窗口的方法

几种梯度下降优化器和技巧介绍_第4张图片

5.Adam(Adaptive mommentum estimate)

融合了RMSprop和mommentum,目前深度学习比较常用的优化器。其实动量上是有一些变化的,去除了之前的加速收敛的效果就相当于一个低通滤波器

几种梯度下降优化器和技巧介绍_第5张图片

6.NAdam(NAG Adam)

在Adam之上加入了NAG(预测),改掉了之前的动量跟新

几种梯度下降优化器和技巧介绍_第6张图片

7.Adabound(Adaptive bound)

中国学霸提出来的算法,将SGD和Adam融合到了一起。性能在LTSM上达到了SGD速度媲美Adam。加入学习率上下限概念,上下限分别从无穷大和0到某一值就是Adam到SGD的过渡。详见https://openreview.net/pdf?id=Bkg3g2R9FX

几种梯度下降优化器和技巧介绍_第7张图片

后续会继续更新其他优化器。。

 

技巧:

1.Shuffling and Curriculum Learning

就是一般训练时要保证训练样本的混乱,但是当我们的训练结果在某一方面表现差的时候应该从样本上加强对这一方面的训练

2.Batch normalizatio

训练过程中对模型的一部分做归一化处理,有利于防止过拟合

3.提前结束

在我们损失一段时间没有什么变化的时候就提前结束训练,辛顿如是说

4.加入噪声

在梯度跟新中加入噪声有利于提高鲁棒性(如果初始参数垃圾的化),有利于帮助跨过局部极小值点

不定期更新中。。。。

你可能感兴趣的:(人工智能,机器学习)