深度学习中优化方法

深度学习中优化方法

momentum、Nesterov Momentum、AdaGrad、Adadelta、RMSprop、Adam

一、 指数加权平均(Exponentially weighted average)

在下面要讲的很多算法都用到了 指数加权平均,看一下 指数加权平均(Exponentially weighted average) 的定义:

深度学习中优化方法

 下面直接看实现指数加权平均(Exponentially weighted average) 的伪代码:

V0 = 0
repeat
{
	get next theta_t
	V_theta = beta * V_theta + (1 - beta)* theta_t
}

二、带偏差修正的指数加权平均(bias correction in exponentially weighted average)

指数加权平均 不能很好地拟合前几天的数据,因此需要 偏差修正.

公式为:

深度学习中优化方法

三、momentum

动量的引入就是为了加快学习过程,特别是对于高曲率、小但一致的梯度,或者噪声比较大的梯度能够很好的加快学习过程。动量的主要思想是积累了之前梯度指数级衰减的移动平均(前面的指数加权平均),下面用一个图来对比下,SGD和动量的区别:

深度学习中优化方法

区别: SGD每次都会在当前位置上沿着负梯度方向更新(下降,沿着正梯度则为上升),并不考虑之前的方向梯度大小等等。而动量(moment)通过引入一个新的变量 v vv 去积累之前的梯度(通过指数衰减平均得到),得到加速学习过程的目的。

公式:深度学习中优化方法

四、Nesterov Momentum

Nesterov Momentum是对Momentum的改进,可以理解为nesterov动量在标准动量方法中添加了一个校正因子。用一张图来形象的对比下momentum和nesterov momentum的区别(图片来自:http://ttic.uchicago.edu/~shubhendu/Pages/Files/Lecture6_pauses.pdf):
 

深度学习中优化方法

这是公式:

 深度学习中优化方法

上面那个公式运算成本大,改良版公式:

深度学习中优化方法

五、AdaGrad(Adaptive Gradient)

通常,我们在每一次更新参数时,对于所有的参数使用相同的学习率。而AdaGrad算法的思想是:每一次更新参数时(一次迭代),不同的参数使用不同的学习率。AdaGrad 的公式为:

 深度学习中优化方法

深度学习中优化方法

六、Adadelta

Adadelta是对Adagrad的改进,主要是为了克服Adagrad的两个缺点(摘自Adadelta论文《AdaDelta: An Adaptive Learning Rate Method》):

 为了解决第一个问题,Adadelta只累积过去 w ww 窗口大小的梯度,其实就是利用前面讲过的指数加权平均,公式如下:

 深度学习中优化方法

深度学习中优化方法

 其中 ε 是为了防止分母为0

 七、RMSprop(root mean square prop均方根算法 )

RMSprop也是对Adagrad的扩展,以在非凸的情况下效果更好。和Adadelta一样,RMSprop使用指数加权平均(指数衰减平均)只保留过去给定窗口大小的梯度,使其能够在找到凸碗状结构后快速收敛。

在实际使用过程中,RMSprop已被证明是一种有效且实用的深度神经网络优化算法。目前它是深度学习人员经常采用的优化算法之一

深度学习中优化方法

同样 ε 是为了防止分母为0,β 默认值设为 0.9,学习率 α 默认值设为 0.001 


八、Adam(Adaptive Moment Estimation)

Adam实际上是把momentum和RMSprop结合起来的一种算法

深度学习中优化方法

 深度学习中优化方法

实践表明,Adam算法在很多种不同的神经网络结构中都是非常有效的

八、该如何选择优化算法

介绍了这么多算法,那么我们到底该选择哪种算法呢?目前还没有一个共识,schaul et al 在大量学习任务上比较了许多优化算法,结果表明,RMSprop,Adadelta和Adam表现的相当鲁棒,不分伯仲。Kingma et al表明带偏差修正的Adam算法稍微好于RMSprop。总之,Adam算法是一个相当好的选择,通常会得到比较好的效果。


————————————————
版权声明:本文为CSDN博主「天泽28」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012328159/article/details/80311892

上一篇:ADAMoracle是一个采用分散的社区投票治理的项目


下一篇:ADAMoracle预言机广域节点机制以ADAM经济模型构建