用matlab编BP神经网络预测程序_第1页
用matlab编BP神经网络预测程序_第2页
用matlab编BP神经网络预测程序_第3页
用matlab编BP神经网络预测程序_第4页
用matlab编BP神经网络预测程序_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、适用标准文案求用matlab编BP神经网络展望程序求一用matlab编的程序P=。;输入T=。;输出创立一个新的前向神经网络net_1=newff(minmax(P),10,1,tansig,purelin,traingdm)目前输入层权值和阈值inputWeights=net_1.IW1,1inputbias=net_1.b1目前网络层权值和阈值layerWeights=net_1.LW2,1layerbias=net_1.b2设置训练参数=50;=0.05;=0.9;=10000;=1e-3;调用TRAINGDM算法训练BP网络net_1,tr=train(net_1,P,T);对BP网络

2、进行仿真A=sim(net_1,P);计算仿真偏差E=T-A;MSE=mse(E)x=。;%测试sim(net_1,x)%不行能啊我200928出色文档适用标准文案对初学神经网络者的小提示第二步:掌握以下算法:最小均方偏差,这个原理是下边提到的神经网络学习算法的理论核心,入门者要先看高等数学(高等教育第一版社,同济大学版)第8章的第十节:“最小二乘法”。在第2步的基础上看Hebb学习算法、SOM和K-近邻算法,上述算法都是在最小均方偏差基础上的改良算法,参照书本是神经网络原理(机械工业第一版社,SimonHaykin著,中英文都有)、人工神经网络与模拟进化计算(清华大学第一版社,阎平庸,张长水

3、著)、模式分类(机械工业第一版社,RichardO.Duda等著,中英文都有)、神经网络设计(机械工业第一版社,MartinT.Hargan等著,中英文都有)。4.ART(自适应谐振理论),该算法的最平常易懂的读物就是神经网络设计(机械工业第一版社,MartinT.Hargan等著,中英文都有)的第15和16章。若看理论剖析较费力可直接编程实现一下节的ART1算法小节中的算法.4.BP算法,初学者若对偏差反传的剖析过程理解费劲可先跳过理论剖析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看机器学习(机械工业第一版社,TomM.Mitchell著,中英文都有)的第4章和神经网络设计(

4、机械工业第一版社,MartinT.Hargan等著,中英文都有)的第11章。BP神经网络Matlab实例(1)分类:Matlab实例采纳Matlab工具箱函数成立神经网络,对一些基本的神经网络参数进行了说明,深入认识参照Matlab帮助文档。例1采纳动量梯度降落算法训练BP网络。训练样本定义以下:输入矢量为p=-1-231%-115-3%目标矢量为t=-1-111closeallclearclc%出色文档适用标准文案-NEWFF生成一个新的前向神经网络,函数格式:%net=newff(PR,S1S2.SNl,TF1TF2.TFNl,BTF,BLF,PF)takes,PR-Rx2matrixof

5、minandmaxvaluesforRinputelements(关于R维输入,PR是一个Rx2的矩阵,每一行是相应输入的界限值)Si-第i层的维数TFi-第i层的传达函数,default=tansigBTF-反向流传网络的训练函数,default=traingdxBLF-反向流传网络的权值/阈值学习函数,default=learngdmPF-性能函数,default=mse%-TRAIN对BP神经网络进行训练,函数格式:train(NET,P,T,Pi,Ai,VV,TV),输入参数:net-所成立的网络P-网络的输入T-网络的目标值,default=zerosPi-初始输入延缓,defaul

