反向传播(Error Back Proragation,BP)算法应用对象:具有非线性连续变换函数的多层感知器(多层前馈网络)。
BP 算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则传入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输出层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差发向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程已知进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。
采用 BP 算法的多层感知器是至今为止应用最广泛的神经网络,在多层感知器的应用中,以下图所示的单隐层网络的应用最为普遍。一般习惯将但单隐层前馈网称为三层感知器,所谓三层包括了输入层、隐层和输出层。

是为隐层神经元引入阈值而设置的
是为输出层神经元阈值而设置的
输入向量为
隐层输出向量
输出层输出向量
期望输出向量为
输入层到隐层之间的权值矩阵 ,其中列向量
为隐层第
个神经元对应的权向量
隐层到输出层之间的权值矩阵 , 其中列向量
为输出层第
个神经元对应的权向量
对于输出层均有
对于隐层均有
下面分析各信号之间的数学关系
(注:下面蓝色字体表示输出层,紫色字体表示隐层,红色表示输入层)
对于输出层,有
(1)
(2)
对于隐层,有
(3)
(4)
以上两式中,变换函数 均为单极性
函数
(5)
具有连续、可导的特点,且有
(6)
式(1)~ 式(5)共同构成了三层感知器的数学模型。
当网络输出与期望输出不等时,存在输出误差 ,定义如下
(7)
以上误差定义式展开至隐层
(8)
进一步展开至输入层
(9)
网络输入误差是各层权值 、
的函数,调整权值可改变误差
,调整权值的原则是使误差不断减小,因此应使权值的调整量与误差的梯度下降成正比,即
(10 a)
(10 b)
式中,负号表示梯度下降,常数 表示比例系数,在训练中反映了学习速率。
对于输出层,式(10 a) 可写为
(11 a)
对于隐层,式(10 b) 可写为
(11 b)
对输出层和隐层各定义一个误差信号,令
综合式(2)和式(11 a),可将式(10 a)权值调整改写为
(12 a)
综合式(3)和式(11 b),可将式(10 b)权值调整改写为
(12 b)
下面继续推导如何计算 和
对于输出层, 可展开为
(13 a)
对于隐层, 可展开为
(13 b)
下面求式(13)中网络误差对各层输出的偏导。
对于输出层,利用式(7),可得
(14 a)
对于隐层,利用式(8),可得
(14 b)
将以上结果带入式(13),并应用式(6),得
(15 a)
(15 b)
至此两个误差信号的推导已完成,将式(15)带回到式(12),得到三层感知器的 BP 算法权值调整计算公式为