神经网络是深度学习的基础,在机器学习和深度学习中应用比较广泛,如函数逼近模式识别分类模型图像分类基于深度学习的CTR预估数据压缩数据挖掘等都离不开神经网络。下面主要介绍BP神经网络的原理。

一. 认识BP神经网络

一个最简单的三层BP神经网络如下图




bp神经网络的分类 bp神经网络分类原理_权值


包含输入层、隐含层、输出层,节点与节点之间有权重。一个样本有m个输入特征,包括ID特征或连续特征。隐含层可以有多个,关于隐含层节点个数的选取,一般设置为2的n次方,例如512,256,128,64,32等。n个输出结果,通常输出结果就一个,例如分类模型或回归模型。

在1989年,Robert Hecht-Nielsen证明了对于任何闭区间内的一个连续函数都可以用一个隐含层的BP网络来逼近,这就是万能逼近定理。所以一个三层的BP网络就可以完成任意的m维到n维的映射。BP神经网络主要分为两个过程

  1. 工作信号正向传递子过程
  2. 误差信号反向传递子过程

二. 工作信号正向传递子过程

设节点i与节点j之间的权重为ω_{ij},节点j的偏置为b_{j},每个节点的输出值为x_{j},每个节点的输出值是根据上层所有节点的输出值、当前节点与上一层所有节点的权值和当前节点的偏置还有激活函数来计算的。具体计算公式如下


bp神经网络的分类 bp神经网络分类原理_激活函数_02


其中f为激活函数,一般选取S型函数或tanh函数。正向传递过程比较简单,从前往后计算即可。

三. 误差信号反向传递子过程

在BP神经网络中,误差信号反向传递子过程比较复杂,它是基于Widrow-Hoff学习规则的。假设输出层的所有结果为d_{j},回归模型的误差函数如下


bp神经网络的分类 bp神经网络分类原理_权值_03


BP神经网络的主要目的是反复修正权值和偏置,使得误差函数值达到最小。Widrow-Hoff学习规则是通过沿着相对误差平方和的最速下降方向,连续调整网络的权值和偏置,根据梯度下降法,权值矢量的修正正比于当前位置上E(w,b)的梯度,对于第j个输出节点有


bp神经网络的分类 bp神经网络分类原理_bp神经网络隐含层神经元个数_04


假设选择激活函数为


bp神经网络的分类 bp神经网络分类原理_激活函数_05


对激活函数求导,得到


bp神经网络的分类 bp神经网络分类原理_bp神经网络隐含层神经元个数_06


那么接下来针对ω_{ij},有


bp神经网络的分类 bp神经网络分类原理_神经网络_07


其中


bp神经网络的分类 bp神经网络分类原理_神经网络_08


同样对于b_{j},有


bp神经网络的分类 bp神经网络分类原理_激活函数_09


这就是著名的δ学习规则,通过改变神经元之间的连接权值来减少系统实际输出和期望输出的误差,这个规则又叫做Widrow-Hoff学习规则或者纠错学习规则

上面是对隐含层和输出层之间的权值和输出层的偏置计算调整量,而针对输入层和隐含层和隐含层的偏置调整量的计算更为复杂。假设ω_{ki}是输入层第k个节点和隐含层第i个节点之间的权值,那么有


bp神经网络的分类 bp神经网络分类原理_权值_10


其中有


bp神经网络的分类 bp神经网络分类原理_神经网络_11


有了上述公式,根据梯度下降法,那么对于隐含层和输出层之间的权值和偏置调整如下


bp神经网络的分类 bp神经网络分类原理_bp神经网络隐含层神经元个数_12


而对于输入层和隐含层之间的权值和偏置调整同样有


bp神经网络的分类 bp神经网络分类原理_bp神经网络_13


上述就是BP神经网络原理的公式推导。