1506.01186-Cyclical Learning Rates for Training Neural Networks

论文中提出了一种循环调整学习率来训练模型的方式。

如下图:

通过循环的线性调整学习率,论文作者观察到的一种比较典型的曲线如下图:

图中,使用循环调整方式的模型,虽然训练中准确度有很大的波动,但是这种波动并不影像模型很快的收敛,并且以更快的速度收敛到了固定学习率或者学习率衰减方案中能达到的最高准确率。

这种方式需要设置的超参有三个, min bound,max bound ,step size。

step size一般选择epoch的step数的2-8倍。例如一个epoch里面有500步,则2000作为step size是不错的选择。

确定step size之后,使用一个简短的训练来确定 min-max bound,在一个训练里,以循环学习率的方式,线性的提升学习率,画出学习率与准确率关系的曲线。模型准确率最快增长的学习率适合用来做min bound,模型准确率增长减缓甚至直接出现负增长的地方,适合作max bound。如下图中所示:

模型一开始就出现了很快的准确率增长,所以选择0.001作为min bound,而0.005的位置出现了负增长,这里作为max bond。

另外论文提出了另外两种变种:

  • triangular2; the same as the triangular policy except the learning rate difference is cut in half at the end of each cycle. This means the learning rate difference drops after each cycle.

    每次cycle之间才做一次lr decay

  • exp range; the learning rate varies between the minimum and maximum boundaries and each boundary value declines by an exponential factor of gamme^iteration

    随着每个iteration都做一次lr decay

论文还尝试把循环学习率与各种优化算法都结合了一下,但是看结果,除了nestrov动量法,其他几种优化算法的效果都不好。

这是可以理解的,因为除了单纯的动量法,其他几种方法,都会针对学习率进行动态的调整。而循环学习率引入的学习率循环变化必然会破坏学习率动态调整的某些特性。所以结果就变得无法估计。

另外,针对学习率固定decay的效果与循环学习率的对比,论文作者单独设计了一个实验,循环学习率只循环一次,在学习率达到最小的时候,就固定住,或者做decay,不再上升,但是最后的结果,还是不如循环学习率的效果好。

这种循环学习率的方式,似乎是因为循环引入了更多的随机性?让梯度有了更多的机会往不同的方向探索?

论文中没有提出很好的理论解释。

1506.01186-Cyclical Learning Rates for Training Neural Networks的更多相关文章

  1. (转)A Recipe for Training Neural Networks

    A Recipe for Training Neural Networks Andrej Karpathy blog  2019-04-27 09:37:05 This blog is copied ...

  2. [Converge] Training Neural Networks

    CS231n Winter 2016: Lecture 5: Neural Networks Part 2 CS231n Winter 2016: Lecture 6: Neural Networks ...

  3. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week2, Assignment(Optimization Methods)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. 请不要ctrl+c/ctrl+v作业. Optimization Methods Until now, you've always u ...

  4. Training Neural Networks: Q&A with Ian Goodfellow, Google

    Training Neural Networks: Q&A with Ian Goodfellow, Google Neural networks require considerable t ...

  5. 实现径向变换用于样本增强《Training Neural Networks with Very Little Data-A Draft》

    背景: 做大规模机器学习算法,特别是神经网络最怕什么--没有数据!!没有数据意味着,机器学不会,人工不智能!通常使用样本增强来扩充数据一直都是解决这个问题的一个好方法. 最近的一篇论文<Trai ...

  6. Learning How To Code Neural Networks

    原文:https://medium.com/learning-new-stuff/how-to-learn-neural-networks-758b78f2736e#.ly5wpz44d This i ...

  7. A Recipe for Training Neural Networks [中文翻译, part 1]

    最近拜读大神Karpathy的经验之谈 A Recipe for Training Neural Networks  https://karpathy.github.io/2019/04/25/rec ...

  8. [CS231n-CNN] Training Neural Networks Part 1 : activation functions, weight initialization, gradient flow, batch normalization | babysitting the learning process, hyperparameter optimization

    课程主页:http://cs231n.stanford.edu/   Introduction to neural networks -Training Neural Network ________ ...

  9. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Initialization)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. Initialization Welcome to the first assignment of "Improving D ...

随机推荐

  1. TypeScript 学习资料

    TypeScript 学习资料: 学习资料 网址 TypeScript Handbook(中文版)(推荐) https://m.runoob.com/manual/gitbook/TypeScript ...

  2. [tomcat]tomcat 9.0.x 控制台中文乱码解决办法

    根本原因,tomcat 输出的东西,与cmd控制台或者IDE控制台编码不一致. 修改tomcat输出内容的编码,%CATALINA_HOME%/conf/logging.properties 9.0. ...

  3. 申请Let's Encrypt永久免费SSL证书

    Let's Encrypt简介 Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla.Cisco.Akamai.IdenTrust.EFF等组织人员发起 ...

  4. ORACLE数据库自动备份压缩的批处理脚本 rar 7z

    使用7z的版本: @echo offset filename="d:\backup\dbname_%date:~0,10%"set zipfile="d:\backup\ ...

  5. Scrapy实战篇(九)之爬取链家网天津租房数据

    以后有可能会在天津租房子,所以想将链家网上面天津的租房数据抓下来,以供分析使用. 思路: 1.以初始链接https://tj.lianjia.com/zufang/rt200600000001/?sh ...

  6. css定义好看的垂直滚动条

    滚动条的css样式主要有三部分组成: 1.::-webkit-scrollbar   定义了滚动条整体的样式:    2.::-webkit-scrollbar-thumb  滑块部分:     3. ...

  7. Python import与from import使用及区别介绍

    Python程序可以调用一组基本的函数(即内建函数),比如print().input()和len()等函数.接下来通过本文给大家介绍Python import与from import使用及区别介绍,感 ...

  8. IdentityServer4(一)使用客户端凭证方式

    这个篇文章主要是记录自己参考官方文档搭建身份认证的过程 使用的.NET Core2.2 参考地址:https://identityserver4.readthedocs.io/en/latest/qu ...

  9. .net core2 单元测试

    1.下载   https://marketplace.visualstudio.com/items?itemName=RandomEngy.UnitTestBoilerplateGenerator 2 ...

  10. (转)SQLServer_十步优化SQL Server中的数据访问五

    第九步:合理组织数据库文件组和文件 创建SQL Server数据库时,数据库服务器会自动在文件系统上创建一系列的文件,之后创建的每一个数据库对象实际上都是存储在这些文件中的.SQL Server有下面 ...