6、t=zerosAi-初始网络层延缓,default=zerosVV-考证向量的构造,default=TV-测试向量的构造,default=返回值:net-训练以后的网络TR-训练记录(训练次数及每次训练的偏差)Y-网络输出E-网络偏差Pf-最后输入延缓Af-最后网络层延缓%-SIM对BP神经网络进行仿真,函数格式:Y,Pf,Af,E,perf=sim(net,P,PiAi,T)参数与前同。%-%定义训练样本P为输入矢量出色文档适用标准文案echoonP=-1,-2,3,1;-1,1,5,-3;T为目标矢量T=-1,-1,1,1;创立一个新的前向神经网络net=newff(minmax(P),3

7、,1,tansig,purelin,traingdm)-训练函数:traingdm,功能:以动量BP算法修正神经网络的权值和阈值。它的有关特征包含:epochs:训练的次数,默认:100goal:偏差性能目标值,默认:0lr:学习率,默认:0.01max_fail:确认样本进行仿真时,最大的失败次数,默认:5mc:动量因子,默认:0.9min_grad:最小梯度值,默认:1e-10show:显示的间隔次数,默认:25time:训练的最长时间,默认:inf%-目前输入层权值和阈值inputWeights=net.IW1,1inputbias=net.b1目前网络层权值和阈值layerWeight

8、s=net.LW2,1layerbias=net.b2设置网络的训练参数=50;=0.05;=0.9;=1000;=1e-3;调用TRAINGDM算法训练BP网络net,tr=train(net,P,T);对BP网络进行仿真A=sim(net,P)计算仿真偏差E=T-AMSE=mse(E)echooff出色文档适用标准文案figure;plot(1:4),T,-*,(1:4),A,-o)BP神经网络的原理及算法的基本步骤理论上已证明,一个3层的BP网络能够实现随意的连续映照,能够随意精度迫近任何给定的连续函数。1BP神经网络的原理BP(BackPropagation)神经网络往常由拥有多个节点

9、的输入层(inputlayer)、隐含层(hiddenlayer)和多个或一个输出节点的输出层(outputlayer)构成,其学习过程分为信息的正向流传过程和偏差的反向流传过程两个阶段。外面输入的信号经输入层、隐含层为止。的神经元逐层办理,向前流传到输出层,给出结果。假如在输出层得不到希望输出,则转入逆向流传过程,将实质值与网络输出之间的偏差沿原连结通路返回,经过改正各层神经元的连结权重,减少偏差,而后再转入正向流传过程,频频迭代,直到偏差小于给定的值表119812005年全国总人口(单位:万人)年份198119821983198419851986198719881989人口99622101

10、541102495103604104639106008108000109614111191年份199019911992199319941995199619971998人口114333115823117171118517119850121121122389123626124810年份1999200020012002200320042005人口125909缺省127627128453129227129988130756模型二展望2001年2010年全国总人口(单位:万人)年份20012002200320042005人口127699128457129220129987130758年份20062007

11、200820092010人口131534132315133100133890134685模型展望的全国总人口(1981年至2016年)(单位:万人)年份198119821983198419851991人口99266101308102967104600106203115172年份199219931994199520012002人口116550117895119205120480127403128436年份200320042005200620072008出色文档适用标准文案人口129437130405131340132244133116133958年份20092010201520202025203

12、0人口134770135552139049141921144257146144年份203520402045205020602070人口147659148869149832150596151678152352年份208020902100210521102120人口152769153026153185153240153283153344模型四展望2011至2020年人口(单位:万人)年份20112012201320142015全国总人口134668135478136325137185138036年份20162017201820192020全国总人口1388621396521404021411061

