函数逼近基于MATLAB的BP神经网络应用2.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数逼近基于MATLAB的BP神经网络应用2

BP神经网络逼近非线性函数 1. BP 网络在函数逼近中的应用 1.1 问题的提出 BP 网络由很强的映射能力,主要用于模式识别分类、函数逼近、函数压缩等。下面将通过实例来说 明BP 网络在函数逼近方面的应用。 要求设计一个BP网络,逼近以下函数:g(x) 1+sin(k*pi/4*x),实现对该非线性函数的逼近。其中, 分别令k 1,2,4进行仿真,通过调节参数 (如隐藏层节点个数等)得出信号的频率与隐层节点之间,隐 层节点与函数逼近能力之间的关系。 1.2 基于BP神经网络逼近函数 步骤 1:假设频率参数k 1,绘制要逼近的非线性函数的曲线。函数的曲线如图3.2 所示 k 1; p [-1:.05:8]; t 1+sin(k*pi/4*p); plot (p,t,-); title(要逼近的非线性函数); xlabel(时间); ylabel(非线性函数); 图1 要逼近的非线性函数曲线 1 步骤2:网络的建立 应用newff()函数建立BP 网络结构。隐层神经元数目n 可以改变,暂设为n 3,输出层有一个神经元。 选择隐层和输出层神经元传递函数分别为tansig 函数和purelin 函数,网络训练的算法采用Levenberg – Marquardt 算法trainlm。 n 3; net newff(minmax(p),[n,1],{tansig purelin},trainlm); 对于初始网络,可以应用sim ()函数观察网络输出。 y1 sim(net,p); figure; plot(p,t,-,p,y1,:) title(未训练网络的输出结果); xlabel(时间); ylabel(仿真输出--原函数-); 同时绘制网络输出曲线,并与原函数相比较,结果如图2 所示。 图2 未训练网络的输出结果 其中 “ ” 代表要逼近的非线性函数曲线; “‥‥‥” 代表未经训练的函数曲线; 因为使用newff()函数建立函数网络时,权值和阈值的初始化是随机的,所以网络输出结构很差,根 本达不到函数逼近的目的,每次运行的结果也有时不同。 步骤3:网络训练 2 应用train ()函数对网络进行训练之前,需要预先设置网络训练参数。将训练时间设置为50,训练精 度设置为0.01,其余参数使用缺省值。训练后得到的误差变化过程如图3所示。 图3 训练过程 net.trainParam.epochs 50; (网络训练时间设置为50) net.trainParam.goal 0.01; (网络训练精度设置为0.01) net train(net,p,t); (开始训练网络) TRAINLM-calcjx,Epoch 0/50,MSE 9.27774/0.01,Gradient 13.3122/1e-010 TRAINLM-calcjx,Epoch 3/50,MSE 00.01,Gradient 0.0337555/1e-010 TRAINLM,Performancegoalmet. 从以上结果可以看出,网络训练速度很快,经过一次循环跌送过程就达到了要求的精度0.01。 步骤4: 网络测试 对于训练好的网络进行仿真: y2 sim(net,p); figure; plot(p,t,-,p,y1,:,p,y2, --) title(训练后网络的输出结果); xlabel(时间); ylabel(仿真输出); 绘制网络输出曲线,并与原始非线性函数曲线以及未训练网络的输出结果曲线相比较,比较出来的结 果如图4 所示。 3 图4 训练后网络的输出结果

文档评论(0)

feixiang2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档