BP算法的概述
多层前馈网络的反向传播(BP)学习算法,简称BP算法,具备导师学习,在1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,它是梯度下降法在多层前馈网络中的应用。
BP学习算法由正向传播和反正传播组成。其网络结构视图如下所示。u、y是网络的输入、输出向量,神经元用节点表 示,网络由输入层、隐层和输出层节点组成。隐层可一层,也可多 层(图中是单隐层),前层至后层节点通过权联接 。
正向传播是输入信号从输入层经隐层,传 向输出层,若输出层得到了期望的输出, 则学习算法结束;否则,转至反向传播。 反向传播是将误差(样本输出与网络输出 之差)按原联接通路反向计算,由梯度 降法调整各层节点的权值和阈值,使误差 减小 。
BP算法的推导
设计算法的输入输出样本为
总共N个样本。网络训练的目的便是对每一个输入样本,进行吧调整网络参数,使输出样本的均误差最小化。因此,可以选取一下公式
在考虑迭代算法的前提下,使用泰勒级数展开,可以列写为
之后对三层神经网络进行考虑设计。对于前向传播函数,考虑第i个神经元,可以表示为
在假设只有一层隐层的前提下,输出函数可以表示为
而对于误差反传的输出曾,根据链式1求导法则
可以对上式化简,最终可以表示为
注意到下图所示的关系式
网络隐含层的误差反传可以 表示为
因此对误差进行反向传播,综合上述分析,可以推导出下述表达式、
3.总结
BP神经网络无论在网络理论还是在性能方面已比较成熟。其突出优点就是具有很强的非线性映射能力和柔性的网络结构。网络的中间层数、各层的神经元个数可根据具体情况任意设定,并且随着结构的差异其性能也有所不同。但是BP神经网络也存在以下的一些主要缺陷。