一、学习率概念

学习率是个抽象又简单的概念,神经网络的学习率指的是神经网络对数据进行学习的速率。神经网络学习的过程就是权重更新的过程,权重更新公式如下,其中η表示学习率:

                                                             

其原理我们已经在上一篇文章中讲过,传送链接:梯度下降优化算法——神经网络的数学基础原理(4)

从公式中可以看出,更新权重的过程就是不断的修正θ参数的过程,而η可以影响θ变动的大小,也就是可以影响网络学习速率的大小。

 

二、学习率的选取

学习率的选取并没有成熟的理论,更多的时候是根据经验来选择。学习率选择不当会造成神经网络:

1.学习过速度过慢

2.停止学习

3.陷入局部最优、

4.无法找到最优解

下面举一个因为学习率选择不当,导致神经网络无法继续学习的例子:

                                   

神经网络 人为修改权重数据 神经网络如何更新权重_神经网络 人为修改权重数据

在上图中,当我们取学习率η的值为1的时候,损失函数更新的数值始终在-5和5之间震荡,使得网络无法逼近最低点,此时神经网络就无法继续学习,解决的方法是减小η的值。

 

三、学习率原理的理解图示

1.过小的学习率导致局部最优

                                   

神经网络 人为修改权重数据 神经网络如何更新权重_神经网络 人为修改权重数据_02

2.过大的学习率导致无法收敛到最优

                      

神经网络 人为修改权重数据 神经网络如何更新权重_神经网络 人为修改权重数据_03

3.衰减的学习率可以避免局部最优,也可以避免不收敛

                              

神经网络 人为修改权重数据 神经网络如何更新权重_神经网络 人为修改权重数据_04

 

四、衰减学习率

由于在对网络进行训练时,初始学习率选择过小会影响学习速度,选择过大又会导致后期难以逼近最优解,为了解决这个问题,tensorflow中有一个tensorflow.train.exponential_decay函数,可以设置学习率的衰减速度,使得网络在学习的过程中学习率逐步衰减变小。

 

五、附学习笔记如下

神经网络 人为修改权重数据 神经网络如何更新权重_神经网络 人为修改权重数据_05