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. 火狐firebug和firepath插件安装方法(最新)

    火狐浏览器最近下掉了firebug和firepath插件,用户即使下载了火狐55以下的版本,也无法查找到这两个插件. 因此,可以用以下方法来获取这两个插件. 1.下载火狐55以内版本安装包,安装时迅速 ...

  2. haproxy反向代理

    haproxy是个高性能的tcp和http的反向代理.它就是个代理.不像nginx还做web服务器 官网地址为www.haproxy.org nginx的优点和缺点 优点: 1.web服务器,应用比较 ...

  3. 手写SpringMVC实现

    设计自己的MVC架构 1.读取配置通过web.xml中加载我们自己写的MyDispatcherServlet和读取配置文件. 2.初始化九大组件只需实现基本的:1).加载配置文件:2).扫描用户配置包 ...

  4. mailto链接

    mailto链接是一种html链接,能够设置你电脑中邮件的默认发送信息,但是需要你电脑安装默认的E-mail软件,类似Microsoft Outlook等,那么点击mailto链接就可以获得默认设置的 ...

  5. enable-ssh-key-logon-disable-password-password-less-logon-centos/

    cat ~/.ssh/id_rsa.pub | ssh root@destination_server_address "cat >> ~/.ssh/authorized_key ...

  6. SpringBoot集成Atomikos使用Oracle数据库mybatis、jta框架

    项目中需要数据库分布式事物的实现,于是采用了atumikos技术. 因为生产上需要稳定,所以采用了springboot 1.5.9.RELEASE版本. 本文代码gitlab下载地址: https:/ ...

  7. leetcode70 爬楼梯 Python

    组合数学Fibonacci 例3.4.1   (上楼梯问题)某人欲登上n级楼梯,若每次只能跨一级或两级,问他从地面上到第n级楼梯,共有多少种不同的方法? (解)设上到第n级楼梯的方法数为an.分类统计 ...

  8. .net 多线程临时变量

    结果 : 5 5 5 5 5 结果:0 1 2 3 4

  9. 60秒的快速巡检Linux服务器性能

    uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP, ...

  10. Eclipse插件安装springBoot

    首先说的是Eclipse的springBoot开发 首先查看你自己的eclipse的版本,点击help-->about Eclipse查看你自己的eclipse的版本 找到 Eclipse的版本 ...