BP算法的基本原理典型的BP网络分为三层(图4.4),即输入层、隐含层和输出层。其算法主要由以下四部分组成,即模式顺传播——误差逆传播——记忆训练——学习收敛。1.模式顺传播设样本输入向量1(,...,)knAaa,输出向量1(,...,)kqYyy中间单元的输入向量1(,...,)kpSss,输出向量1(,...,)kpBbb输出层的输入向量1(,...,)kqLll,输出向量1(,...,)kqCcc其中,1,2,...,km,为样本数。输入层到中间层的权ijw,1,2,...,in,1,2,...,jp中间层到输出层的权jtv,1,2,...,jp,1,2,...,tq中间层阈值j,1,2,...,jp输出层阈值t,1,2,...,tq中间层输入:1nkjijijiSwa,输出:1()1kjkkjjSbfSe,1,2,...,jp输出层输入:1pkjjtjtjLvb,输出:1()1ktkkttLCfLe,1,2,...,tqθ1θ2θpγ1γqana1a2c1cqy1yqnpqw11w12v11v12SpBpLqCq2.误差的逆传播根据输出层产生的误差,经中间层向输入层传播,在这个过程中,按照梯度下降原则对各层的权值和阈值进行误差校正。(1)输出层计算:权值调整量计算:第k模式(样本)下,网络的输出误差的均方值为,21()/2qkkktttEyC因为,()kkkkttttEyCC,()(1)kkktjttjjttjtCCLfLbCCbvLv所以,(1)kkkktttjjttjtEECCCbvCv上式即为权值变化对均方值误差的影响程度,按梯度下降原则应使权值调整量jtv与kjtEv的负值成比例变化,即()(1)kkkjttttjtjjtEvCCbdbv其中,(0,1),1,2,...,tq,1,2,...,jp。阈值调整量计算:因为,()(1)(1)(1)kkkkkttttttttttttEECLfLCCdCL所以,按照梯度下降原则,可得到输出层各单元的阈值调整量为:()kktttEd(2)中间层到输入层计算:权值调整量计算:111()((1))(1)())(1)qjjkktttijtttjijqktttjtjjitqktjtjjitjibSEECLwCLbSwCCvbbadvbbaea按照梯度下降原则,可得到连接权值的调整量为:()kijjiijEweaw阈值调整量计算:111()((1))(1)(1)()(1)(1)qjjkktttjttjjjqktttjtjjtqktjtjjtjbSEECLCLbSCCvbbdvbbe按照梯度下降原则,可得到输出层各单元的阈值调整量为:()kjjjEe以上的推导是标准误差逆传播算法,即各连接权的调整量是分别与各个学习模式对的误差Ek成比例变化的。而相对于全局误差1mkktEE的连接权调整,是在所有m个学习模式全部提供给网络后统一进行的,这种算法是累积误差逆传播算法。一般来讲,当样本较少时,累积误差传递算法要比标准误差传递算法速度快一点。3.记忆训练给出一组样板反复进行学习,调整权值和阈值的大小以使输出值满足一定的精度要求。4.学习收敛经过多次训练以后,网络的全局误差趋向于最小值。由于BP算法采用了按误差函数梯度下降的方向进行收敛,因此,可能使迭代陷入局部极小点,BP网络收敛依赖于样本的初始位置,适当改变隐层单元个数,或给每个权值加上一个很小的随机数,都可使收敛过程避免局部极小点。二.BP网络的解析步骤标准误差逆传播算法按照以下步骤进行计算:(1)初始化给权值ijw、jtv和阈值j、t赋予(-1,1)之间的随机值。(2)随机取一对样本对网络进行训练(3)计算中间层的输入/出输入:1njijijiSwa,输出:1()1jjjSbfSe(4)计算输出层的输入/出输入:1pjjtjtjLvb,输出:1()1tttLCfLe(5)计算输出层的一般误差()(1)kktttttdyCCC(6)计算中间层的一般误差1()(1)qkjtjtjjtedvbb(7)修改输出层的权值和阈值(1)()kjtjttjvNvNdb(1)()()kjtjttNNd(8)修正隐层的权值和阈值(1)()ijijjiwNwNea(1)()()jjjNNe(9)取下一对样本返回(3)开始训练,直到m个样本训练结束(10)判断全局误差是否小于预定值,否则,回到(2)重新进行训练,直到满足要求或达到预定训练次数,停止训练。