BP算法是非循环多级网络的训练算法,虽然该算法的收敛速度非常慢,但由于它具有广泛的适用性,使得它在1986年被提出后,很快就成为应用最为广泛的多级网络训练算法,并对人工神经网络的推广应用发挥了重要作用。误差反传(BP)算法:BP算法=信号的正向传播过程+误差的反向传播过程。基于BP算法的多层前馈网络模型其中是输入向量;是隐层输出向量;是输出层输出向量;是输入层到隐层之间的权值矩阵;是隐层到输出层之间的权值矩阵;是期望输出向量;对于输出层:(1)(2)对于隐层:(3)(4)其中既可以是单极性Sigmoid函数,也可以是双极性Sigmoid函数。:定义输出误差E为:(5)将上述误差定义式展开至隐层:(6)将上式进一步展开至输入层:(7)令权值调整为:(8)(9)式中的负号表示梯度下降,常数表示比例系数。:(10)对于隐层:(11)对输出层和隐层各定义一个误差信号,令:(12)结合式(10、11、12),权值调整可改写为:(13)从上式可以看出,只要计算出式(13)中的误差信号和,权值调整的计算推导即可完成,下面推导误差信号和的算法。对于输出层,可展开为:(14)对于隐层,可展开为:(15)下面求网络误差对各层输出的偏导:对于输出层,,则:(16)对于隐层,,则:(17)将式(16、17)及分别带入(14、15)可得:(18)(19)将式(18、19)带入式(13),得到三层前馈网的BP学习算法权值调整计算公式为:(20)(21)从上式中可以看出,BP学习算法中,各层权值调整公式形式上都是一样的,均由3个因素决定,即:学习率、本层输出的误差信号及本层输入信号(或)。其中输出层误差信号与网络的期望输出与实际输出之差有关,直接反映了输出误差,而各隐层的误差信号与前面各层的误差信号有关,是从输出层开始逐层反传过来的。系统的输入,通过假设的未知系统获得输出,对BP网络进行训练。仿真结果如下:附%%网络结构1-2-1,学习率alpha=;closeall;clc;input=1;%输入层像两个数hideLayer=2;%隐藏层神经元个数outputLayer=1;%输出层神经元个数x=[*pi:*pi:2*pi];%输入向量(1*200)w1=rands(hideLayer,input);%隐藏层权值b1=rands(hideLayer,input);%隐藏层阈值w2=rands(outputLayer,hideLayer);%输出层权值b2=rands(outputLayer,1);%输出层阈值alpha=;%学习速率error=;%误差阈值M=200;%%训练数据200form=1:My=sin(*pi*m);%实际样本输出fork=1:50%%对每个数据训练50次fori=1:hideLayer%隐层p(i)=logsig
Bp算法报告 来自淘豆网m.daumloan.com转载请标明出处.