5.4 BP神经网络的基本原理
BP(Back Propagation)网络是1986年由Rinehart和McClelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结
构包括输入层(input)、隐层(hide layer)和输出层(output layer)(如图5.2所示)。 5.4.1 BP神经元
图5.3给出了第j个基本BP神经元(节点),它只模仿了生物神经元所具有的三个最基本也是最重要的功能:加权、求和与转移。其中x1、x2?xi?xn分别代表来自神经元1、2?i?n的输入;wj1、wj2?wji?wjn则分别表示神经元1、2?i?n与第j个神经元的连接强度,即权值;bj为阈值;f(·)为传递函数;yj为第j个神经元的输出。
第j个神经元的净输入值为:
(5.12)
其中:
若视,,即令及包括及,则
于是节点j的净输入可表示为:
(5.13)
净输入输出
:
通过传递函数(Transfer Function)f (·)后,便得到第j个神经元的
(5.14)
式中f(·)是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。 5.4.2 BP网络
BP算法由数据流的前向计算(正向传播)和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层→隐层→输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。 5.4.2.1 正向传播
设 BP网络的输入层有n个节点,隐层有q个节点,输出层有m个节点,输入层与隐层之间的权值为
,隐层与输出层之间的权值为
,如图5.4所示。隐层的传递函数为f1(·),
输出层的传递函数为f2(·),则隐层节点的输出为(将阈值写入求和项中):
k=1,2,??q (5.15)
输出层节点的输出为:
j=1,2,??m (5.16)
至此B-P网络就完成了n维空间向量对m维空间的近似映射。 5.4.2.2 反向传播 1) 定义误差函数
输入个学习样本,用来表示。第个样本输入到网络后得到输出
(j=1,2,?m)。采用平方型误差函数,于是得到第p个样本的误差Ep:
(5.17)
式中:对于
为期望输出。 个样本,全局误差为:
(5.18)
2)输出层权值的变化
采用累计误差BP算法调整,使全局误差变小,即
(5.19)
式中:—学习率 定义误差信号为:
(5.20)
其中第一项:
(5.21)
第二项:
是输出层传递函数的偏微分。 于是:
由链定理得:
于是输出层各神经元的权值调整公式为:
3)隐层权值的变化
定义误差信号为:
(5.22)
(5.23)
(5.24)
(5.25)
(5.26)
(5.27)
其中第一项:
(5.28)
依链定理有:
第二项:
是隐层传递函数的偏微分。 于是:
由链定理得:
从而得到隐层各神经元的权值调整公式为:
5.4.3 BP算法的改进
(5.29)
(5.30)
(5.31)
(5.32)
(5.33)