学界 | 超级收敛:使用超大学习率超快速训练残差网络

选自arXiv

机器之心编译

参与:Panda

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

  • 论文地址:https://arxiv.org/abs/1708.07120
  • 代码地址:http://github.com/lnsmith54/super-convergence

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

这篇论文的贡献有:

1. 我们展示了一个新现象的存在(即超级收敛,可以使用 CLR 非常快速地训练残差网络),并且系统性地检查了这种现象会发生或不会发生的边界限制情况。

2. 我们表明大学习率(LR)可以正则化训练的网络,并且假设这种正则化可以在超级收敛发生时提升测试准确度。

3. 通过使用简化版的二阶 Hessian-free 优化方法来估计最优学习率,我们为大学习率的使用提供了支持。

4. 我们表明,但可用的有标注数据更少时,超级收敛的影响将更加显著。

图 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 得到。经典(分段的常数)训练方案的最优初始学习率通常位于这些最小值和最大值之间。

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

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-08-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

榜单 | Github 深度学习项目排行榜

【新智元导读】GitHub上根据星级(stra)列出了最常用的53个深度学习项目。其中,最受欢迎的是TensorFlow。表格的整理人ID分别是aymericd...

48710
来自专栏量子位

深度学习在推荐系统上的应用

作者:陈仲铭 量子位 已获授权编辑发布 转载请联系原作者 深度学习最近大红大紫,深度学习的爆发使得人工智能进一步发展,阿里、腾讯、百度先后建立了自己的AI La...

3915
来自专栏机器学习算法原理与实践

用tensorflow学习贝叶斯个性化排序(BPR)

    在贝叶斯个性化排序(BPR)算法小结中,我们对贝叶斯个性化排序(Bayesian Personalized Ranking, 以下简称BPR)的原理做了...

2182
来自专栏智能算法

神经网络也可以有逻辑——解析视觉推理(Visual Reasoning)

前言 在我们的上一篇文章最前沿:百家争鸣的Meta Learning/Learning to learn (点击「阅读原文」获取此文)中,我们谈到了星际2 需要...

3668
来自专栏IT派

入门十大Python机器学习算法

今天,给大家推荐最常用的10种机器学习算法,它们几乎可以用在所有的数据问题上: 1、线性回归 线性回归通常用于根据连续变量估计实际数值(房价、呼叫次数、总销售...

4245
来自专栏BestSDK

10 种最热门的机器学习算法|附源代码

1、线性回归 线性回归通常用于根据连续变量估计实际数值(房价、呼叫次数、总销售额等)。我们通过拟合最佳直线来建立自变量和因变量的关系。这条最佳直线叫做回归线,并...

4025
来自专栏机器之心

如何用深度学习做自然语言处理?这里有份最佳实践清单

选自ruder.io 机器之心编译 参与:机器之心编辑部 对于如何使用深度学习进行自然语言处理,本文作者 Sebastian Ruder 给出了一份详细的最佳实...

3329
来自专栏大数据

10大数据挖掘算法及其简介

AiTechYun 编辑:xiangxiaoshan 我希望你能把这篇文章作为一个跳板,学习更多关于数据挖掘的知识。 算法如下: 1. C4.5 2. k-me...

1927
来自专栏决胜机器学习

机器学习(二十四) ——从图像处理谈机器学习项目流程

机器学习(二十四)——从图像处理谈机器学习项目流程 (原创内容,转载请注明来源,谢谢) 一、概述 这里简单讨论图像处理的机器学习过程,主要讨论的是机器学习的项...

4085
来自专栏人工智能头条

神经网络也可以有逻辑——解析视觉推理(Visual Reasoning)

3952

扫码关注云+社区

领取腾讯云代金券