Abstract
提出了一个CLR方法,让learning rate在一个合理边界内变化(可大可小),变化的learning rate比固定的学习率,有助于提升分类精度,并且不需要调参,还能减少迭代次数。
改论文提供了一种简单方式,去估计learning rate的合理便捷边界。
introduction
θt = θt−1 − εt ∂L
太小的学习率会是的训练收敛很慢,太大的学习率会使得训练不收敛。【不收敛会产生什么影响?——参数学不好?训练精度不好,eval精度也不好?】
一个比较常用的方法是,learning rate 逐渐递减。本文作者发现learning rate在合理边界内变化产生的效果比固定值好。跟自适应学习率不同的是,CLR不进行学习率的累加操作。
Cyclical Learning Rates
通过观察,增加的学习率短期上看对效果有负向影响,但是从长远来看,是有益的影响。这种观测,产生了变化学习率的想法。而不再是一味地减少学习率或者固定的学习率。
为什么CLR会起作用?
直观的解释:从损失函数上来解释。认为将损失最小化的困难来自于鞍点而不是不良的局部极小值。鞍点具有小的梯度,会减慢学习过程。但是,提高学习率可以更快地穿越鞍点。关于CLR为何起作用的一个更实际的原因是,最佳学习率很可能介于边界之间,并且在整个训练过程中将使用接近最佳学习率。
如何确定学习率边界?
确定学习率上下界的方法则可以使用LR range test方法,即使用不同的学习率得到精度曲线,然后获得精度升高和下降的两个拐点,或者将精度最高点设置为上界,下界设置为它的1/3大小。
总结:
1.变化的学习率,会对模型效果产生正向有益。
2.改论文的方法CLR,个人觉得没啥大用,知道有人往这个方向优化就好,实在忍不住,也可以尝试一下。还是使用开发好的模型优化方法吧,比如Adagrad、ADAM等方法。
参考
1.论文:Cyclical learning rates for training neural networks