一、什么是学习率(Learning rate)
学习率(Learning rate)作为监督学习以及深度学习中重要的超参数,其决定着目标函数是否能收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。它指导我们在梯度下降法中,如何使用损失函数的梯度调整网络权重的超参数。
调整权重公式如下:new_weight = old_weight - learning_rate * gradient
二、学习率对损失值和深度网络的影响
从图一可以看出,如果学习率过小,损失函数的变化速度会很慢,大大增加网络的收敛复杂度,并且很容易困在局部最小值;从图二可以看出,如果学习率过大,可能会使损失函数直接越过全局最优点,梯度在最小值附近来回震荡,甚至可能无法收敛,
三、学习率的作用
选择一个好的学习率,可以抽象为两点好处:
——更快达到loss的最小值;
——保证收敛的loss值是神经网络的全局最优解;
四、如何选择学习率
现阶段研究中,共同认同的学习率设置标准为:首先设置一个较大的学习率,使网络的损失值快速下降,然后随着迭代次数的增加一点点减少学习率,防止越过全局最优解。
学习率的调整办法分为以下三种:
(1)离散下降:每t轮学习,学习率减半;
(2)指数减缓:学习率按训练轮数增长指数差值递减,如;
(3)分数减缓:如原始学习率,学习率按照下式递减:,k为超参数,用来控制学习率减缓幅度,t为训练轮数;
大多数网络的学习率初始值设为0.01和0.001为宜。