文章目录

  • 一、学习率的定义
  • 二、那学习率有什么作用与影响?
  • 三、如何调整学习率?

一、学习率的定义

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

发表回复