(采用BP神經网络完成非线性函数的逼近)神经网络.docVIP

(采用BP神經网络完成非线性函数的逼近)神经网络.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(采用BP神經网络完成非线性函数的逼近)神经网络

控制系统仿真与模型处理设计报告 (采用BP神经网络完成非线性函数的逼近) 1、题目要求: (1)确定一种神经网络、网络结构参数和学习算法。 (2)选择适当的训练样本和检验样本,给出选取方法。 (3)训练网络使学习目标误差函数达到0.01,写出学习结束后的网络各参数,并绘制学习之前、第100次学习和学习结束后各期望输出曲线、实际输出曲线。绘制网络训练过程的目标误差函数曲线。 (4) 验证网络的泛化能力,给出网络的泛化误差。绘制网络检验样本的期望输出曲线和网络输出曲线。 (5)分别改变神经网络的中间节点个数、改变网络的层数、改变学习算法进行比较实验,讨论系统的逼近情况,给出你自己的结论和看法。 2、设计方案: 在MATLAB中建立M文件下输入如下命令: x=[0:0.01:1]; y=2.2*power(x-0.25,2)+sin(5*pi*x); plot(x,y) xlabel(x); ylabel(y); title(非线性函数); 得到如下图形,即所给的非线性函数曲线图: 构造一个1-7-1的BP神经网络,第一层为输入层,节点个数为1;第二层为隐层,节点个数为7;变换函数选正切s型函数(tansig);第三层为输出层,节点个数为1,输出层神经元传递函数为purelin函数。并且选Levenberg-Marquardt算法(trainlm)为BP网络的学习算法。对于该初始网络,我们选用sim()函数观察网络输出。继续在M函数中如下输入。 net=newff(minmax(x),[1,7,1],{tansig,tansig,purelin},trainlm); y1=sim(net,x); figure; plot(x,y,b,x,y1,r) title(期望输出与实际输出比较); xlabel(t); 则得到以下所示训练的BP网络期望输出与实际输出曲线比较: 应用函数train()对网络进行训练之前,需要预先设置训练参数。将最大训练次数为100次,训练精度设置为0.01,学习速度为0.01。 net.trainParam.epochs=100; net.trainParam.goal=0.001; net.trainParam.lr=0.01; net=train(net,x,y); y2=sim(net,x); figure; plot(x,y,-r,x,y2,*g) title(训练后的结果); 下图为网络训练过程,可以看到,当训练4次以后,就已达要求。 下图为训练后的结果曲线,“*”为学习过后的曲线,红线为期望输出,两条曲线已经很相近了。这说明经过训练后,BP网络对非线性函数的逼近效果相当好。 接着检验网络的泛化能力,在M文件后,继续输入 err=y-y2; figure; plot(x,y2,*g,x,err,+c); 得到以下图形,由图可知,网络具有很好的泛化能力。 将神经网络的节点数为3时,相关图形如下。 从上面3个图中我们可以看出,当节点为3时,经过训练后,BP网络对非线性函数的逼近效果明显减弱,并且在经过100次训练后仍然达不到所要求的输出精度。我由此推出,当层数一样多的时候,隐层神经元数目愈多,则BP网络逼近非线性函数的能力越强。 我把上述的层数分布:1-7-1改为1-3-5-1,得到以下的结果: 从三幅图中我们可以看到,在神经元数目一样的情况下,不同的层数对结果是有明显影响的。 我将原训练函数trainlm改为traingd,得到以下输出结果。 从三幅图可以看出,将trainlm改为traingd之后,连所要求的精度都不能达到。我由此推出,训练算法对非线性函数的逼近有一定影响,应当选择适合的训练算法。 3、总结: 通过这次作业,我总算对神经网络有了一定的了解,在实践中学习的确能加深对知识的理解和运用能力。这次我特地没有用nntool工具箱,而是采用M文件编辑,也算对其有了初步的掌握,感觉M文件编写很灵活,分号的作用很明显,和命令窗口相比也更容易修改参数。 4

文档评论(0)

fv45ffsjjI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档