基于BP算法的函数逼近步骤

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

TAIYUANUNIVERSITYOFSCIENCE&TECHNOLOGY基于BP算法函数逼近步骤姓名:刘浩学号:S201503645班级:研1507基于BP算法函数逼近步骤一、BP神经网络算法:BP(BackPropagation)网络是是一种按误差逆向传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层、隐含层和输出层。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐含层或者多隐含层结构;最后一个隐含层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐含层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。二、BP学习算法的计算步骤概述BP算法的基本原理是梯度最速下降法,它的中心思想是调整权值使网络总误差最小。运行BP学习算法时,包含正向和反向传播两个阶段。(1)正向传播输入信息从输入层经隐含层逐层处理,并传向输出层,每层神经元的状态只影响下一层神经元的状态。(2)反向传播将误差信号沿原来的连接通道返回,通过修改各层神经元的权值,使误差信号最小。学习过程是一种误差边向后传播边修正权系数的过程。三、BP算法具体步骤1.前馈计算设隐层的第j个节点的输入和输出分别为:)(1jjiNiijjIfOOwI其中)(jIf为激励函数jIjeIf11)(由于隐层的输出就是输出层的输入,则输出层第k个节点的总输入和输出分别为:)(1kkkNjjjkkIfOyOwI若网络输出与实际输出存在误差,则将误差信号反向传播,并不断地修正权值,直至误差达到要求为止。2.权值调整设误差函数定义为:MkkkpydE12)(21为了简便,以下计算都是针对每个节点而言,误差函数PE记作E。1)输出层权值的调整权值修正公式为:jkjkwEwjkkkwIIE定义反传误差信号k为kkkkkIOOEIE式中)1()](1)[()()()()(''kkkkkkkkkkkkkOOIfIfIfIfIIfIOOdOE所以)1()(kkkkkOOOd又jHjjjkjkjkkOO)(1由此可得输出层的任意神经元权值的修正公式:jkjkOw或jkkkkjkOOdOOw))(1(2)隐层权值的调整ijijjjijijOIEwIIEwEw式中iiNiijijijOO)(1由于误差函数E与隐层输入jI不存在直接的函数关系,因此不能直接求得,所以)()()()()('111jjHjjkjMkkjjMkjkkjjjjIfOwOIEIIfOIIEIOOEIE)()('1jMkjkkIfw隐层的反传误差信号为jkMkkjiwIf1')(由此可得,隐层权值的修正公式为:iMkjkkjijOwIfw)()(1'或iMkjkkjjijOwOOw)()1(1四、程序代码w10=[0.10.2;0.30.15;0.20.4];w11=[0.20.1;0.250.2;0.30.35];w20=[0.2;0.25;0.3];w21=[0.15;0.2;0.4];q0=[0.10.20.3];q1=[0.20.150.25];p0=0.2;p1=0.1;xj=[0.5;0.9];k1=5;k2=1200;e0=0;e1=0;e2=0;fors=1:72yp1=cos(2*3.14*k1*s/360);fork=1:k2fori=1:3x=w11(i,1)*xj(1,:)+w11(i,2)*xj(2,:);z=x+q1(:,i);o=[1-exp(-z)]/[1+exp(-z)];m=1/[1+exp(-z)];m1(i,:)=m;o1(i,:)=o;endfori=1:3yb=0;yb=yb+w21(i,:)*o1(i,:);endyi=yb+p1;n=1/[1+exp(-yi)];y=[1-exp(-yi)]/[1+exp(-yi)];e0=e1;e1=e2;e2=[(yp1-y).^2]/2;xj1=e2-e1;xj2=e2-2*e1+e0;xj=[xj1;xj2];d2=n*(1-y)*(yp1-y);bk=d2;fori=1:3u=w21(i,:)*bk;d1=[1-o1(i,:)]*u;d0=m1(i,:)*d1;qw=q1(:,i)-q0(:,i);q2=q1(:,i)+0.8*d0+0.4*qw;q3(:,i)=q2;forj=1:2dw=w11(i,j)-w10(i,j);w12=w11(i,j)+0.8*d0*xj(j,:)+0.6*dw;w13(i,j)=w12;endendw10=w11;w11=w13;q0=q1;q1=q3;fori=1:3h=w21(i,:)-w20(i,:);w22=w21(i,:)+0.4*d2*o1(i,:)+0.75*h;w23(i,:)=w22;endw20=w21;w21=w23;ph=p1-p0;p2=p1+0.9*d2+0.6*ph;p0=p1;p1=p2;ife20.0001,break;elsek=k+1;endende(s)=e2;ya(s)=yp1;yo(s)=y;s=s+1;ends1=s-1;s=1:s1;plot(s,ya,s,yo,'g.',s,e,'rx');title('BP');五、运行结果1.此次逼近的函数为y=cosx,蓝色为真实的余弦曲线,绿色为逼近的余弦曲线,红色代表误差曲线,从图像上可以得出逼近结果与原曲线契合程度高,效果良好。2.为了测试程序广泛适用性,对函数进行修改反复测试,效果良好,误差十分小。3.BP算法能很有效的完成数据训练,是一个训练数据的好方法。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功