学习率到底是什么
一 、学习率的定义
Wikipedia给出Learning Rate的定义如下
In machine learning and statistics, the learning rate is a tuning parameter in an optimization algorithm that determines the step size at each iteration while moving toward a minimum of a loss function.
我给出个自己的翻译
在机器学习和统计学中 ,学习率是优化算法中的调谐参数 ,该参数可确定确定每次迭代中的步长 ,使损失函数收敛到最小值
我个人理解来看 ,学习率使一个超参数 ,开始设置一个初始值 ,之后学习率设置可以不变或放大 。而学习率的作用就是控制每次根据估计误差对模型权重更新的多少
二 、那学习率有什么作用与影响?
我们以梯度下降为例:
这是来自吴恩达机器学习课程的截图我们先看一下上面出现的唯一一条公式 ,公式中的θ就是代表着权重参数 ,新的θ会由之前的θ计算得来 ,这个计算过程就是为了寻找目标函数收敛到最小值 。那么公式中出现的α就是当下的学习率 。
上面两张明显的对比图就给出了学习率过大和过小的情况 。
学习率设置过小的时候 ,每步太小 ,下降速度太慢 ,可能要花很长的时间才会找到最小值 。
学习率过大过大的时候,每步太大 ,虽然收敛得速度很快 ,可能会像图中一样,跨过或忽略了最小值 ,导致一直来回震荡而无法收敛 。
这时我们再通过Loss曲线看一下不同学习率对收敛得的影响
很明显 ,过小的学习率导致收敛缓慢 ,过大的学习率一开始收敛速度很快 ,但会导致无法收敛到最小值 ,超高的学习率甚至可能直接大幅跨过了最小值而没有收敛效果 。所以选取一个合适的学习率 ,对于找到全局最小值以及提高模型训练速度都是很有帮助的 。
The learning rate is perhaps the most important hyperparameter. If you have time to tune only one hyperparameter, tune the learning rate.
— Page 429, Deep Learning, 2016.三 、如何调整学习率?
留个坑后面补
参考资料:https://machinelearningmastery.com/understand-the-dynamics-of-learning-rate-on-deep-learning-neural-networks/
https://www.cnblogs.com/lliuye/p/9471231.html
https://www.jiqizhixin.com/graph/technologies/444ad8d1-7262-46c9-94b7-fe0aa9227006
https://blog.csdn.net/u012526436/article/details/90486021
https://www.jiqizhixin.com/articles/understanding-learning-rates创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!