您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 实验二-基于BP神经网络算法的函数逼近
实验二基于BP神经网络算法的函数逼近1、实验目的掌握Matlab子函数的编写与调用。理解BP神经网络算法的原理,并利用程序实现利用BP算法逼近任意非线性函数。2、实验内容与实验要求掌握BP神经网络算法的原理。掌握matlab子函数的编写方法及调用方法。根据BP神经网络算法的原理,编写Matlab程序,逼近非线性函数。3、实验要求1)自己编写Matlab函数。2)书写实验报告。3)分析实验结果,用图描述出非线性函数的真实曲线以及BP算法逼近的曲线。4、实验设备1)计算机2)Matlab软件5、实验原理BP神经网络算法:神经网络由神经元和权重构成,神经元即为:输入节点,输出节点和隐层结点三部分;权重是各个神经元相互连接的强度。神经网络通过训练,从样本中学习知识,并且将知识以数值的形式存储于连接权中。神经网络的分类过程分成两部分,首先学习网络的权重,利用一些已知的数据训练网络得到该类数据模型的权重;接着根据现有的网络结构和权重等参数得到未知样本的类别。BP算法被称作反向传播算法,主要思想是从前向后(正向)逐层传播信息;从后向前(反向)逐层传播输出层的误差,间接算出隐层误差。6、BP算法具体步骤①前馈计算设隐层的第j个节点的输入和输出分别为:NiiijjOwI1)(jjIfO其中)(jIf为激励函数jIjeIf11)(由于隐层的输出就是输出层的输入,则输出层第k个节点的总输入和输出分别为:HjjjkkOwI1)(kkkIfOy若网络输出与实际输出存在误差,则将误差信号反向传播,并不断地修正权值,直至误差达到要求为止。②权值调整设误差函数定义为:MkkkpydE12)(21为了简便,以下计算都是针对每个节点而言,误差函数pE记作E。输出层权值的调整权值修正公式为:jkjkwEwjkkkwIIE定义反传误差信号k为:kkkkkIOOEIE式中)(kkkOdOE)()(kkkkkIfIIfIO)1()](1)[()(kkkkkOOIfIfIf所以)(kkkOd)1(kkOO又jHjjjkjkjkkOO)(1由此可得输出层的任意神经元权值的修正公式:jkjkOw或jkkkkjkOOdOOw))(1((隐层权值的调整ijijwEwijjjwIIEijOIE式中iNiiijijijOO)(1由于误差函数E与隐层输入jI不存在直接的函数关系,因此不能直接求得,所以jjjjIOOEIEjjMkjkkIIfOIIE)()(1)()()(11jHjjjkjMkkIfOwOIE)()(1jMkjkkIfw隐层的反传误差信号为MkjkkjiwIf1)(由此可得,隐层权值的修正公式为;iMkjkkjijOwIfw)()(1或iMkjkkjjijOwOOw)()1(17、程序代码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=1200000;yb=0;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;endw11=w13;w21=w23;s1=s-1;s=1:s1;plot(s,ya,s,yo,'g.',s,e,'rx');title('BP');8、运行结果9、实验结果分析1)此次逼近的函数为y=cosx,蓝线为真实的正弦曲线,绿色为逼近的正弦曲线,红色代表误差曲线,从图像上可以得出逼近结果与原曲线契合程度高,效果良好。2)为了测试程序广泛适用性,对函数进行修改反复测试,效果良好,误差十分小。3)BP算法能很有效的完成数据训练,是一个训练数据的好方法。
本文标题:实验二-基于BP神经网络算法的函数逼近
链接地址:https://www.777doc.com/doc-5836859 .html