计划完成深度学习入门的126篇论文第十五篇,多伦多大学和Google的Ilya Sutskever合作研究一种在梯度下降过程中优化下降迭代速度的方式,属于AdaptiveLearning的一种。关联:Adam,AdaGrad,RMSProp,Adabound。
ABSTRACT&INTRODUCTION
深度神经网络(DNNs)和递归神经网络(RNNs)是一种强大的神经网络模型。在本文中,我们表明,当随机梯度下降SGD与Momentum使用一个设计良好的随机初始化和一种特殊的缓慢增加的动量参数,它可以训练DNNs和RNNs(在数据集上的长期依赖)水平的性能,以前只有Hessian-Free优化实现。我们发现初始化和Momentum都是至关重要的,因为初始化不良的网络不能用Momentum训练,而初始化良好的网络在Momentum缺失或调优不良时性能明显较差。
我们成功地训练了这些模型,这表明以前尝试从随机初始化训练深度和递归神经网络的尝试可能由于初始化方案不佳而失败。此外,仔细调整动量方法,满足用于处理深度和周期性网络训练目标中的曲率问题,不需要复杂的二阶方法。
深度神经网络和递归神经网络(分别为DNNs和RNNs),在视觉和言语中的模式识别问题(Krizhevsky et al., 2012;Hinton, 2012; Dahl, 2012; Graves, 2012)上,实现高性能的强大模型。虽然他们表现结果是吸引人的,但是训练DNNs阻止了他们广泛使用一直到现在。在Hinton等人(2006)提出了贪婪的分层预训练greedy layerwise pre-training思想之后,DNNs再次成为关注的焦点。该方法已经扩展到一系列方法(Bengio et al., 2007),所有这些方法都使用辅助目标按顺序训练DNN层,然后使用随机梯度下降(SGD)等标准优化方法对整个网络进行微调。最近,Martens(2010)的研究引起了相当大的关注,他证明了一种称为Hessian-free Optimization(HF)的集群牛顿方法能够在不使用预训练的情况下从某些随机初始化训练DNNs,并且能够在考虑的各种自动编码任务中获得较低的误差。Hinton&Salakhutdinov (2006)。
递归神经网络(RNNs)是一种具有高度表达性的序列模型,能够模拟复杂的序列关系。它们可以被看作是非常深的神经网络,每个时间步都有一个层,层之间参数共享,因此,它们被认为比神经网络更难训练。最近,马顿斯,Sutskever(2011)的研究表明,Martens(2010)的HF方法可以有效地训练RNNs处理具有非常长期依赖性的人工问题(Hochreiter &Schmidhuber, 1997)。没有使用特殊类型的内存单元,这些问题被认为是不可能的di!一阶优化方法,由于众所周知的消失梯度问题(Bengio et al., 1994)。Sutskever等(2011)和后来的Mikolov等(2012)利用HF训练RNNs进行字符级语言建模,取得了很好的效果。
最近,一些结果似乎挑战了人们普遍持有的观点,即更简单的一阶方法无法从随机初始化中学习深度模型。Glorot&Bengio (2010), Mohamed et al. (2012), Krizhevsky et al.(2012)提出了从某些精心挑选的随机初始化训练8层神经网络。值得注意的是,Chapelle&Erhan(2011)使用了Glorot&的随机初始化; Bengio&Hinton(2010)使用SGD训练了的11层自动编码器; Salakhutdinov(2006),并能够超过Hinton &Salakhutdinov (2006)。虽然这些结果仍然低于Martens(2010)对相同任务的报告,但它们表明学习深层网络并不像之前认为的那么难。
本文的第一个贡献是对训练深度和时间网络与以前做的进行了对比深入的研究。特别地,我们研究了SGD的有效性,当结合精心选择的初始化方案和各种形式的动量为基础的加速度。我们证明,虽然在某些深度和时间的学习问题上,普通SGD和HF之间似乎存在一定的性能差距,但通过仔细使用经典动量法或Nesterov’s accelerated gradient,可以消除或几乎消除这种差距(视问题而定)。特别地,我们展示了某些精心设计的动量常数时间表是如何受到各种理论收敛率定理的启发(Nesterov, 1983;)在某些深度autencoder培训任务上,其结果甚至超过了Martens(2010)的报告。对于Martens&Sutskever(2011)研究的长期依赖RNN任务,最早出现在Hochreiter& Schmidhuber(1997),我们得到的结果略低于那些报告的工作,其中使用了一个相当复杂的方法。
我们的结果尤其令人惊讶,因为动量及其在神经网络优化中的应用以前已经被广泛研究,如Orr(1996)的工作,但从未发现它在深度学习中有如此重要的作用。一种解释是,以往的理论分析和实际基准测试都侧重于随机环境下的局部收敛,这与其说是一个优化问题,不如说是一个估计问题(Bottou&LeCun (2004)。在深度学习问题中,学习的最后阶段并不像最初的过渡阶段那么长,也不那么重要。(Darken & Moody, 1993),这在动量上也是一个更好的论点。
除了不恰当地关注纯粹的局部收敛速度外,我们还认为使用了设计糟糕的标准随机初始化,比如Hinton&Salakhutdinov(2006)和次优元参数调度suboptimal meta-parameter schedules(特别是动量常数)阻碍了在深度学习中发现一阶动量方法的真正有效性。在我们的实验中,我们小心地避免了这两个陷阱,并提供了一个易于理解和使用的框架来进行深入学习,可以自然地结合技术,如Raiko(2011)。
我们还将讨论古典动量之间的联系和Nesterov年代加速梯度法(这是最近的研究在凸优化理论),认为后者可以被视为一个简单的修改前的稳定性增加,有时可以提供不同的性能改进我们在我们的实验证明。通过理论分析,明确了这两种算法在局部行为上的精确差异。此外,我们还展示了HF如何通过使用特殊的初始化来共轭梯度来利用可以被看作是动量的一种类型,这些梯度是由上一个时间步长的更新计算出来的。我们利用这一特性开发了一种更像动量的HF,结合了两种方法的一些优点,进一步改进了Martens(2010)的结果。
动量法(Polyak, 1964),我们称之为经典动量classical momentum(CM),是一种加速梯度下降的技术,它在迭代过程中不断减少目标的方向上积累速度矢量。给定要最小化的目标函数,经典动量为:
是学习速率,是动量系数,而是的梯度。
因为根据定义,低曲率方向d的局部折射率变化较慢,它们会在迭代过程中持续存在,并被CM放大。二阶方法也放大了在低曲率方向上的步骤,但是它们并没有积累变化,而是通过相关曲率的倒数对每个曲率矩阵特征方向上的更新重新加权。正如secondorder方法享受局部的收敛率,改善波里亚克(1964)表明,CM可以大大加快收敛到局部最小值,需要迭代次少于最陡下降达到相同的精度水平,其中R是条件数和最小曲率,设置为。
Nesterov’s Accelerated Gradient(abbrv: NAG, Nesterov, 1983)一直是凸优化界关注的热点问题(Cotter et al., 2011; Lan, 2010)。与动量相似,NAG是一种一阶优化方法,比梯度下降法具有更好的收敛速度保证。特别是对于一般光滑(非强)凸函数和确定性梯度,NAG实现了(相对于梯度下降的)的全局收敛速度,且与Lipschitz系数成正比导数和欧氏距离的均方。虽然NAG通常不被认为是动量的一种类型,但它确实与经典动量密切相关,只是在精确更新速度矢量v时才有所不同,我们将在下一小节中讨论其意义。具体来说,如附录所示,NAG更新可以重写为:
两种方法的经典收敛理论都依赖于无噪声梯度估计,而不是随机的,只要在实践中稍加注意,它们都适用于随机环境。然而,该理论预测,在渐近局部收敛速度方面的任何优势将会丧失(Orr, 1996;Wiegerinck et al., 1999),实验结果也得到了证实(LeCun et al., 1998)。由于这些原因,动量法在90年代受到广泛关注后,人们对它的兴趣逐渐减弱。由于这种与随机优化的明显不兼容性,一些作者甚至不鼓励使用动量或淡化其潜在的优势(LeCun et al., 1998)。
然而,在渐近收敛速度方面,局部收敛是最重要的(在某些非常简单/浅层的神经网络优化问题上,局部收敛甚至可能控制总学习时间),但在实践中,收敛的暂态阶段(Darken&Moody, 1993),这发生在精细的局部收敛开始之前,似乎对优化深层神经网络更重要。在这个短暂的学习阶段,目标的减少方向往往在许多连续的梯度估计中持续存在,不会完全被噪声淹没。
虽然学习的短暂阶段在深度学习模型的训练中最为显著,但在凸目标的训练中仍然显著。光滑凸函数随机梯度下降的收敛速度由给出,其中为梯度估计中的方差,L为Lipshits coe!射频的字母系数。相比之下,Lan(2010)的加速梯度法收敛速度为(与NAG相关,但不同,它结合了Nesterov动量和双重平均)。因此,对于凸目标,在以为主导项的优化的早期或瞬态阶段,基于动量的方法将优于SGD。然而,这两种方法在最后阶段将同样有效其中为主导项(当优化问题类似于估计问题时)。
方程式1 - 4我们看到,CM和NAG计算基于新的速度通过应用梯度修正先前的速度矢量(衰退),然后添加速度。虽然CM计算梯度更新从当前位置,NAG首先执行部分更新,计算类似,但错过了未知修正。这种看似友善的差异似乎能让NAG以更快、更灵敏的方式改变v,让它在许多情况下比CM表现得更稳定,尤其是在值更高的情况下。
的确,考虑的情况添加结果立即增加目标函数f。梯度校正的计算速度位置,如果的确是一个很差的更新,然后梯度将回到比梯度更快,从而提供一个比更大、更及时的修正比CM。图1从几何上说明了这一现象。
虽然NAG的每次迭代在纠正较大且不合适的速度方面可能只比CM稍微有效一些,但是这种差异性可能随着算法的迭代而加剧。为了演示这种复合,我们将NAG和CM同时应用于一个二维长圆形二次目标,它们具有相同的动量和学习速率常数(见附录中的图2)。而优化路径CM展示出沿着high-curvature垂直方向很大的震荡,NAG几乎完全可以避免这些振荡,在减速过程中多个迭代直觉上认为会远远超过CM,从而使NAG对于拥有很大的CM有很强的容忍性。
为了使这些直觉更加严谨帮助精确地量化CM和NAG,我们分析了每种方法的行为当应用于正定二次目标。我们可以把CM和NAG看作是在A的不同特征方向上独立运行的。ANAG沿着这些方向中的任何一个与CM等价,除了的有效值由给出,其中为相关特征值/曲率。
这个理论的第一步是根据A的每个特征向量中系数x重新参数化q(x) 。因为一个对角D和正交U是对称的。我们可以重新参数化q(x)通过变换矩阵U及使用目标函数优化,。我们可以进一步将p重写为,是D(因此是A的特征值)的对角元素,并且对应于沿着相关特征向量方向的曲率。如附录所示(命题6.1),CM和NAG,一阶方法,不变的是这些重新参数化通过正交变换等。因此在分析行为的算法应用到q (x),我们可以将它们应用于p (y),和转换的结果序列迭代回到默认的参数化(通过乘法)。
这个定理有几个含义。首先,当很小(当,对于A的每个特征值)时,CM是等价的,因此只有当“相当大”时,NAG和CM才不同。当“”相对较大时,NAG对高曲率本征方向使用较小的动量,这可以防止振荡(或差异),从而允许使用更大的µ,同样对于给定的CM。
截尾牛顿法,包括以Martens(2010)的HF法为例,通过线性共轭梯度算法(CG)对目标的局部二次模型进行优化,这是一种一阶方法。与所有聚合牛顿方法一样,HF的计算步骤是通过对CG的部分收敛调用计算出来的,但与梯度相比,HF至少在曲率较低的某些方向上自然加速。它甚至可以被显示出来(马滕斯;Sutskever(2012)认为CG倾向于先沿着更高的曲率方向收敛到二次子问题的精确解(倾向于那些在曲率尺度/特征值上更聚集在一起的方向)。
CG在迭代过程中积累信息,这使得它比任何其他一阶方法(如NAG)在更强的意义上是最优的,但是一旦终止,这些信息就会丢失。因此,标准的截断牛顿方法可以被认为是一种持久的信息,它只在CG执行的迭代次数上加速(当前二次型的)收敛。相反,动量方法保存的信息可以在任意数量的迭代中通知新的更新。
标准截断牛顿方法和HF方法之间的一个关键区别是使用了对CG的热启动调用,这些调用使用了在前面对CG调用中找到的初始解决方案。虽然这个解决方案是使用旧的梯度和曲率信息从先前的计算点在参数空间和可能的不同的训练数据集,它可能是沿着某些特征方向或者是收敛方向,尽管很差聚集在其他人(也许比默认的初始解0)。然而,在某种程度上,新的局部二次模型与旧的相似,特别是在更多的为了优化低曲率方向(低曲率很可能在参数空间的邻近位置上持续存在),前面的解决方案将是一个较好的起点为0,甚至可能允许沿着某些持续存在的方向逐步增加收敛水平在局部二次模型中进行多次更新。
HF和动量之间的联系可以更具体的方法注意到单个步骤的CG是依次为梯度更新来自当前的点,再加上前面的更新重新应用,与NAG一样,如果CG终止后1步,HF就相当于NAG,除了它使用特殊公式基于曲率矩阵的学习速率,而不是一个固定的常数。HF最有效的实现甚至使用衰减常数(Martens)它的作用类似于动量常数。因此,从这个意义上说,HF使用的CG初始化使我们可以把它看作是NAG和精确二阶方法的混合,CG迭代的次数用来计算每一次更新,具体地充当两个极端之间的刻度盘。
基于动量的深度学习方法取得了惊人的成功,受此启发,我们尝试让HF表现得更像NAG。得到的方法执行得出奇的好(见表1)。从每一个CG步骤(而不是每一个参数的更新)来看,HF可以被认为是一种特殊的一阶方法,它只是把目标近似为一系列的二次曲线,这样它就可以利用强大的一阶CG方法。
所以除了任何潜在的好处从其全局收敛性倾向偏爱某些参数空间的方向运动,也许主要使用HF理论好处超过一阶方法使用CG喜欢NAG,这本身在一个一阶方法;是众所周知的强烈收敛特性的二次方程式,并可以利用集群特征值来加速收敛(看到马顿斯,Sutskever(2012)对这一著名现象进行了详细的描述)。然而,我们知道,在最坏的情况下,CG,当运行在批处理模式,将渐近收敛速度不超过NAG(也运行在批处理模式)为某些特别设计的二次曲线具有非常均匀分布的特征值/曲率。因此,值得探讨的是,在HF神经网络优化过程中所产生的二次曲线,究竟是CG比NAG具有明显的优化优势,还是更接近上述最坏情况的例子。
为了检验这个问题,我们在曲线数据集上进行了一次典型的HF运行过程中生成的二次型,并比较了初始化为0的CG和初始化为0的NAG的收敛速度。附录中的图5展示了这个实验的结果。虽然这HF实验表明一些潜在的好处,亲密的NAG和HF的表现表明,这些结果可能解释为二次方程的解决方案使信任的面积在任何额外的速度,或者更准确地说,信任的近似值下降给CG迭代提供了足够的加速好处。
(15)[ICML13] Momentum: On the importance of initialization and momentum in deep learning相关推荐
- 15.深度学习练习:Deep Learning Art: Neural Style Transfer
本文节选自吴恩达老师<深度学习专项课程>编程作业,在此表示感谢. 课程链接:https://www.deeplearning.ai/deep-learning-specialization ...
- QUASI-HYPERBOLIC (拟双曲线) MOMENTUM AND ADAM FOR DEEP LEARNING——精读
2 PRELIMINARIES Primitives: L(θ) loss函数: L^(θ)近似器: 函数L的梯度:g; a; s; v; w存储缓冲区,都可以用下标t表示:g动量缓冲: O ...
- 《On the Momentum Term in Gradient Descent Learning Algorithm》原文解读
############博主前言####################### 我写这篇文章的目的: 想必很多人听过神经网络中的momentum算法, 但是为啥叫momentum(动量)算法呢? 和物 ...
- 优化器(AdaGrad,AdaDelta,RmsProp,Adam,Nadam,Nesterovs,Sgd,momentum)
以下来自: https://my.oschina.net/u/2935389/blog/2967242 https://mp.weixin.qq.com/s/NmSVXezxsQOZzK8pne3pC ...
- 深度学习:优化方法——momentum、Nesterov Momentum、AdaGrad、Adadelta、RMSprop、Adam
深度学习:优化方法 1. 指数加权平均(Exponentially weighted average) 2. 带偏差修正的指数加权平均(bias correction in exponentially ...
- 深度学习 免费课程_深入学习深度学习,提供15项免费在线课程
深度学习 免费课程 by David Venturi 大卫·文图里(David Venturi) 深入学习深度学习,提供15项免费在线课程 (Dive into Deep Learning with ...
- 梯度下降优化算法概述
本文原文是 An overview of gradient descent optimization algorithms,同时作者也在 arXiv 上发了一篇同样内容的 论文. 本文结合了两者来翻译 ...
- Github标星24k,127篇经典论文下载,这份深度学习论文阅读路线图不容错过
作者 | Floodsung 翻译 | 黄海广 来源 | 机器学习初学者(ID:ai-start-com) [导读]如果你是深度学习领域的新手,那么你可能会遇到的第一个问题是"我应该从哪篇 ...
- 一文掌握常用的机器学习模型(文末福利)
AI 科技大本营按:本文节选自微软亚洲研究院机器学习研究团队刘铁岩.陈薇.王太峰.高飞合著的<分布式机器学习:算法.理论与实践>一书.为了让大家更好地理解分布式机器学习,AI科技大本营联合 ...
最新文章
- 目标检测中的尺度--An Analysis of Scale Invariance in Object Detection – SNIP
- 12v小型电机型号大全_电机型号参数大全,再不怕看不懂型号了!建议收藏
- I/O流的概念和流类库的结构
- USTC English Club Note20171023(2)
- Android通过透明度设置背景变暗
- uva 11178(几何)
- (转)DevOps,就是开发吃掉运维?
- 经典的10道C语言例题(含参考代码)
- 2019软件测试最新视频教程大合集汇总
- 如何解决python 画图时 it could not find or load the Qt platform plugin “windows“ in “”的问题
- android 串口调试助手源码,android 串口调试工具源码
- linux几个工具的安装
- H266VVC电子书开放下载啦
- Windows Server 2012 R2 打印服务器的设置与管理-深博-专题视频课程
- 【评测】Alfa Aesar分子砌块
- 人工智能聊天机器人(有详细安装教程)/ 自动学习型
- 彻底弄透Java处理GMT/UTC日期时间
- 关于C++学习的思考
- Rust GUI 编程漫谈:超越 Web 与原生 GUI
- uniapp实现简单的音乐播放器功能
热门文章
- 如何在Mac和Windows PC之间无线共享文件
- redis 持久化和恢复
- 一个简洁的layui主题,可以用于旅游网页的制作
- hazelcast的坑爹事
- C语言关闭终端回显【转】
- 7-5 单词首字母大写 (15分)
- Excel 使用技巧集锦
- 禁用zookeeper admin页面
- 分享电脑日常使用的小技巧
- ubuntu20.04中打开echo daytime服务