文章目录
- 一、学习率的定义
- 二、那学习率有什么作用与影响?
- 三、如何调整学习率?
一、学习率的定义
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