BP神经网络结构及算法
1986年,Rumelhart和McCella
d领导的科学家小组在《ParallelDistributedProcessi
g》一书中,对具有非线性连续转移函数的多层前馈网络的误差反向传播算法ErrorBackProragatio
简称BP进行了详尽的分析,实现了Mi
sky关于多层网络的设想。由于多层前馈网络的训练经常用误差反向传播算法,人们也常把多层前馈网络直接称为BP网。用BP算法的多层前馈网络是目前应用最多的神经网络。
BP神经网络的结构
BP网络有三部分构成,即输入层、隐含层又称为中间层和输出层,其中可以有多个隐含层。各层之间实现完全连接,且各层神经元的作用是不同的:输入层接受外界信息;输出层对输入层信息进行判别和决策;中间隐层用来表示或存贮信息。通常典型的BP网络有三层构成,即只有一个隐层。三层BP神经网络的结构可用图1表示。
图1三层BP神经网络机构图
BP神经网络的学习算法
BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐含层逐层处理后,传向输出层。若输出层的实际输出与期望的输出教师信号不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐含层向输入层逐层反传、并将误差分摊给各层的所有神经元,从而获得各层神经元的误差信号,此误差信号即作为修正各神经元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的,权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出误差减少到可接受的程度,或进行到预先设定的学习次数为止,标准BP算法流程见图2。
f图2标准BP算法流程
在实际的应用中,三层前馈网络基本就能满足人们的需求,即一个输入层、一个隐含层和一个输出层,由于只有一个隐含层,所以也称为单隐层BP网络。三层前馈网中,输入向
量为
,如加入
,可为隐层神经元引入阈值;隐层输出向量为
,如加入
,可为输出层神经元引入阈值;输出层输出向量为
;期望输出向量为
。输入层到隐层之间的权值矩阵
用表示,
,其中列向量为隐层第k个神经元对应的权向量;隐层到
输出层之间的权值矩阵用表示,
,其中列向量为输出层第个神
经元对应的权向量。下面具体分析各层信号之间的数学关系。对于输出层,有:
f其中为输出层的输出,为输出层第j个神经元的净输入,为转移函数,是
隐层第k个神经元与输出层第j个神经元之间的权值。是隐层第k个神经元的输出值。对于隐含层r