机器学习(七)——神经网络参数的反向传播算法

目录

 

一、前言

二、代价函数

三、反向传播算法

四、理解反向传播算法

1.链式求导法则(高等数学多元微分学求导)

2.举例

五、梯度检测、随机初始化

1.梯度检测

2.随机初始化

六、训练神经网络


一、前言

  1. 吴恩达机器学习第十章神经网络参数的反向传播算法
  2. 需要的数学知识:多元函数求导、链式求导法则

 

二、代价函数

 

L=神经网络的层数

S_l=第l层的的单元数

K=输出层的单元数

机器学习(七)——神经网络参数的反向传播算法

机器学习(七)——神经网络参数的反向传播算法

 

机器学习(七)——神经网络参数的反向传播算法

 

三、反向传播算法


首先需要实现正向传播算法

机器学习(七)——神经网络参数的反向传播算法

 

 

机器学习(七)——神经网络参数的反向传播算法:第l层的第j个结点的误差

机器学习(七)——神经网络参数的反向传播算法:第l层第j个单元的**值

 

那么对于输出层的每个输出单元(以上图神经网络来说)

机器学习(七)——神经网络参数的反向传播算法 

机器学习(七)——神经网络参数的反向传播算法

如果用向量表示,则可以误差可以表示为

机器学习(七)——神经网络参数的反向传播算法

数学警告!!!

接下来的内容需要一定的多元微分学的知识,稍微看看就好,有兴趣的可以查一下高数下册的资料

由此可以得出接下来隐藏层中的误差值

输入层不需要求误差也不存在误差所以不需要计算

机器学习(七)——神经网络参数的反向传播算法

机器学习(七)——神经网络参数的反向传播算法

其中

机器学习(七)——神经网络参数的反向传播算法

机器学习(七)——神经网络参数的反向传播算法

 

同时经过一定的数学运算,每一个参数的偏导数可以通过大致的通过以下这个公式求出来,注意此处忽略了正规化λ

机器学习(七)——神经网络参数的反向传播算法

 

接下来将上面的内容整合起来就是一个完整的反向传播算法(机器学习(七)——神经网络参数的反向传播算法其实就是机器学习(七)——神经网络参数的反向传播算法) 

机器学习(七)——神经网络参数的反向传播算法

   

四、理解反向传播算法

 

1.链式求导法则(高等数学多元微分学求导)

为了更好理解反向传播公式的推导,需要一点多元微分学的知识。

由高数课本,设一个多元函数为机器学习(七)——神经网络参数的反向传播算法,而其中机器学习(七)——神经网络参数的反向传播算法机器学习(七)——神经网络参数的反向传播算法,则

机器学习(七)——神经网络参数的反向传播算法

机器学习(七)——神经网络参数的反向传播算法

有了上面的介绍

机器学习(七)——神经网络参数的反向传播算法

 

机器学习(七)——神经网络参数的反向传播算法

 

简化以下就可以得到

机器学习(七)——神经网络参数的反向传播算法

 

2.举例

机器学习(七)——神经网络参数的反向传播算法

因为代价函数扮演的是一个计算误差的角色,这里可以近似的将机器学习(七)——神经网络参数的反向传播算法

 

根据微积分的知识

  机器学习(七)——神经网络参数的反向传播算法  

机器学习(七)——神经网络参数的反向传播算法

前面这些是为了更好理解,接下来就不需要数学知识了

机器学习(七)——神经网络参数的反向传播算法

如上图给出各个位置的参数,根据以上的推导

机器学习(七)——神经网络参数的反向传播算法

机器学习(七)——神经网络参数的反向传播算法

机器学习(七)——神经网络参数的反向传播算法

机器学习(七)——神经网络参数的反向传播算法 

五、梯度检测、随机初始化

1.梯度检测

 

 前面已经讲述了如何正向传播、反向传播以及计算偏导数的值,但是反向传播还有很多细节,因此实现起来比较困难,并且有一些不好的特性,很容以产生一些bug,当它去梯度下降或者其他算法结合起来的时候,或许代价函数可能会不断减小,但到最后就得到的神经网络在没有bug的情况下可能会高出一个量级,此时就需要梯度检测。

其实从微积分的基本定理可以检测梯度,但又有一点不同

机器学习(七)——神经网络参数的反向传播算法

机器学习(七)——神经网络参数的反向传播算法的取值通常为机器学习(七)——神经网络参数的反向传播算法左右

而根据高等数学书上导数的定义为

机器学习(七)——神经网络参数的反向传播算法

但在这里这个称为单侧差分,而上一个公式称为双侧差分,相比单侧差分,双侧差分更加精准(视频课是这么说的)

 

2.随机初始化

对于梯度下降法,需要对θ初始化。若同一层的参数初始化的值相同,那么每次梯度下降以后参数依然是相同的,那么就获得不到比较好的神经网络,因此需要随机对每个参数初始化使得机器学习(七)——神经网络参数的反向传播算法

 

 

 

六、训练神经网络

就是将之前的整合在一起,获得最佳的参数

机器学习(七)——神经网络参数的反向传播算法

机器学习(七)——神经网络参数的反向传播算法