【深度学习】Cyclical Learning Rates 周期学习率
论文地址:https://arxiv.org/abs/1506.01186
目录
1. 背景介绍
2. 实现方式
2.1 选取base lr,max lr
2.2 选取step size 步长
2.3 选取衰减函数
3. 论文结果
1. 背景介绍
学习率是深度神经网络中很重要的一个超参数,指代的是我们在梯度下降时参数更新的步长,选取合适的学习率十分重要,太小了会减慢收敛,太大会在最优点旁边左右摆动,如下图所示。
传统的优化器分为“固定学习率”的(SGD)和“自适应学习率”的(Adaboost,Adam,...)。详细信息参考:https://blog.csdn.net/u013166817/article/details/83375158。而Cyclical Learning Rates(CLR)是一种自适应学习率的方法,它可以和上述的优化器结合,让学习率在一个范围内周期性地变化,从而加速收敛并提升模型性能。
直觉上看,随着训练次数的增加我们应该保持学习率一直减小以便于在某一时刻达到收敛。
然而,事实恰与直觉相反,使用一个在给定区间里周期性变化的LR可能更有用处。原因是周期性高的学习率能够使模型跳出在训练过程中遇到的局部最低点和鞍点。事实上,Dauphin等指出相比于局部最低点,鞍点更加阻碍收敛。如果鞍点正好发生在一个巧妙的平衡点,小的学习率通常不能产生足够大的梯度变化使其跳过该点(即使跳过,也需要花费很长时间)。这正是周期性高学习率的作用所在,它能够更快地跳过鞍点。
参考:https://blog.csdn.net/weixin_43896398/article/details/84762886
2. 实现方式
详细流程可参考CLR的keras实现源码:https://github.com/bckenstler/CLR
具体实现过程,让lr在base_lr 和 max_lr 之间周期行变化(先增加再减小),一轮(cycle)包含两个step_size,每次step lr会更新一次。更新方式(衰减函数)有多种选择。
基本更新流程如下:
cycle = np.floor(1+iterations/(2*step_size))
x = np.abs(iterations/step_size - 2*cycle + 1)
lr= base_lr + (max_lr-base_lr)*np.maximum(0, (1-x))*scale_fn(x)
cycle依赖于整个训练的iterations迭代次数,随着迭代次数增加,cycle也会增加;
lr依赖于最小最大lr以及衰减函数scale_fn。
2.1 选取base lr,max lr
没有特别的方法,只能先预设两个值,然后训练几个epoch,找到稳定的最小值和最大值。如下图:
max lr 一般取平缓区域开始或结束位置,如图中的0.005/0.006左右;
base lr 则是上述max lr 的1/3或1/4,比如图中的0.001左右。
当然也可以具体问题具体分析最大最小学习率。
2.2 选取step size 步长
已有证明,将step size设成一个epoch包含的iteration数量的2-10倍即可。
2.3 选取衰减函数
triangular: scale_fn = 1;
triangular: ;
exp_range: , gamma可以取0.99994等值;
3. 论文结果
如下图,CLR确实加快了收敛并且提升了准确率。
【深度学习】Cyclical Learning Rates 周期学习率相关推荐
- 深度学习Deep learning小白入门笔记——PanGu模型训练分析
书接上回 深度学习Deep learning小白入门笔记--在AI平台上训练LLM--PanGu 对训练模型重新认知与评估. 模型评估 在训练过程中或训练完成后,通常使用验证集或测试集来评估模型的性能 ...
- 机器学习——深度学习(Deep Learning)
Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立.模拟人脑进行分析学习的神经网络,近期研究了机器学习中一些深度学习的相关知识,本文给出一些非常实用的资料和心得. Key W ...
- 机器学习——深度学习(Deep Learning)经典资料
Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立.模拟人脑进行分析学习的神经网络,最近研究了机器学习中一些深度学习的相关知识,本文给出一些很有用的资料和心得. Key Wo ...
- 机器学习(Machine Learning)、深度学习(Deep Learning)、NLP面试中常考到的知识点和代码实现
网址:https://github.com/NLP-LOVE/ML-NLP 此项目是机器学习(Machine Learning).深度学习(Deep Learning).NLP面试中常考到的知识点和代 ...
- 机器学习(Machine Learning)深度学习(Deep Learning)资料(Chapter 2)
机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2) - tony的专栏 - 博客频道 - CSDN.NET 注:机器学习资料篇目一共 ...
- 【深度学习Deep Learning】资料大全
感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习, ...
- 机器学习(Machine Learning)深度学习(Deep Learning)资料汇总
本文来源:https://github.com/ty4z2008/Qix/blob/master/dl.md 机器学习(Machine Learning)&深度学习(Deep Learning ...
- 深度学习Deep Learning 资料大全
转自:http://www.cnblogs.com/charlotte77/ [深度学习Deep Learning]资料大全 最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: ...
- 机器学习(Machine Learning)深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
- 机器学习(Machine Learning)深度学习(Deep Learning)资料集合
机器学习(Machine Learning)&深度学习(Deep Learning)资料 原文链接:https://github.com/ty4z2008/Qix/blob/master/dl ...
最新文章
- 数值分析第一次作业-牛顿迭代法求解二元非线性方程组
- [C#]解决生成的缩略图模糊的问题
- python 写 log
- 为什么优秀的程序猿都阅读源码
- python爬虫---requests库的用法
- python读取配置文件获取所有键值对_python ConfigParser模块读写配置文件
- 中国计量大学c语言历年考试卷,语言程序设计试卷A中国计量学院.doc
- MySQL新闻和新闻详情关联_新闻首页实现 -- 5. 新闻详情以及评论功能实现
- Visio的基本使用教程
- excel工作表限制编辑怎么删除
- Improved autoencoder for unsupervised anomaly detection
- 当你们在谈论React和Vue的时候,我在用Mithril
- Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)
- 相机平面与工作平面带夹角下的坐标换算
- 基于 Layui 的后台框架模板 layuimini
- 坑逼的PL2303与WIN11
- TR069和TR111协议测试STUN的功能
- Python爬取马蜂窝城市游记
- python每日一个小程序_Python 练习册,每天一个小程序
- collect2.exe | [Error] ld returned 1 exit status怎么办
热门文章
- mysql的填充因子_数据库SQL Server – 索引 – 填充因子
- 审稿意见的“so what”如何处理?
- WAF绕过技术系列文章(一)
- 将doc文件转为txt文件
- oracle自动建立分区interval,使用Oracle 11g创建Interval分区表(转)
- 读吴军博士新浪微博(2012.09-2014.12)信息整理
- 零基础HTML入门教程(14)--水平线
- python如何自己写库_亲自动手写一个python库(二)
- 32个高效思维模型,快速提升你的思考力!
- 手机浏览器打开微信app的方法