2017年不可或缺的深度学习优化亮点盘点.txt2020年06月26日22时16分17秒

作者: 发表时间:2020-06-26 19:37:52 浏览人数:166

[IT168信息]深度学习的最终目标是找到一个基本的概括,即找到一个快速可靠的方法。随机梯度下降(SGD)是一种已有60年历史的算法(Robbins和Monro,1951)[1],它对当前的深度学习算法的后向传播具有重要意义。

近年来,人们提出了许多不同的优化算法,它们使用不同的方程来更新模型参数。Adam(Kingma and Ba,2015)[18]于2015年推出,至今仍是最常用的算法之一。这表明,从机器学习实践者的角度来看,优化深度学习的更佳实践将在很大程度上保持不变。

不过,今年已经形成了新的思路,这可能会形成我们未来对优化进行建模的方式。在本文中,我们将讨论最令人兴奋的亮点和最有希望的深入学习方向。

尽管自适应学习率方法(如Adam)是非常有效的,但是计算机视觉和NLP中许多任务(如目标识别或机器翻译)的最新结果仍然是由原始原语实现的。最近的理论对此提供了一些原因,这表明自适应学习率方法收敛于不同(且不太理想)的最小值,而不是带动量的SGD。从经验中可以看出,在目标识别、字符级语言建模和选区分辨率等方面,自适应学习率方法得到的最小值略低于SGD方法。这似乎与直觉相反,因为Adam有很好的收敛性保证,其自适应学习速度应该优于一般的SGD。然而,Adam等自适应学习率方法并非完美无缺。

一个因素解释了亚当概括的能力,并且在一些数据集中,与SGD相比,体重减轻。权重衰减是图像分类问题中最常用的方法,每次参数更新后,权重θt都会被衰减。通过将它们乘以每个参数更新,衰减率略低于1:

这样可以防止重量变得太重。因此,重量衰减也可以理解为2-正则化项,其取决于重量衰减率加上损失:

权值衰减通常在许多神经网络库中实现,或者作为上述正则化项,或者直接修改梯度。由于在动量和Adam更新方程中对梯度进行了修改(与其他衰减项相乘),权重衰减不再等于L2正则化。因此,loshchilov和Hutter(2017)[19]提出在参数更新后的原始定义中加入参数更新,从而实现权值衰减和梯度更新的解耦。

其中,ηη是学习率,第二个方程中的第三项是解耦权衰减。同样,对于重量衰减的Adam w,我们可以得到:

M TM T和mtmt,V TV TV和vtv^T分别是次和第二次的偏差和偏差修正估计。β1β1和β2β2是它们的衰减率,并加入了相同的重量衰减项。作者认为,这大大提高了Adam的泛化性能,使其在图像分类数据集上与SGD相竞争。

在最近的文献中,发现较低的β2值控制了Adam过去平方梯度的指数移动平均值的贡献。例如,0.990.99或0.90.9和默认的0.9990.999在各自的应用程序中表现良好,这表明可能存在指数移动平均问题。

ICLR2018提交的一份报告将此问题形式化,并指出过去平方梯度的指数移动平均是自适应学习率方法泛化性能差的另一个原因。自适应学习率方法的核心是通过过去平方梯度的指数移动平均来更新参数,如adadelta、rmsprop和Adam。指数平均的贡献是正的:在训练过程中要防止学习率变小,这是adagrad算法的关键缺陷。然而,这种逐渐的短期记忆可能成为其他场景的障碍。

在Adam收敛到次优解的环境中,有人观察到一些粒子提供了一个大而丰富的信息梯度,但由于这些小批量很少发生,指数平均值降低了它们的影响,导致收敛性差。作者给出了凸优化问题的一个简单例子,其中Adam可以观察到相同的行为。

为了解决这一问题,作者提出了一种新的算法amsgrad,该算法利用过去平方梯度的更大值代替指数平均值来更新参数。无偏差校正的完整amsgrad更新估计如下:

在很多情况下,需要改进的不是优化模型,而是我们的超级参数。最近的语言建模实例表明,与更复杂的模型相比,调整LSTM参数和正则化参数可以产生最新的结果。

优化在深度学习中的一个重要超参数是学习率η。事实上,SGD要求学习率退火调度在开始时收敛到一个好的最小值。一般认为,自适应学习速率方法(如Adam)会对不同的学习速率产生更大的影响,因为它们会更新自己的学习速率。然而,即使对于这些方法,良好的学习率和更佳的学习率也可能有很大的不同。

调整学习率退火和动量参数的SGD不仅与Adam竞争,而且收敛速度更快。另一方面,尽管我们可能认为Adam学习率的适应性可以模仿学习退火,但是清晰的退火调度仍然是有益的:如果我们在Adam中加入SGD型学习率退火,它会收敛得更快,并且比SHD机器翻译更好。

