BP神经网络拟合函数_第1页
BP神经网络拟合函数_第2页
BP神经网络拟合函数_第3页
BP神经网络拟合函数_第4页
BP神经网络拟合函数_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

BP神经网络用于函数拟合的实验一、实验目的本实验规定掌握前向型神经网络的基本工作原理及运用反向传输拟定权系数的办法,并能在MATLAB仿真环境下设计对应的神经网络,实现对非线性函数的逼近与拟合,并分析影响函数拟合效果的有关因素。二、实验规定设计神经网络的基本构造与激励函数,实现对非线性函数y=sin(x)的逼近与拟合,并分析影响函数拟合效果的有关参数(涉及激励函数的选择sigmoid、线性函数、权系数的初值、步长的大小、训练样本的多少等),并对比实验效果。三、实验环节1.拟定神经网络的构造本次实验采用前向型BP神经网络,神经元分层排列,每一层的神经元只接受前一层神经元的输入。输入模式通过各层的次序变换后,得到输出层输出。各神经元之间不存在反馈。该实验神经网络含输入层和输出层两层神经元,其中输入层含六个神经元,输出层含一种神经元。输入信号传输到输入层,在输出层得到拟合成果。拟定采用的激励函数、拟合办法选择激励函数为sigmoid的函数,因其便于求导,且值域在(0,1)之间,含有较好的收敛特性。拟合办法采用梯度下降法,该办法使实验数值沿梯度方向增加有限步长,避免了盲目搜索,提高搜索效率。训练流程初始化各参数开始训练计算误差计算广义误差调节连接权系数,直到误差不大于设定值编写程序实现对非线性函数y=sin(x)的逼近与拟合算法流程图如图4.1所示。图4.1算法流程图四、实验成果及分析通过BP网络学习逼近sin(x)函数的实验发现,不同的初值对逼近效果有较大影响。权系数初值随机选用时,多次运行程序,得到一组较好的拟合成果(见图1),其权系数为w1=[-2.9880,-1.9267,-1.3569,-1.5064,-0.6377,-2.3899]w2=[2.0316,2.1572,-1.1427,-1.3108,-0.6328,-1.8135],阈值yw1=[-11.3291,-4.0186,-6.6926,-7.6080,-0.5955,-2.1247],yw2=-0.4377。图SEQ图\*ARABIC1固定选用初值为较好的拟合成果的权系数w1,w2及阈值yw1,yw2,变化其学习步长,发现适宜步长能够使网络拟合得更加好,但过小及过大的步长都会加大误差(见图2.1,图2.2,图2.3),图2.1设立的步长为0.2,最后拟合误差在0.1左右,图2.2设立的步长为0.02,最后拟合误差靠近0.02,图2.3设立的步长为0.002,最后拟合误差在0.03左右。由此可见,步长在0.02时,拟合得最佳,误差最低。图SEQ图\*ARABIC2.1图2.2图2.3固定选用初值为较好的拟合成果的权系数w1,w2及阈值yw1,yw2,取步长为0.02,变化样本数n,发现适宜样本数能够使网络拟合得更加好(见图3.1,图3.2,图3.3),图3.1设立的样本数为10,最后拟合误差即使趋近于0,但通过图像我们能够直观地看出,样本数过少使BP网络拟合出的是分段函数,而不是平滑的sin(x),图3.2设立的样本数为30,最后拟合误差靠近0.02,图2.3设立的样本数为300,最后拟合误差靠近0.004,但是通过逼近图像能够直观看到,300的样本数拟合程度并不如30样本数的好。可见,样本数为30时,拟合得最佳,误差最低。图SEQ图\*ARABIC3.1图3.2图3.3固定选用初值为较好的拟合成果的权系数w1,w2及阈值yw1,yw2,取步长为0.02,样本数为30,变化学习次数,发现学习次数越多,BP网络拟合越好,但是达成一定程度后,由于学习规定的存在(均方差不大于0.008),学习次数对拟合性的影响便会达成饱和,增加学习次数对拟合程度影响不大(见图4.1,图4.2,图4.3)。图4.1设立的学习次数为3000,最后拟合误差靠近0.02,图4.2设立的学习次数为30000,最后拟合误差0.02左右,图4.3设立的学习次数为300000,最后拟合误差还是在0.02左右。可见,学习次数为30000时,就已经足够。图SEQ图\*ARABIC4.1图4.2图4.3通过以上实验对比发现,选用初值为较好的拟合成果的权系数w1,w2及阈值yw1,yw2,取步长为0.02,样本数为30,学习次数为30000,在不变化BP网络内部构造的状况下拟合程度最佳。变化BP网络构造,把第一层6个神经元改为3个神经元,权系数和阈值初值随机选用,步长0.02,样本数30,选用学习次数为3000时(如图5.1),能够发现拟合度十分差,而最大学习次数到30000时(如图5.2),拟合程度改善不少,最后误差靠近于0,进一步证明学习次数越大,BP网络拟合程度比较好。图SEQ图\*ARABIC5.1图5.2变化BP网络构造,把第二层神经元的激励函数改为sigmoid函数,第一层神经元仍然为6个,权系数和阈值初值随机选用,步长0.02,样本数30,选用学习次数为3000时(如图6.1),能够发现拟合度十分差,而最大学习次数到30000时(如图6.2),拟合程度改善不少。但激励函数改为sigmoid函数后,发现BP网络只能拟合sin(x)的前半周期,后半周期输出都为0,这是由于sigmoid函数的值域为[0,1],而sin(x)函数的值域为[-1,1],因此输出层的激励函数不能为sigmoid函数,否则无法拟合sin后半周期。图SEQ图\*ARABIC6.1图6.2通过以上实验对比,第一层6个神经元,激励函数为sigmoid函数,第二层1个神经元,激励函数为线性函数,步长0.02,样本数30,选用学习次数为30000时,BP网络拟合sin函数程度最佳。四、MATLAB编程代码functionbpsin%用BP神经网络拟合sin(x)函数,两层神经元,第一层六个,激励函数为sigmoid函数,第二层一种,激励函数为线性函数。%********初始化*******************************l=0.2;%学习步长n=30;%输入样本数cell=6;%第一层神经元数times=3000;%学习次数x=(linspace(0,2*pi,n));%选用样本点t=sin(x);%学习拟合的函数w1=rand(cell,1)*0.05;%第一层连接权系数的初始值w2=rand(1,cell)*0.05;%第二层连接权系数的初始值yw1=rand(cell,1)*0.05;%第一层阈值初始值yw2=rand*0.05;%第二层阈值初始值y=rand(1,n)*0.05;%输出初始值counts=1;%计数e=zeros(1,times);%均方差%***************学习过程*************************fori=1:timesei=0;fora=1:n%遍历样本net1=w1*x(a)-yw1;out=logsig(net1);%第一层输出net2=w2*out-yw2;%y(a)=logsig(net2);y(a)=net2;%第二层输出(y)%det2=(t(a)-y(a))*y(a)*(1-y(a));det2=(t(a)-y(a));%det2det1=((det2*(w2)').*out).*(1-out);w1=w1+det1*x(a)*l;%更新权系数w2=w2+(det2*out)'*l;yw1=-det1*l+yw1;yw2=-det2*1+yw2;ei=ei+det2^2/2;%累积误差e(i)=ei;endifei<0.008break;endcounts=counts+1;end%************逼近曲线****************fora=1:nnet1=w1*x(a)-yw1;out=logsig(net1);net2=w2*out-yw2;%y(a)=logsig(net2);y(a)=net2;end%***********画图*******************subplot(2,1,1)plot(x,t,'b-',x,y,'k*-');%画sin函数及bp拟合图gridon;title('BPmethod,y=sin(x)');xlabel('x');ylabel('y=si

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论