8.2.1 BP人工神经网络算法

8.2.1 BP人工神经网络算法

BP神经网络在1986年由Rumelhart和McCelland等科学家提出,是一种目前被广泛应用的采用误差反向传播算法进行训练的多层前馈网络。BP神经网络模型在结构上由输入层(Input)、隐含层(Hide Layer)和输出层(Output Layer)组成,如图8.2所示。

图8.2 BP神经网络模型拓扑结构

BP学习算法的基本原理是梯度最速下降法,评价准则是网络的实际输出值与期望输出值的误差均方值,学习过程是一种误差边向后传播边修正权系数的过程。这里以含有一层隐含层结构的BP网络为例进行说明,如图8.3所示。

图8.3 BP神经网络模型拓扑结构

假设此BP神经网络的结构为:输入层有d个节点,隐含层有n个节点,输出层有c个节点,网络的权值为w。

设输入的训练样本为x=(x 1,…,x d)T,期望输出τ=(t 1,…,tc)T,网络的实际输出z=(z 1,…,zc)T,隐含层神经元的输出y=(y 1,…,yn)T,取net为神经元的净输出,则我们得到

对隐含层:

对输出层:

采用误差平方和为准则函数:

权值调整公式为

式中:η为学习速率;x 0、y 0是为引入阈值而设置的偏置量。

BP算法的计算机实现流程如下:

(1)对网络进行初始化;采用较小的数对网络权重随机赋值。

(2)训练数据,训练次数和样本数相同。

①输入学习数据;

②计算得到输出层输出;

③根据计算教师信号计算误差;

④累计c误差。

(3)误差精度或循环次数达到要求则到(5),否则到(4)。

(4)对神经元之间连接权及偏置进行调整,转回(2)。

(5)输出结果。