Cyclic Learning rate和SGDR-学习率调整策略论文两篇

概述

之前的学习率调整策略可以分为两种,分别是逐渐衰减策略和自适应调整策略。常用的逐渐衰减策略包括阶梯式地衰减(step learning rate decay)和指数衰减(expotianally learning rate decay)策略。阶梯式衰减的例子:初始学习率为0.01,在训练分别执行到50、90和120周期数时将学习率减少为原来的1/10(乘以0.1)。指数衰减就是每个周期都将学习率减少一点,比如减少到原来的0.9。 具有代表性的自适应调整策略便是Ada系列的优化算法(Adagrad、Adadelta、Adam等),这些优化算法一般都包含对初始学习率进行自适应地调整,而且每个可学习参数具有独立的学习率,不像逐渐衰减策略一样,每个参数使用的是公共的全局学习率。除了以上策略,还有其他一些策略同样包含在Pytorch库中,请自行参考。以上两种策略具有一个共同的特点:学习率都是逐渐减小的,其实这么做是有原因的,因为研究社区对神经网络模型的研究认为,随着学习的进行,模型不断接近极值点,这时如果学习率太大的话会造成模型越过极值点或者发散。但是,随着对神经网络参数空间的不断理解,研究者们发现,模型参数空间中存在的大多是鞍点或者表现较差的极小值点,前者会严重影响模型的学习效率,后者会使得模型的最终表现很差。另外,模型应该收敛到参数空间中半径较宽广(broad)区域(吸引盆,basin of attraction)的极值点,这样的点泛化能力较强[1]。

基于以上问题,CLR(Cyclical Learning Rates)[2]和SGDR( Stochastic Gradient Descent with warm Restarts)[3]的作者根据以前的研究发现,训练时偶尔增大学习率(不是持续减少),虽然短期内会造成模型性能表现较差,但是最终训练结果在测试集上表现却比传统的逐渐衰减策略更好。因为这样会让模型以更快的(更大的学习率)速度逃离鞍点,从而加速模型收敛。而且,如果模型收敛到了半径较窄的吸引盆区域的极值点区域(泛化能力差),那么突然增大学习率也可以让模型跳出该极值点区域,从到收敛到不易跳出的较宽的(泛化能力强)吸引盆区域的极值点。另外,这些方法都是与SGD结合使用的,由于目前没有一个广泛被验证的表现比SGD好的自适应优化算法,所以最终的表现应该也是比自适应算法的效果好。CLR和SGDR虽然在学习率的调整上存在些微不同,但是它们有着更大的共同点:周期性以某种方式增大当前学习率到(提前设定的)最大学习率(max lr),并以另外的方式逐渐减小学习率直到(提前设定的)最小学习率。所以我将这两篇论文放在一起总结。

为了突出CLR和SGDR不同于以往的学习率策略,我们将它们归纳为新的学习率策略类别:周期性重启学习率调整策略。两篇论文都用试验说明了周期性地增加学习率对于模型最终的性能是有帮助的。它们的共同点似乎也可以说明,具体地学习率增加和减小策略其实对模型性能的提升贡献并不大,主要的贡献来自学习率的短期增加(两篇论文中都提到多种学习率增减策略)。对比具体两个方法增加学习率的方式,可以将SGDR称为hard restart,因为每次循环开始时学习率都是断崖式增加的,相反,CLR应该称为soft restart。

方法

CLR

CLR实现

CLR的实现很简单,而且很容易集成到目前的大部分模型中,而且不会引入没有额外的计算负担:

  1. 首先确定学习率的上下界(即基础(最小)学习率和最大学习率)、一个循环的步长数(即占用多少个训练step)和学习率增减方式;
  2. 根据增加方式以循环步长的1/2的(step size)在每步训练结束后增加学习率直到达到最大学习率,然后根据减少方式以剩余的1/2周期步长数(step size)在每步训练结束后减少学习率直到最小学习率;
  3. 重复步骤2直到训练结束,下图2为CLR方法的直观表示,其使用了三角式学习率增减方式(线性增加和线性减少)。论文中还给出了CLR的Pytorch实现。

从上面的CLR的实现看出,除了确定学习率增减策略外,CLR还需要确定三个超参数,一个是学习率上下界,另一个是一个循环步长。

确定学习率边界

论文中提出使用“LR Range test”的方法确定学习率上下界:先预定义一个较大范围的学习率区间(如[0,2.0]),将模型训练一些周期,训练的每个周期(epoch)从学习率区间的下限线性增加学习率,直到区间上限,然后会得到一个学习率与训练集精度的曲线图(如下图),在该图中选择精度稳定增长的学习率范围作为CLR的学习率上下界(如从图中可以确定的上下界分别为0.001和0.006)。或者根据经验确定区间:学习率上界一般是使模型收敛的最大学习率的2倍,学习率下界一般是上界的1/4到1/3。

确定循环步长

作者指出模型的精度其实对循环的步长数是比较鲁棒的,根据他们的实验,循环的步长数一般为一个周期步长数的2~7倍,也就是说一个学习率调整(增和减)循环周期会跨越2到7个训练周期。注意:最好在循环结束时停止训练,此时学习率最小,准确率最高,这一点在SGDR的论文中也有提及。

SGDR

SGDR实现

SGDR其实在论文中并没有以概述提到的问题为切入点来引出SGDR,而是从warm restart在非梯度优化算法中的应用获得灵感,将其应用在梯度优化算法中。SGDR的学习率调整策略:

  1. 先确定学习率的上下界和循环周期步长(作者没有在论文中给出具体确定上下界和循环周期步长方法,只是给出了这些超参数的不同值的组合试验结果,而且论文中也尝试了将循环周期步长设置为动态增长的试验);
  2. 根据下面的公式,使用最大学习率以循环周期步长(step size)在每步训练结束后减少学习率直到最小学习率,然后将学习率恢复到最大学习率;
  1. 重复步骤2直到训练结束,下图为上述以及论文提到的多种学习率调整策略。

实验效果

CLR

作者的实验还是比较全面的,使用了不同的模型在不同的数据集上进行了实验,基本上都会有提升,而且模型拟合速度也加快很多。

另外,作者还将CLR与其他的自适应学习率调整算法进行结合实验,实验表明并没有显著的提升,部分结合还出现了微降,这说明CLR不适合与其他的自适应学习率调整算法结合使用。

SGDR

作者在CIFAR-10和CIFAR-100做了对比试验:

参考文献

[1] Averaging weights leads to wider optima and better generalization

[2] Cyclical Learning Rates for Training Neural Networks

[3] SGDR: STOCHASTIC GRADIENT DESCENT WITH WARM RESTARTS

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容