【1708.07120】“超级收敛“:使用很大的学习率让残差网络迅速收敛

模型训练的收敛速度由什么决定?学习率?还是参数平面的光滑程度(参数数量,层的连接等)?数据集(若是分类模型,则看各个类别的差异大不大)?

典型的学习率调整策略为给定一个最小和最大学习率,然后以learning rates change linearly的策略调整,从最大学习率慢慢靠近最小学习率。有人对各种调整策略做了比较,发现结果并没有什么明显差异,就选择了最简单的线性调整方法。

本文发现,刚开始的学习率一定要是一个很小的学习率,这样才可能会出现“超级收敛”的现象。

本文提出一种学习率调整策略,称为“循环学习率”(cyclical learning rate, CLR)。CLR需要指定一个最小和最大学习率边界,以及一个步长。这个步长就是每次更新学习率所需要的迭代次数。一次循环包含两个阶段:一个阶段学习率减小,另一个阶段学习率增加。实验测试了步长分别为1k,3k,5k,10k的测试情况。

针对学习率对训练过程以及网络的影响,有一种测试方法,叫学习率范围测试(LR range test)。具体做法是,先取一个很小的学习率(接近0),然后在整个训练过程中,慢慢增加。这样可以提供网络在一个学习率范围内的训练情况。一个典型的accuracy-lr的曲线见图2a。

曲线的最高点是CLR的最大学习率,曲线开始收敛的点是CLR的最小学习率(或者最大学习率的/3或/4)。

下图描述的是损失函数的空间拓扑结构

刚开始,斜率很陡峭,随着训练进行,慢慢平缓,进入下图中:

进入到了沟里面,然后找到一个局部极小值。

如果损失函数的空间拓扑满足上述的情形,CLR就非常适合这样的训练。刚开始用很小的学习率找到正确的优化方向,开始收敛。进入沟里,用大的学习率通过沟,最后需要找到局部极小值时,再回到刚开始的很小的学习率。

最后作者说,并不是任何数据集、任何网络都能出现“超级收敛”的现象。也许有,只是我们还没有找到方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值