一、学习率概念
学习率是个抽象又简单的概念,神经网络的学习率指的是神经网络对数据进行学习的速率。神经网络学习的过程就是权重更新的过程,权重更新公式如下,其中η表示学习率:
其原理我们已经在上一篇文章中讲过,传送链接:梯度下降优化算法——神经网络的数学基础原理(4)
从公式中可以看出,更新权重的过程就是不断的修正θ参数的过程,而η可以影响θ变动的大小,也就是可以影响网络学习速率的大小。
二、学习率的选取
学习率的选取并没有成熟的理论,更多的时候是根据经验来选择。学习率选择不当会造成神经网络:
1.学习过速度过慢
2.停止学习
3.陷入局部最优、
4.无法找到最优解
下面举一个因为学习率选择不当,导致神经网络无法继续学习的例子:
在上图中,当我们取学习率η的值为1的时候,损失函数更新的数值始终在-5和5之间震荡,使得网络无法逼近最低点,此时神经网络就无法继续学习,解决的方法是减小η的值。
三、学习率原理的理解图示
1.过小的学习率导致局部最优
2.过大的学习率导致无法收敛到最优
3.衰减的学习率可以避免局部最优,也可以避免不收敛
四、衰减学习率
由于在对网络进行训练时,初始学习率选择过小会影响学习速度,选择过大又会导致后期难以逼近最优解,为了解决这个问题,tensorflow中有一个tensorflow.train.exponential_decay函数,可以设置学习率的衰减速度,使得网络在学习的过程中学习率逐步衰减变小。