一、BP网络基本概念
BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。BP神经网络是由一个输入层、一个输出层和一个或多个隐层构成,它的激活函数采用sigmoid函数,采用BP算法训练的多层前馈神经网络。具体采用如下神经网络进行说明:
其算法基本过程分为两个阶段:1、在前馈网络中,输入信号经输入层输入,通过隐层计算由输出层输出,2、输出值与标记值比较,若有误差,将误差反向由输出层向输入层传播,在这个过程中,利用梯度下降算法对神经元权值进行调整。
二、BP网络的流程
1、正向传递
计算方法如下:
其中f为激活函数,一般选取线性函数或者S型函数。这里使用Sigmoid函数:
2、反向传播过程
首先明确误差函数:
这里的dj是样本标签值,yj是期望输出。BP神经网络的主要目的是反复修正权值和阀值,使得误差函数值达到最小。
根据梯度下降法,权值矢量的修正正比于当前位置上E(w,b)的梯度,对于第个输出节点有
由于这里我们选取Sigmoid函数作为激活函数,因此对激活函数求导得到:
接下来,对权重w进行求导。这里将上面的激活函数求导也用在里面,得到下面的式子:
这里,我们人为定义 ,这是针对隐含层和输出层之间进行的权值调整,下面将对输入层和隐含层之间进行权值调整。原理和上面的公式类似,但是在隐含层中有
因此,我们进行链式求导的时候需要
最终公式为如下形式:
其中, 。综上,我们就将输入层到隐层以及隐层到输出层的权重更新都算完了,对于偏置b的求解,和w的求解类似。下面我们使用梯度下降法进行更新(这里我们只写出隐层到输出层,输入层到隐层的公式类似):
通过不断的更新权重,最终使得损失小于我们要求的阈值,得到较好的权重和偏置,即为最终结果。
三、总结
-
BP网络的优点:
- 网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。因此它特别适合于求解内部机制复杂的问题;
- 网络具有自学习能力;
- 网络具有一定的推广、概括能力。
-
BP网络的问题:
-
BP算法的学习速度很慢
-
网络训练失败的可能性较大
-