实验四Matlab神经网络及应用于近红外光谱的汽油辛烷值预测.doc
《实验四Matlab神经网络及应用于近红外光谱的汽油辛烷值预测.doc》由会员分享,可在线阅读,更多相关《实验四Matlab神经网络及应用于近红外光谱的汽油辛烷值预测.doc(14页珍藏版)》请在咨信网上搜索。
1、(完整word)实验四Matlab神经网络及应用于近红外光谱的汽油辛烷值预测实验四 Matlab神经网络以及应用于汽油辛烷值预测一、实验目的1. 掌握MATLAB创建BP神经网络并应用于拟合非线性函数2. 掌握MATLAB创建REF神经网络并应用于拟合非线性函数3。 掌握MATLAB创建BP神经网络和REF神经网络解决实际问题4. 了解MATLAB神经网络并行运算二、实验原理2。1 神经网络2。1.1 BP神经网络概述神经网络Rumelhard和McClelland于年提出。从结构上将,它是一种典型的多层前向型神经网络,具有一个输入层、一个或多个隐含层和一个输出层。层与层之间采用权连接的方式,
2、同一层的神经元之间不存在相互连接。理论上已经证明,具有一个隐含层的三层网络可以逼近任意非线性函数。隐含层中的神经元多采用S型传递函数,输出层的神经元多采用线性传递函数。图所示为一个典型的神经网络.该网络具有一个隐含层,输入层神经元数据为R,隐含层神经元数目为S1,输出层神经元数据为S2,隐含层采用S型传递函数tansig,输出层传递函数为purelin.图 含一个隐含层的BP网络结构2。1。2 BP神经网络学习规则BP网络是一种多层前馈神经网络,其神经元的传递函数为S型函数,因此输出量为0到1之间的连续量,它可以实现从输入到输出的任意的非线性映射。由于其权值的调整是利用实际输出与期望输出之差,
3、对网络的各层连接权由后向前逐层进行校正的计算方法,故而称为反向传播(BackPropogation)学习算法,简称为BP算法。BP算法主要是利用输入、输出样本集进行相应训练,使网络达到给定的输入输出映射函数关系。算法常分为两个阶段:第一阶段(正向计算过程)由样本选取信息从输入层经隐含层逐层计算各单元的输出值;第二阶段(误差反向传播过程)由输出层计算误差并逐层向前算出隐含层各单元的误差,并以此修正前一层权值.BP网络的学习过程主要由以下四部分组成: 1)输入样本顺传播 输入样本传播也就是样本由输入层经中间层向输出层传播计算。这一过程主要是输入样本求出它所对应的实际输出。 隐含层中第i个神经元的输
4、出为 输出层中第k个神经元的输出为:其中f1(), f2 ()分别为隐含层和输出层的传递函数。2)输出误差逆传播在第一步的样本顺传播计算中我们得到了网络的实际输出值,当这些实际的输出值与期望输出值不一样时,或者说其误差大于所限定的数值时,就要对网络进行校正.首先,定义误差函数E(w,b)=其次,给出权值的变化 输出层的权值变化从第i个输入到第k个输出的权值为:其中: , 隐含层的权值变化从第j个输入到第i个输出的权值为: (为学习系数) 其中:由此可以看出:调整是与误差成正比,即误差越大调整的幅度就越大。调整量与输入值大小成比例,在这次学习过程中就显得越活跃,所以与其相连的权值的调整幅度就应该
5、越大,调整是与学习系数成正比。通常学习系数在0。10.8之间,为使整个学习过程加快,又不会引起振荡,可采用变学习率的方法,即在学习初期取较大的学习系数随着学习过程的进行逐渐减小其值.最后,将输出误差由输出层经中间层传向输入层,逐层进行校正。2。1.3 BP神经网络的训练对BP网络进行训练时,首先要提供一组训练样本,其中每个样本由输入样本和输出对组成.当网络的所有实际输出与其期望输出小于指定误差时,训练结束。否则,通过修正权值,使网络的实际输出与期望输出接近一致(图2)。实际上针对不同具体情况,BP网络的训练有相应的学习规则,即不同的最优化算法,沿减少期望输出与实际输出之间误差的原则,实现BP网
6、络的函数逼近、向量分类和模式识别。图2 神经网络的训练2。2 神经网络2.2.1 RBF神经网络概述1985年,Powell提出了多变量插值的径向基函数(Radical Basis Function, RBF)方法。1988年,Moody和Darken提出了一种神经网络结构,即RBF 神经网络,属于前向神经网络类型,它能够以任意精度逼近任意连续函数,特别适合于解决分类问题。RBF网络的结构与多层前向网络类似,它是一种三层前向网络。输入层由信号源节点组成;第二层为隐含层,隐单元数视所描述问题的需要而定,隐单元的变换函数RBF()是对中心点径向对称且衰减的非负非线性函数;第三层为输出层,它对输入模
7、式的作用作出响应。从输入空间到隐含层空间的变换是非线性的,而从隐含层空间的输出层空间变换是线性的。RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入向量直接(即不需要通过权接)映射到隐空间。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和。此处的权即为网络可调参数。由此可见,从总体上看,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。这样网络的权就可由线性方程直接解出,从而大大加快学习速度并避免局部极小问题.径向基神经网络的神经元结构如图3所示。径向基神经网络的激
8、活函数采用径向基函数,通常定义为空间任一点到某一中心之间欧氏距离的单调函数。由图3所示的径向基神经元结构可以看出,径向基神经网络的激活函数是以输入向量和权值向量之间的距离作为自变量的。径向基神经网络的激活函数(高斯函数)的一般表达式为 图3 径向基神经元模型随着权值和输入向量之间距离的减少,网络输出是递增的,当输入向量和权值向量一致时,神经元输出1。在图3中的b为阈值,用于调整神经元的灵敏度。利用径向基神经元和线性神经元可以建立广义回归神经网络,该种神经网络适用于函数逼近方面的应用;径向基神经元和竞争神经元可以组建概率神经网络,此种神经网络适用于解决分类问题。由输入层、隐含层和输出层构成的一般
9、径向基神经网络结构如图4所示。 图4 径向基神经网络结构2.2。2 RBF神经网络的学习算法径向基函数网络是由输入层,隐含层和输出层构成的三层前向网络(以单个输出神经元为例),隐含层采用径向基函数作为激活函数,该径向基函数一般为高斯函数,隐含层每个神经元与输入层相连的权值向量和输入矢量(表示第q个输入向量)之间的距离乘上阈值 ,作为本身的输入(图5).图5 径向基神经网络神经元的输入与输出由此可得隐含层的第个神经元的输入为:输出为:径向基函数的阈值可以调节函数的灵敏度,但实际工作中更常用另一参数C(称为扩展常数)。和C的关系有多种确定方法,在MATLAB神经网络工具箱中,和C的关系为,此时隐含
10、层神经元的输出变为:在MATLAB神经网络工具箱中,C值用参数spread表示,由此可见,spread值的大小实际上反映了输出对输入的响应宽度。spread值 越大,隐含层神经元对输入向量的响应范围将越大,且神经元间的平滑度也较好. 输出层的输入为各隐含层神经元输出的加权求和。由于激活函数为纯线性函数,因此输出为: RBF网络的训练过程分为两步:第一步为无教师式学习,确定训练输入层与隐含层间的权值;第二步为有教师式学习,确定训练隐含层与输出层间的权值。在训练以前需要提供输入向量、对应的目标向量和径向基函数的扩展常数C。训练的目的是求取两层的最终权值,和阈值,。 在RBF网络训练中,隐含层神经元
11、数量的确定是一个关键问题,简便的做法是使其与输入向量的个数相等(称为精确(exact) RBF).显然,在输入向量个数很多时,过多的隐含层单元数是难以让人接受的。其改进方法是从1个神经元开始训练,通过检查输出误差使网络自动增加神经元.每次循环使用,使网络产生的最大误差所对应的输入向量作为权值向量,产生一个新的隐含层神经元,然后检查新网络的误差,重复此过程直到达到误差要求或最大隐含层神经元数为止(称为近似(approximate) RBF).2。3 RBF神经网络与BP神经网络的比较在理论上,RBF网络和BP网络一样能以任意精度逼近任何非线性函数.但由于它们使用的激活函数不同,其逼近性能也不相同
12、。Poggio和Girosi已经证明,RBF网络是连续函数的最佳逼近,而BP网络不是。BP网络使用的Sigmoid函数具有全局特性,它在输入值的很大范围内每个节点都对输出值产生影响,并且激活函数在输入值的很大范围内相互重叠,因而相互影响,因此BP网络训练过程很长。此外,由于BP算法的固有特性,BP网络容易陷入局部极小的问题不可能从根本上避免,并且BP网络隐层节点数目的确定依赖于经验和试凑,很难得到最优网络。采用局部激活函数的RBF网络在很大程度上克服了上述缺点,RBF不仅有良好的泛化能力,而且对于每个输入值,只有很少几个节点具有非零激活值,因此只需很少部分节点及权值改变。学习速度可以比通常的B
13、P算法提高上千倍, 容易适应新数据,其隐含层节点的数目也在训练过程中确定,并且其收敛性也较BP网络易于保证,因此可以得到最优解。 2.4 BP神经网络与RBF神经网络的MATLAB实现2。4.1 BP神经网络的相关函数(1) newff: BP神经网络参数设置函数函数功能:构建一个BP神经网络函数形式:net=newff(P, T, S, TF, BTF, BLF, PF, IPF, OPF, DDF)P: 输入数据矩阵(训练集的输入向量作为列构成的矩阵)T: 输出数据矩阵(训练集的期望向量作为列构成的矩阵)S: 隐合层节点数TF: 节点传递函数,包括硬限幅传递函数hardlim,对称硬限幅传
14、递函数hardlims,线性传递函数purelin,正切S型传递函数tansig,对数S型传递函数logsig。BTF:训练函数,包括梯度下降BP算法训练函数traingd,动量反传的梯度下降BP算法训练函数traingdm.动态自适应学习率的梯度下降BP算法训练函数traingda,动量反传和动态自适应学习率的梯度下降BP算法训练函数traingdx、Levenberg_Marquardt的BP算法训练函数trainlm。BLF: 网络学习函数,包括Bp学习规则learngd、带动量项的BP学习规则learngdm.PF: 性能分析函数,包括均值绝对误差性能分析函数mae、均方差性能分析函数
15、mse.IPF: 输入处理函数。OPF: 输出处理函数。DDF: 验证数据划分函数。一般在使用过程中设置前面6个参数,后面4个参数采用系统默认参数。注意:Matlab R2011a之后的版本开始用新函数feedforwardnet替代函数newff, 其用法为 feedforwardnet(hiddenSizes,trainFcn)hiddenSizes:隐含层神经元个数,默认为10,若是多个隐含层,这是没有隐含层神经元个数组成的行向量;trainFcn:训练函数,默认为 trainlm)(2) train: BP神经网络训练函数函数功能:用训练数据训练BP神经网络。函数形式:net,tr=t
16、rain(NET, X, T, Pi, Ai)NET: 待训练网络X: 输入数据矩阵T: 输出数据矩阵Pi: 初始化输入层条件Ai:初始化输出层条件net: 训练好的网络tr: 训练过程记录一般在使用过程中设置前面3个参数,后面2个参数采用系统默认参数。(3) sim: BP神经网络预测函数函数功能:用训练好的BP神经网络预测函数输出。函数形式:y=sim(net, x)net: 训练好的网络。x: 输入数据。y: 网络预测数据。2.4。2 RBF神经网络的相关函数(1) newrb该函数可以用来设计一个近似(approximate)径向基网络。其调用格式为net,tr=newrb(X, T,
17、 GOAL, SPREAD, MN, DF)其中,X为Q组输入向量组成的R*Q维矩阵;T为Q组目标分类向量组成的S*Q维矩阵;GOAL为均方误差目标(Mean Squared Error Goal),默认为0。0;SPREAD为径向基函数的扩展速度,默认为1,MN为神经元的最大数目,默认为Q;DF为两次显示之间所添加的神经元数目,默认为25;net为返回值 ,一个RBF网络,tr为返回值,训练记录。 用newrb()创建RBF网络是一个不断尝试的过程,在创建过程中,需要不断增加中间层神经元和个数,直到网络的输出误差满足预先设定的值为止。(2) newrbe()该函数用于设计一个精确(exact
18、)径向基网络,其调用格式为net=newrbe(X, T, SOREAD)其中,X为Q组输入向量组成的RQ维矩阵;T为Q组目标分类向量组成的S*Q维矩阵;SPREAD为径向基函数的扩展速度,默认为1。 和newrb()不同,newrbe()能够基于设计向量快速,无误差地设计一个径向基网络。适合输入向量个数较少的情形。(3) radbas()该函数为径向基传递函数。其调用格式为A=radbas(N)Info=radbas(code)其中,N为输入(列)向量的SQ维矩阵;A为函数返回矩阵,与N一一对应,即N中的每个元素通过径向基函数得到A;info=radbas(code)表示根据code值的不同
19、返回有关函数的不同信息。包括derive-返回导函数的名称name-返回函数全称.output-返回输入范围.active -返回可用输入范围.2。5神经网络并行运算MATLAB并行运算工具箱可以将神经网络仿真计算并行化,从而减少运算时间.行化的实现是将整个训练数据集拆分到(多核)计算机不同的worker上,整个数据集的运。算结果为合并后的所有worker的计算值。进行神经网络的并行运算,需要先打开matlabpool,同时将神经网络train与sim函数中的useparallel参数设置为yes% 打开MATLAB workersmatlabpool open 检查worker数量pools
20、ize=matlabpool(size)% 设置train与sim函数中的参数“Useparallel”为“yes”.net2=train(net1,x,t,Useparallel,yes)y=sim(net2,x,Useparallel,yes)三、实验内容1. 建立BP神经网络拟合非线性函数 第一步 数据选择和归一化根据非线性函数方程随机得到该函数的2000组数据,将数据存贮在data.mat文件中(下载后拷贝到Matlab当前目录),其中input是函数输入数据,output是函数输出数据。从输入输出数据中随机选取1900中数据作为网络训练数据,100组作为网络测试数据,并对数据进行归一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 Matlab 神经网络 应用于 红外 光谱 汽油 辛烷值 预测
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。