13、41760出色文档适用标准文案2.1利用MatlabScript节点实现在此以对一个非线性函数的迫近作为例子来说明实现流程,此中输入矢量p=-10.051;目标矢量t=sin(2*pi*p)+0.1randn(size(p)。利用Mat-labScript节点实现BP算法的过程以下:新建一个LabVIEWvi,在框图程序中增添MatlabScript节点。在节点内增添Matlab的动量BP算法实现代码,并分别在节点左右侧框分别增添对应的输入/输出参数,如图1所示。在vi的前面板增添相应的控件,设置输入参数,连结输出控件。履行程序,结果如图2、图3所示。出色文档适用标准文案下边的代码将重修我们从

14、前的网络,而后用批办理最速降落法训练网络。(注意用批办理方式训练的话所有的输入要设置为矩阵方式)net=newff(-12;05,3,1,tansig,purelin,traingd);出色文档适用标准文案=50;=0.05;=300;=1e-5;p=-1-122;0505;t=-1-111;net=train(net,p,t);TRAINGD,Epoch0/300,MSE1.59423/1e-05,Gradient2.76799/1e-10TRAINGD,Epoch50/300,MSE0.00236382/1e-05,Gradient0.0495292/1e-10TRAINGD,Epoch1

15、00/300,MSE0.000435947/1e-05,Gradient0.0161202/1e-10TRAINGD,Epoch150/300,MSE8.68462e-05/1e-05,Gradient0.00769588/1e-10TRAINGD,Epoch200/300,MSE1.45042e-05/1e-05,Gradient0.00325667/1e-10TRAINGD,Epoch211/300,MSE9.64816e-06/1e-05,Gradient0.00266775/1e-10TRAINGD,Performancegoalmet.a=sim(net,p)a=-1.0010-0.

16、99891.00180.9985用nnd12sd1来演示批办理最速降落法的性能。带动量的批办理梯度降落法(TRAINGDM)出色文档适用标准文案net=newff(-12;05,3,1,tansig,purelin,traingdm);=50;=0.05;=0.9;=300;=1e-5;p=-1-122;0505;t=-1-111;net=train(net,p,t);TRAINGDM,Epoch0/300,MSE3.6913/1e-05,Gradient4.54729/1e-10TRAINGDM,Epoch50/300,MSE0.00532188/1e-05,Gradient0.213222

17、/1e-10TRAINGDM,Epoch100/300,MSE6.34868e-05/1e-05,Gradient0.0409749/1e-10TRAINGDM,Epoch114/300,MSE9.06235e-06/1e-05,Gradient0.00908756/1e-10TRAINGDM,Performancegoalmet.a=sim(net,p)a=-1.0026-1.00440.99690.99923.1MATLAB神经网络工具箱的GUI(图形用户界面)工具.神经网络工具箱的GUI工具主要包含:1)神经网络GUI工具主窗口;2)神经网络的成立窗口;3)网络训练对话框;4)自适应参数

18、设置对话框;5)权值显示窗口.经过神经网络工具箱的GUI工具按钮出色文档适用标准文案就能很方便地翻开所成立的神经网络的构造图进行观察,也能够看到一个训练过程的偏差曲线变化图.3.2神经网络工具箱解决问题的一般步骤1)对待解决的问题进行剖析,依据各样网络的特色采纳适合的网络模型;2)成立网络;3)对网络初始化;4)对网络进行训练;5)对网络进行仿真检验;6)应用网络解决问题.系统的展望仿真4.1使用神经网络GUI工具成立神经网络的输入样本和目标样本1)在MATLAB命令窗口输入nntool,翻开图形用户界面工具主窗口,如图1所示.2)单击NewData按钮,翻开数据生成对话框.成立输入样本P,数

19、据的输入和设置如图2所示,单击Create按钮封闭对话框.3)依据上一步,输入目标样本T,数据种类选Targets.回到GUI工具的主窗口,单击Export按钮弹出导出对话框,选中变量P和T,而后单击Export按钮,把变量P和T导出到工作区.这为仿真文件从工作空间调用导入数据做好了准备.4.2成立仿真模型文件进行展望运转MATLAB软件中的Simulink仿真环境,在神经网络模块库中调用神经网络展望控制模块NNPredictiveController,用模块封装技术成立河流水质数学方程模块,连结信号源模块和示波器模块后就成立了河流水质展望仿真文件predwq.mdl,如图3,此中FromWo

