快捷搜索:  汽车  科技

神经网络隐层系数修正(使用超大学习率超快速训练残差网络)

神经网络隐层系数修正(使用超大学习率超快速训练残差网络)3 超级收敛图 1:使用 Resnet-56 在 Cifar-10 上的超级收敛示例。(a) 超级收敛示例与经典(分段的常数)训练方案的测试准确度的比较;(b) 不同步长的超级收敛的测试准确度的比较。论文地址:https://arxiv.org/abs/1708.07120代码地址:http://github.com/lnsmith54/super-convergence在这篇论文中,我们展示了一个现象,即比起标准的训练方法,可以使用少一个数量级的迭代次数训练残差网络,我们将其命名为「超级收敛(super-convergence)」。超级收敛的关键元素是使用周期学习率(cyclical learning rate)和一个很大的最大学习率进行训练。此外,我们也给出了证据说明使用很大的学习率进行训练可以通过对网络的正则化实现表现水平的提升。另外,我们还表明,当有标注的训练数据有限时,超级收敛能

选自arXiv

机器之心编译

参与:Panda

训练大型神经网络往往很耗时间。在最近一篇论文中,美国海军研究实验室和马里兰大学的两位研究者展示了一种名叫「超级收敛」的现象,可以将残差网络的训练迭代次数减少一个数量级。机器之心对该研究进行了摘要介绍,研究详情请参阅原论文。另外,该研究的实验代码也已公开发布。

  • 论文地址:https://arxiv.org/abs/1708.07120

  • 代码地址:http://github.com/lnsmith54/super-convergence

神经网络隐层系数修正(使用超大学习率超快速训练残差网络)(1)

在这篇论文中,我们展示了一个现象,即比起标准的训练方法,可以使用少一个数量级的迭代次数训练残差网络,我们将其命名为「超级收敛(super-convergence)」。超级收敛的关键元素是使用周期学习率(cyclical learning rate)和一个很大的最大学习率进行训练。此外,我们也给出了证据说明使用很大的学习率进行训练可以通过对网络的正则化实现表现水平的提升。另外,我们还表明,当有标注的训练数据有限时,超级收敛能比标准训练方法带来更大的水平提升。通过使用 Hessian Free 优化方法的一个简化版本计算对最优学习率的估计,我们也提供了对大学习率的优势的解释。要复现本论文的数据结果,可以在 http://github.com/lnsmith54/super-convergence 获取实验的架构和代码。

图 1:使用 Resnet-56 在 Cifar-10 上的超级收敛示例。(a) 超级收敛示例与经典(分段的常数)训练方案的测试准确度的比较;(b) 不同步长的超级收敛的测试准确度的比较。

3 超级收敛

在这项研究中,我们使用了周期学习率(CLR)和学习率范围测试(LR range test),它们是由 Smith [2015] 最早引入的,后来在 Smith[2017] 中进行了更新。要使用 CLR,需要指定最小和最大的学习率边界和步长(stepsize)。步长是指每一步迭代的次数,而一个周期包含了这样两步——一步中学习率增大,另一步中学习率减小。Smith[2015] 测试了多种在两个边界值之间改变学习率的方法,发现它们都是等效的,所以就推荐使用其中最简单的方法,即让学习率线性变化。我们注意到 Loshchilov and Hutter [2016] 独立地提出了一种与 CLR 类似的方法,他们称之为 SGDR。SGDR 方法使用了余弦的锯齿模式,然后又跳回到原来的值。不幸的是,使用这种模式不可能观察到超级收敛现象。我们的实验表明,训练必须从一个很小的初始学习率开始才能出现超级收敛。

学习率范围测试可以用于确定超级收敛对一个架构而言是否是可能的。在学习率范围测试中,训练从 0 或非常小的学习率开始,然后在一个训练前的运行过程中缓慢线性增大。这能提供网络在一个学习率范围内能得到多好的训练结果的信息。图 2a 给出了学习率范围测试的典型曲线,其中测试准确度有一个明显的峰值。当从很小的学习率开始时,网络会开始收敛,然后随着学习率增大,最终会大到导致训练/测试准确度下降。这个峰值处的学习率就是使用 CLR 时用作最大学习率边界的最大值。最小学习率可以通过将这个最大值除以 3 或 4 得到。经典(分段的常数)训练方案的最优初始学习率通常位于这些最小值和最大值之间。

神经网络隐层系数修正(使用超大学习率超快速训练残差网络)(2)

神经网络隐层系数修正(使用超大学习率超快速训练残差网络)(3)

图 6:超级收敛与使用分段常数学习率方案的经典训练方法的结果比较。(a) 训练样本有限时,在 Cifar-10 上的测试准确度比较;(b) 使用 Resnet-20 和 Resnet-110 的测试准确度比较。

猜您喜欢: