BP神经网络算法预测模型

BP神经网络算法预测模型
BP神经网络算法预测模型

BP神经网络结构及算法

1986年,Rumelhart和McCelland领导的科学家小组在《Parallel Distributed Processing》一书中,对具有非线性连续转移函数的多层前馈网络的误差反向传播算法(Error Back Proragation,简称BP)进行了详尽的分析,实现了Minsky关于多层网络的设想。由于多层前馈网络的训练经常釆用误差反向传播算法,人们也常把多层前馈网络直接称为BP网。釆用BP算法的多层前馈网络是目前应用最多的神经网络。

BP神经网络的结构

BP网络有三部分构成,即输入层、隐含层(又称为中间层)和输出层,其中可以有多个隐含层。各层之间实现完全连接,且各层神经元的作用是不同的:输入层接受外界信息;输出层对输入层信息进行判别和决策;中间隐层用来表示或存贮信息。通常典型的BP网络有三层构成,即只有一个隐层。三层BP神经网络的结构可用图1表示。

图1 三层BP神经网络机构图

BP神经网络的学习算法

BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐含层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐含层向输入层逐层反传、并将误差分摊给各层的所有神经元,从而获得各层神经元的误差信号,此误差信号即作为修正各神经元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的,权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出误差减少到可接受的程度,或进行到预先设定的学习次数为止,标准BP算法流程见图2。

图2 标准BP算法流程

在实际的应用中,三层前馈网络基本就能满足人们的需求,即一个输入层、一个隐含层

和一个输出层,由于只有一个隐含层,所以也称为单隐层BP网络。三层前馈网中,输入向

量为,如加入,可为隐层神经元引入阈值;隐层输出向量为

,如加入,可为输出层神经元引入阈值;输出层输出向量为

用表示,,其中列向量为隐层第k个神经元对应的权向量;隐层到输出层之间的权值矩阵用表示,,其中列向量为输出层第个神经元对应的权向量。下面具体分析各层信号之间的数学关系。

对于输出层,有:

其中为输出层的输出,为输出层第j个神经元的净输入,为转移函数,是隐层第k个神经元与输出层第j个神经元之间的权值。是隐层第k个神经元的输出值。

对于隐含层,有:

其中是隐层第k个神经元的净输入,是隐层第k个神经元与输入层第个神经元之间的连接权值,是输入层第i个神经元的输入值。以上两式中转移函数均为单极性Singmoid函数

Ⅰ?Ⅳ共同构成了三层前馈网的数学模型。

一般定义误差函数E作为衡量网络性能的标准,即性能指数,在网络的性能良好时E

很小,反之则很大。在网络的期望输出与实际输出不等时,一般将E定义为均方误差,即:

将上述误差定义式展开至隐层得:

进一步展开至输入层得:

从上式可以看出,网络中性能指标E是和的函数,因此调整和的值可以改变E。由于我们的目的是使E不断的减小,所以权值的调整量要与E的负梯度成正比,即:

式中负号表示梯度下降,表示比例系数,在训练中反应了学习速率。这类算法常被称为误差的梯度下降算法。

相关主题
相关文档
最新文档