20、rkspace模块中是目标样本T的数据,能够直接从工作区导入.双击神经网络展望控制模块NNPredictiveController,弹出如图4的窗口,此窗口用于设计模型展望控制器,输入控制器变量空间N2和Nu、权值参数和控制最优化参数的值.而后点击PlantIdentification按钮,翻开系统辨别窗口,从工作区导入输入样本P,出色文档适用标准文案设置好其余参数后训练网络,单击OK按钮,将训练好的神经网络模型导入到神经网络展望控制模块中,在NNPredictiveController窗口中单击OK按钮,将控制器参数导入到NNPredictiveController模块中.图3predwq.

21、mdl仿真文件图4神经网络展望控制模块窗口系统模块SystemModel是用模块封装技术封装的河流水质微分方程式(4)的仿真模块,如图所示.在predwqSimulink主窗口,仿真时间输入100,再单击Startsimulation命令按钮开始仿真.仿真结束后,双击示波器模块就能够查察仿真结果,如图6所示.对仿真结果和目标样本的值进行比较,依据它们的差值绘出展望偏差变化曲线,如图7所示.图5河流水质微分方程仿真模块图6目标和展望结果图结果与议论比较图6、图7知,本文成立的网络系统对水质参数耗氧量的展望图像和目标样本基本一致.把仿真展望结果数据和实质目标样本数据进行比较,正、负最大偏差分别为0

22、.11和0.06,最小偏差为0,固然还有偏差,但偏差是在满意的范围以内.所以,把河流水质的数学模型用MATLAB神经网络进行仿真展望,拥有较高的精度,为河流水质展望供给了方便的方法.出色文档适用标准文案图7展望偏差的曲线变化出色文档适用标准文案利用NNToolbox架构神经网络主要采纳以下两种方法:(1)使用网络数据管理器(NetworkDataManager)。详细操作为:在LaunchPad窗体中点击NeuralNetworkToolbox目录下的。nntool文件,即在计算机屏幕中央出现NetworkDataManager窗体;点击窗体中NewNetwork按钮,依据提示设定网络种类、网

23、络构造、网络算法和网络激活函数即可生成用户定义的神经网络;点击View按钮可显示该神经网络的构造图;点击initialize、simu-late、train和adapt按钮并设定参数可对神经网络进行初始化、模拟、训练和仿真;最后点击Export按钮可将网络模拟、训练和仿真的结果以文件的形式导出。该方法操作简略,无需编写程序代码,即可达成神经网络的建立、初始化、训练和仿真等主要工作。可是该方法不可以和MATLAB其余程序动向链接,网络仿真结果只好以数据文件的形式导出,不可以可视化显示。编写MATLAB应用程序,即运用MATLAB语言引用神经网络工具箱函数编写程序代码并保留为M文件,而后运转该文件

24、。该种方法能够依据研究人员的需要,调用MATLAB丰富的内部函数,并能和各种数据库及其余应用程序(包含C、FOR-TRAN程序)动向链接,使神经网络功能更加强盛。本研究即采用该种方法,此中引用的重要算法、函数及参数将在第2、3节详述。出色文档适用标准文案中国将来几年人口总量的展望本文对所使用的序列数据进行(,)模型维数优化时获得最正确的维数是58维不等,均属于短序列展望,只适合短期的人口总量的展望,所以对GM112008-2012年共5个时间序列点的中国人口总量进行展望,结果如表2所示。表2灰色人工神经网络()模型对年中国人口总量展望的结果GANN2008-2012万人年份总人口2008200

25、9201020112012出色文档适用标准文案成立BP神经网络展望模型在进行BP网络展望模型设计时,主要考虑网络的层数和每层中神经元的个数。神经网络经过计算机程序实现对非线性映照迫近,在众多语言中,MATLAB语言同意数学形式的语言编写程序,比其余语言更靠近我们书写计算公式的思想方式。所以编程效率高,易学易懂。年份人口总数(万人)198510585119861075071987109300198811102619891127041990114333出色文档适用标准文案1991115823199912578620001267431992117171200112762719931185172002

