资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB神经网络应用实验,一、神经网络辩识动态过程的一般原理,用神经网络辩识动态过程,就是选择一个适宜的神经网络模型来逼近实际系统.用神经网络对系统的输入、输出数据进行学习,学习的目的是使所指定的误差函数值到达给定的要求,从而归纳出隐含在系统输入、输出数据中的关系.这个关系隐含在网络内部,它究竟表现为何种形式,对外界是不可知的,并且人们关心的并不是网络以什么样的形式去逼近实际系统,而只要使网络和系统在相同的输入或鼓励的情况下,两者的输出能按某种范数充分逼近,此时那么认为网络已充分反响实际系统的特性,完成了对系统的辩识.,二、Matlab 的神经网络工具根本函数,Matlab 提供了多种神经网络模型的初始化、学习或训练以及仿真方面的函数.下面主要介,绍可用于过程辩识的有关BP 网络方面的函数.,1)net=newff(PR,S1,S2,SN1 ,TF1 TF2 TFN1,BTF,BLF,PF),该函数用来初始化一个前馈网络,函数输入参数含义如下:,PR:一个R 行2 列的矩阵,第i 行是R 维输入向量的第i 个分量取值区间的端点值.,Si:第i 层包含的结点个数.,TFi:第i 层的传输函数,缺省值为函数tansig.,BTF:反向传播网络的训练函数,缺省值为函数trainlm.,BLF:反向传播权值P阀值的学习函数,缺省值为函数learngdm.,PF:执行函数,缺省值为函数mse.,newff()函数返回一个多层前馈反向传播网络.与该函数对应的老版本函数为,w1,b1,w2,b2,w3,b3 =initff(p,s1,f1,s2,f2,s3,f3).,2)net,tr =train(NET,P,T,Pi,Ai,VV,TV)该函数用来训练一个由newff()初始化得到的网,络,它按照设定的网络训练参数NET.trainFcn 和NET.trainParam指定的方式训练网络.,函数输入参数含义如下:,NET:待训练网络.,P:样本输入向量.,T:样本输出向量,缺省值为0.,Pi:初始化输入延时条件,缺省值为0.,Ai:初始化输入延时条件,缺省值为0.,该函数返回一个已训练好的多层前馈反向传播网络net 和训练中的情况记录向量TR.,NET.trainFcn 指定train()训练网络时具体调用哪个训练函数,对于BP 网络而言,可供调用的函数有:trainlm(),trainbfg(),trainrp(),trainbr(),trainlcgb().它们采用不同的训练算法训练网络.不同的训练算法的执行速度及对内存的要求不同.其实用户也可不通过train()而直接调用它们.,3)Y,Pf,Af =sim(net,Px,Pi,Ai)用来仿真网络net,既求net 在输入向量Px 下的输出.,仿真BP 网络的函数为:a1,a2,a3 =simuff(p,w1,b1,f1,w2,b2,f2,w3,b3,f3),.,三、,过程离线辩识的实验步骤,例:,辩识以下非线性仿真对象,1)初步确定网络的层数,各层结点数和各层传输函数等结构参数,然后以它们为参数调用newff()或initff()初始化一个网络net.对于该仿真对象可预设网络结构为:5 20 10 1,2)调用u=random(unif,-5,5,1,100)产生均匀分布白噪声序列(u(1),u(2),u(100).作为辩识输入信号,然后根据上述仿真对象算出相应输出序列(y(4),y(5),y(100).假设对实际系统进行辩识,那么测出时刻4,5,100 时的输出值作为(y(4),y(5),y(100).,3用仿真对象或实际系统的输入输出的延时序,列(y(i-1)y(i-2)y(i-3)u(i-1)u(i-2)构成网络的样本输入向量,调用delaysig()得到,延时矩阵,再用97 个样本输入向量构成网络的输入p 如下:,y(3)y(4)y(99),y(2)y(3)y(98),y(1)y(2)y(97),u(3)u(4)u(99),u(2)u(5)u(98),4)取(y(4)y(5)y(100)构成网络在输入p 下的输出t,调用train()或trainbp()等相关函数训练网络.,训练网络时,网络参数可能需反复调整.对于该例而言,训练步数、训练误差、学习率取为(5000 0.02 0.0015),(15000 0.015 0.0011)或(20000 0.015 0.0008)均可.,5)观察、检验网络在其它输入下和被辩识过程在相同输入下的输出逼近情况.,6将训练好的网络和仿真对象或实际系统在工况输入,如su=5*sin(2*pi 3 k/50)下的输出一同绘图.,注:假设发现网络输出不能很好地逼近仿真对象或实际系统的输出时,那么要增加学习样本个数、增加输入延时序列长度或者调整(1)、(3)中的参数,重复上述步骤.,四、BP 神经网络水质评价应用实验,1、原始数据,表一 地下水质量评价标准,表二地下水质监测数据及评价结果,2、实验步骤,1 建立BP 网络模型和优化过程网络学习,BP 网络模型建立是网络训练成功的关键,由于BP 网络,自身也有一些缺乏,所以在构建过程中要对网络进行一些优化处理。本文主要从两个方面进行了优化处理。首先,隐层数、隐层神经元节点数确实定。设计一个BP网络,确定输入层节点为6,即水质评价指标数;一个隐层,初始节点数为13根据“2N+1这一经验,其中N 为输入层节点数;一个输出层,节点数为5,即水质评价等级。其次,对样本数据的预处理,使用MATLAB工具箱中REMNMX对训练样本集、期望目标输出进行归一化处理。最后,网络根本构造完成,使用Newff函数创立BP网络,各层神经元的传递函数为logsig和purelin,网络训练函数为trainlm。,2BP 网络学习,将水质分级标准作为训练样本,共有5 个训练样本,它们各自对应的输出层5个结点的期望输出为:级=(1,0,0,0,0),级=(0,1,0,0,0),级=(0,0,1,0,0),级=(0,0,0,1,0),级=为(0,0,0,0,1)。训练速率系数取0.01,在计算机上进行往复训练,直到所有训练样本的误差总和E小于要求值,在此取0.0001,此时学习停止,并保存训练所得的层间连接权重和阈值。,3 结果输出与数据分析,将训练好的BP 网应用于计算5 个监测点未知样本的输出,并与评价结果比较。,五、基于MA TLAB 的神经网络在股市预测中的应用实验,从数学上讲,股市的收盘价p=f(n)是日期n 的函数,但f(n)的解析式却无法求出。由于三层BP 网络具有逼近任意函数的能力,设计一个三层BP 网络,并从Internet 上h ttp:stock star 网站下载了上海石化(600688)140 个交易日的收盘价作为原始数据。,同时利用MA TLAB 的神经网络工具箱中的函数,140 个交易日的收盘价作为样本,对上述神经网络进行训练、仿真、并预测10 天的收盘价。计算其与实际收盘价离差,来验证BP 网络模型。,步骤:1、,BP 网络的设计,由于三层BP 网络具有逼近任意函数的能力,对于股市预测,设计,R,=1,即输入为一整数,代表从某一天开始后的第,p,天;,S,3=1,即输出为股票收盘价;,W,1,W,2,W,3 为各层神经元的权值;,b,1,b,2,b,3 为各层神经元的阈值;,S i,(,i,=1,2,3)为各层神经元的个数;,2、BP 网络的学习与初始化,w,1,b,1,w,2,b,2,w,3,b,3 =,initf f,(,p,s,1,f,1,s,2,f,2,s,3,f,3),对上述三层网络进行初始化,得到初始的权的阈值,w i,bi,(,i,=1,2,3),然后用BP 学习算法对输入的,p,个学习样本,x,1,x,2,x p,和,t,1,t,2,tp,进行训练从而得到最优的,w i,bi,.,3、模型求解与数据分析,上海石化163 个交易日的收盘价作为原始数据,对上述神经网络模,型进行求解,预测10 天的收盘价,与实际收盘价进行比较并绘图。,利用MA TLAB 的神经网络工具箱中的函数,以上海石化140 个交易日的收盘价作为样本(教师),对上述神经网络进行训练、仿真、并预测10 天的收盘价。同时计算其离差并绘图。,
展开阅读全文