新智元建议

梯度下降算法是机器学习中广泛使用的优化算法,也是众多机器学习算法中最常用的优化方法。Sebastian Ruder去年发表了一篇博文《梯度下降优化算法概述》,详细比较了梯度下降算法的不同变体,帮助用户根据自己的具体需求使用。最近Ruder针对2017年优化算法的一些新方法,在前人综述的基础上整理出2017年深度学习优化研究的亮点,值得关注。

梯度下降算法是机器学习中广泛使用的优化算法,也是众多机器学习算法中最常用的优化方法。目前,几乎每一个最先进的机器学习库或深度学习库都包含梯度下降算法的不同变体。然而,它们就像一个黑盒优化器,很难得到它们优缺点的实际解释。塞巴斯蒂安·路德去年发表了一篇博文《梯度下降优化算法概述》,详细比较了梯度下降算法的不同变体,并帮助用户根据自己的具体需求使用它们。最近,Ruder针对2017年优化算法的一些新方法,在前人综述的基础上梳理了2017年深度学习优化研究的亮点,值得关注。

1.梯度下降优化算法综述

http://ruder.io/optimizing-gradient-descent/index.html

https://arxiv.org/abs/1609.04747

2.“梯度下降优化算法综述”http://blog.csdn.net/heyongluoyao8/article/details/52478715中文译本

3.Sebastian Ruder深度学习中的优化PPT 2017/11/2讲座

其中η为学习率,第二个方程中的第三项为解耦权重衰减项。同样,对于具有权重衰减的亚当,我们可以得到:

与亚当相比,作者观察到小数据集和CIFAR-10的性能有所提高。

调整学习速度

在许多情况下,我们的模型不需要改进和调整,除了超参数。最近的语言建模实例表明,与更复杂的模型相比,仅调整LSTM参数和正则化参数就能产生更好的结果。

学习率η是深度学习中一个重要的优化超参数。事实上,SGD已经被证明需要一个学习率退火方案来收敛到一个好的最小值。人们通常认为像亚当这样的自适应学习率方法对不同的学习率更鲁棒,因为它们更新了自己的学习率。然而,即使对于这些方法,好的学习率和最好的学习率之间也可能有很大的差异。

张等证明了带退火机制的SGD和带调整学习率的动量参数不仅能与Adam竞争,而且收敛速度更快。另一方面,虽然我们可能认为亚当的学习率的适应性可以模仿学习率退火,但明确使用退火方案仍然是有益的:如果我们对亚当增加SGD的学习率退火,在机器翻译任务中收敛更快。

事实上,学习率退火方案似乎是一种新的特征工程,因为我们经常可以找到一种改进的学习率退火方案来改善我们模型的最终收敛行为。一个有趣的例子是Vaswani等人。虽然通常会看到模型的超参数需要大规模优化,但有趣的是将学习率退火方案作为关注细节的焦点:作者在Adam中使用参数β1= 0.9,非默认β2= 0.98,ε = 10-9,学习率η可能是最复杂的退火方案之一:

其中模型参数和预热步骤的数量=4000

史密斯等人最近的另一篇论文表明,学习率和批量之间存在一定的关系,两个超参数通常被认为是相互独立的:它们表明衰减学习率相当于增加批量,但批量可以并行增加。相反,我们可以减少模型更新的次数,从而通过提高学习速度和缩放批次来加快训练速度。这对大规模的深度学习有影响,所以现在可以在不调整超参数的情况下重新调整现有的训练方案。

热重启

带重启的SGD

SGDR是最近提出的一种有效方法,是一种利用热重启代替学习率退火的SGD方法。在每次重启时,学习速率被初始化为某个值,并将降低。重要的是,重启是热重启,因为优化不是从零开始,而是从最后一步模型收敛的参数开始。关键因素是使用主动余弦退火方案来降低学习率,这将快速降低学习率,如下所示:

图1:学习率热重启方案

其中sum是第I次运行期间的学习速率范围,指示自上次重新启动以来已经过了多少个周期,并指定下次重新启动的周期。与传统的学习率退火方法相比,和的热启动方案如图1所示。

这里α是超参数,通常设置为e或2。,设置为1或执行线性衰减功能。周期性或衰减重启基于时间t,时间t是过去渐变的移动平均值。常见的配置有

我们可以观察到,更新通过或缩放梯度,这取决于梯度的方向是否与移动平均线一致。这表明过去梯度和当前梯度之间的动量一致是优化深度学习模型的关键信息。

添加标志的定义如下:

如上,这里α通常为1或2。这次的更新量取决于渐变的方向。作者指出,PowerSign和AddSign在CIFAR-10中的表现优于Adam、RMSprop和SGD,可以转移到ImageNet分类、机器翻译等其他任务中。

理解概括

优化与泛化密切相关,因为模型收敛的最小值定义了模型泛化的程度。因此,改善优化与理解这种最小泛化行为的理论进展密切相关,更一般地说,它对深度学习的泛化能力有更深刻的理解。

然而,我们对深度神经网络泛化行为的理解仍然很浅。最近的工作表明,可能的局部极小值的数目随着参数的数目呈指数增长。考虑到目前深度学习架构中参数数量庞大,这种模型能够很好地收敛和泛化,看起来很神奇,特别是考虑到它们能够完全记住随机输入。

Keskar等人认为最小值的清晰度是泛化能力差的一个原因:特别是,他们表明通过批量梯度下降找到的确定最小值具有很高的泛化误差。这是很直观的,因为我们通常希望我们的函数是光滑的,显式最小值表示对应的误差面是高度不规则的。然而,最近的工作表明,清晰度可能不是一个好的指标,因为它表明局部最小值可以很好地推广。Eric Jang的quora问答也讨论了这些文章。

通过一系列消融分析,ICLR 2018年提交的一篇论文表明,模型在激活空中对单一方向的依赖是其泛化性能的良好表现。他们证明了这个模型适用于不同的数据集和不同程度的标签损坏。同时,他们发现辍学无助于解决这个问题,而批量标准化阻碍了单向依赖。

虽然这些发现表明我们对深度学习优化还不是很了解,但重要的是要记住,现有的思想和观点在一定程度上也可以应用于非凸优化,因为凸优化中存在收敛保证和大量工作。NIPS 2016的大规模优化教程提供了这个领域更多理论工作的精彩概述。

结论

希望能为一年来的深度优化开发提供一些有说服力的依据。毫无疑问,我没有提到许多同样重要和值得注意的方法。请在下面的评论中告诉我,我错过了什么,我在哪里犯了错误或者方法扭曲,或者深度学习优化的哪个方面你觉得特别刺激或者低估了。

由于微信文章字数限制,本文未列出所有参考文献。请戳原文查看。

原文链接:http://ruder.io/deep-learning-optimization-2017/index.html

后台回复“OFDL”获取Sebastian Ruder深度学习中深度学习PPT下载的优化优化~

1.《decoupling 【深度干货】2017年深度学习优化算法研究亮点最新综述(附slide下载)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《decoupling 【深度干货】2017年深度学习优化算法研究亮点最新综述(附slide下载)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/fangchan/1673452.html