26、128453199411985020031292271995121121200412998819961223892005130756199712362619981247613采纳单隐层的BP网络进行展望。成立两层神经网络,因为输入样本为3维的输入向量,所以,输入层一共有3个神经元,依据Kolmogorov2定理,网络应当为373的构造。此中,threshold设定了网络输入向量的取值范围0,1,第一层神经元数为3,传函种类为LOGSIG,第二层神经元数为7,传函种类为PURELIN,采纳动量梯度降落反向流传算法对网络进行训练。中间层的神经元个数是很难确立的,而这又在很大程度上影响着网络的展望性

27、能。当网络的展望偏差最小时,网络中间层的神经元数量就是最正确值。进行对照后,可见中间层神经元个数为8时,网络的展望性能最好。训练结果如图所示,网络的预告偏差如100.035GeuBkgcnanBalraTo0.0250.020.0150.010.0050-0.005050100150-0.011.21.41.61.822.21155Epochs2.42.62.83出色文档适用标准文案图1训练结果(中间层神经元数量:8)图2网络的预告偏差(中间层神经元数量:8)年份总人口数(万人)2006140800200714250020081466002009151000出色文档适用标准文案20101558

28、002011159600201216210020131633002014163800201516400020161641002017164100201816410020191641002020164100,每行语句前都有一个符号“”,此即命令提示符。在此符号后(也只好在此符号后)输入各样语句并按Enter键,方可被MATLAB接收和履行。履行的结果往常就直接显示在语句下方,如图1.2所示。不一样种类语句用不一样颜色划分。在默认状况下,输入的命令、函数、表达式以及计算结果等采纳黑色字体,字符串采纳赭红色,if、for等重点词采纳蓝色,说明语句用绿色。因为MATLAB是一个多功能集成软件,不一样的

29、功能需要使用不一样的文件格式去表现,所以MATLAB的文件也有多种格式。最基本的是M文件、数据文件和图形文件,除此以外,还有MEX文件、模型文件和仿真文件等。下边分别予以说明。M文件,以.m为扩展名,所以称为M文件。M文件是由一系列MATLAB语句构成的文件,包含命令文件和函数文件两类,命令文件近似于其余高级语言中的主程序或主函数,而函数文件则近似于子程序或被调函数。MATLAB众多工具箱中的(函数)文件基本上是M函数文件。因为它们是由ASCII码表示的文件,所以可由任一文字办理软件编写后以文本格式寄存。数据文件,以.mat为扩展名,所以又称MAT文件。在议论工作空间窗口时已经涉及到MAT文件

30、。明显,数据文件保留了MATLAB工作空间窗口中变量的数据。(3)图形文件,以.fig为扩展名。主要由MATLAB的画图命令产生,自然也可用File菜单中的New命令成立。(4)MEX文件,以.mex或.dll为扩展名,所以称MEX文件。MEX实质是由MATLABExecutable缩写而成的,因而可知,MEX文件是MATLAB的可履行文件。(5)模型和仿真文件,模型文件以.mdl为扩展名,由Simulink仿真工具箱在成立各样仿真模型时产生。仿真文件以.s为扩展名。出色文档适用标准文案键盘输入语句(input)其调用格式有(1)x=input(prompt):显示提示字符串prompt,要求

31、用户键盘输入x的值。(2)x=input(prompt,s):显示提示字符串prompt,要求用户键盘输入字符型变量x的值,不至于将输入的数字当作是数值型数据。屏幕输出语句(disp)屏幕输出最简单的方法是直接写出欲输出的变量或数组名,后边不加分号。别的,能够采纳disp语句,其调用格式为disp(x)。M数据文件的储存/加载(save/load)1.save语句其调用格式有save:将所有工作空间变量储存在名为MATLAB.mat的文件中。(2)savefilename:将所有工作空间变量储存在名为filename的文件中。(3)savefilenameXYZ:将工作空间的指定变量X、Y、Z存于名为filename的文件中。2.load语句其调用格式有(1)load:假如MATLAB.mat文件存在,则加载MATLAB.mat文件中储存的所有变量到工作空间;不然返回一错误信息。(2)loadf

温馨提示

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

评论

0/150

提交评论