事实上,学习率退火调度工程似乎是一个新的特征工程,因为我们经常可以找到高度调整的学习率退火调度,从而改善了模型的最终收敛性。一个有趣的例子是Vaswani等人。虽然人们通常认为模型的超参数服从于大规模的超参数优化,但将学习率的退火调度作为同样关注细节的焦点是有趣的:作者使用Adam,β1=0.9,非缺省β2=0.98β2=0.98,ε=10-9,可以说是学习率η的最退火计划:

Sgdr是另一个值得分析的新发展,它是使用热重启而不是学习率退火的SGD的替代品。每次重新启动时,学习率都会初始化为一个值,并计划降低。这一点很重要,因为优化不是从一开始就开始的,而是从模型收敛的最后一步参数开始的。关键因素是,学习率随正退火计划而降低,正退火计划可迅速降低学习率,具体如下:

其中,ηImin和ηIMAX是第i次运行期间的学习速率范围,tcur指示自上次重新启动以来已通过的日历数,Ti指定下一次重新启动。与传统的学习率退火相比,图1显示了Ti=50、Ti=100和Ti=200的热启动计划。

重启后的初始学习率很高,用于将参数从初始收敛点逐出到损失面不同区域的最小值。正退火使模型能够快速收敛到一个新的更好的解。根据作者的经验,发现热启动的SGD比学习率退火的SGD少24倍,以达到可比性或更好的性能。

快照技术是近年来的一项热门技术。在训练单个模型时,热启动用于装配基本自由的装配。这个方法训练一个单一的模型,直到它与我们前面看到的余弦退火计划收敛。然后保存模型参数,执行热重启,并重复这些步骤m次。最后,集成所有保存的模型快照。在图2中,您可以看到sgd优化行为,与快照集成行为相比,它在错误表面上很常见。

一般来说,一个团队的成功取决于组合中模式的多样性。因此,快照集依赖于余弦退火调度的能力,使得模型在每次重启后收敛到不同的局部更优值。实践证明,这是正确的,在cifar-10、cifar-100和svhn上都取得了良好的效果。

热重启和亚当没有工作,因为他们是功能失调。在确定了重量衰减后,loshchilov和Hutter还将Adam扩展到热重启。它们将ηImin=0和ηIMAX=1设置为:

他们建议从初始的小Ti开始(所有时段都在1到10之间),并在每次重新启动时将其乘以tmult因子(例如,tmult=2tmult=2)。

去年的论文(以及reddit的“2016年度更佳论文奖”得主)由andreechowicz等人撰写。他们对lstm优化进行了培训,以便在培训期间更新主模型。不幸的是,学习单个lstm优化,甚至使用预先训练过的lstm优化进行优化,都会大大增加模型训练的复杂性。

今年另一篇非常有影响力的学习论文使用LSTM生成领域特定的语言模型架构(zoph和Quoc,2017)。虽然搜索过程需要大量的资源,但是发现的体系结构可以用来替换现有的体系结构。该搜索过程已经被证明是有效的,并且找到了一种在语言建模中获得最新结果的体系结构,其结果与cifar-10上的最新技术相竞争。

Bello等人。定义了一种特定于域的语言,它由对优化有用的原语组成,例如这些指数移动平均数。然后,从可能的更新规则空间中抽取一个更新规则,利用该更新规则对模型进行训练,并根据训练模型在测试集上的性能对RNN控制器进行更新。完整的程序如图3所示。

这说明过去梯度和当前梯度之间的动量协议是优化深度学习模型的关键信息。

α通常设置为1或2。与上述类似,此更新依赖于α+F(T)或α-F(T)梯度的方向协议。作者指出,powersign和addsign在cifar-10中优于Adam、rmsprop和SGD,并可移植到Imagenet分类和机器翻译等任务中。

优化与泛化密切相关,因为模型收敛的最小值决定了模型泛化的程度。因此,优化的进展与理解这个最小值的泛化行为的理论进展密切相关,对深度学习中的泛化也有了进一步的理解。

然而,我们对深部神经网络泛化行为的认识还很肤浅。最近的研究表明,可能的局部极小值的数目随着参数的数目呈指数增长。考虑到当前深度学习体系结构中参数的数量庞大,将这些模型集成到一个通用的解决方案中仍然很困难,特别是考虑到它们能够完全记住随机输入。

ICLR 2018通过一系列烧蚀分析提交的一份报告显示,模型在激活空间中依赖于单一方向,即单个单元或特征映射的激活是其泛化性能的良好预测。它们表明,这种模式在不同的数据集上训练模型,并在不同程度上训练标签损坏。他们发现,辍学无助于解决这一问题,而大规模标准化不利于单方面依赖。

虽然这些研究结果表明,深入学习优化还有很多方面是我们不知道的,但重要的是要记住,在收敛保证和大量工作中存在凸优化,现有的思想和观点也可以在一定程度上应用于非凸优化。Nips 2016的大型优化教程完美地概述了该领域的更多理论工作。

统计 字数: 15414 汗字: 12938 数字:128 大写字母:168 小写字母:849 符号:1331 总字节数:28352 共:70行2020年06月26日22时16分18秒

Top
RELATEED CONSULTING相关咨询
选择下列产品马上在线沟通
服务时间:9:00-19:00
你可能遇到了下面的问题