欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年神经网络MATLB .pdf

    • 资源ID:39901047       资源大小:755.57KB        全文页数:24页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年神经网络MATLB .pdf

    计算机 MATLAB 神经网络工具箱1 MATLAB 神经网络工具箱函数2 MATLAB 神经网络工具箱的图形用户界面3 基于Simulink 的神经网络模块4 神经网络在系统预测和故障诊断中的应用本章将介绍 MATLAB神经网络工具箱的应用。在MATLAB 神经网络工具箱中提供了丰富的演示实例,用MATLAB 语言构造了典型神经网络的激活函数,编写了各种网络设计与训练的子程序,网络的设计者可以根据自己的需要去调用工具箱中有关神经网络的设计训练程序,使自己能够从繁琐的编程中解脱出来。MATLAB 神经网络工具箱提供了许多进行神经网络设计和分析的工具函数,这些函数的 MATLAB 实现,使得设计者对所选定网络进行计算的过程,转变为对函数的调用和参数的选择,这给用户带来了极大的方便,即使不了解算法的本质,也可以直接应用功能丰富的函数来实现自己的目的。有关这些工具函数的使用可以通过help命令得到,本章将对这些函数的功能、调用格式,以及使用方法做详细的介绍。随着 MATLAB 软件的版本提高,其对应的神经网络工具箱的内容越来越丰富,它包括了很多现有的神经网络的新成果,涉及的网络模型有,感知机网络、线性神经网络、BP神经网络、径向基神经网络、自组织神经网络、学习向量量化神经网络、Elman神经网络、Hopfield 神经网络、自适应滤波和控制系统网络等。1.1 神经网络工具箱中的通用函数MATLAB 神经网络工具箱中提供的函数主要分为两大部分。一部分函数是通用的,这些函数几乎可以用于所有类型的神经网络,如神经网络的初始化函数init()、训练函数 train()和仿真函数 sim()等;另一部分函数则是特别针对某一种类型的神经网络的,如对感知机神经网络进行建立的函数simup()等。本功能。函数名功能init()初始化一个神经网络initlay()层-层结构神经网络的初始化函数initwb()神经网络某一层的权值和偏值初始化函数initzero()将权值设置为零的初始化函数train()神经网络训练函数adapt()神经网络自适应训练函数sim()神经网络仿真函数dotprod()权值点积函数normprod()规范点积权值函数netsum()输入求和函数netprod()网络输入的积函数concur()结构一致函数1.初始化神经网络函数init()名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 24 页 -利用初始化神经网络函数init()可以对一个已存在的神经网络进行初始化修正,该网络的权值和偏值是按照网络初始化函数来进行修正的。其调用格式为:net=init(NET)2.神经网络某一层的初始化函数initlay()初始化函数 initlay()特别适用于层-层结构神经网络的初始化,该网络的权值和偏值是按照网络初始化函数来进行修正的。其调用格式为:net=initlay(NET)3.神经网络某一层的权值和偏值初始化函数initwb()利用初始化函数 initwb()可以对一个已存在的神经网络的NET 某一层 i的权值和偏值进行初始化修正,该网络对每层的权值和偏值是按照设定的每层的初始化函数来进行修正的。其调用格式为:net=initwb(NET,i)4.神经网络训练函数train()利用 train()函数可以训练一个神经网络。网络训练函数是一种通用的学习函数,训练函数重复地把一组输入向量应用到一个网络上,每次都更新网络,直到达到了某种准则。停止准则可能是最大的学习步数、最小的误差梯度或者是误差目标等,调用格式为:net,tr,Y,E,Xf,Af=train(NET,X,T,Xi,Ai)5.网络自适应训练函数adapt()另一种通用的训练函数是自适应函数adapt()。自适应函数在每一个输入时间阶段更新网络时仿真网络,而这在进行下一个输入的仿真前完成,其调用格式为:net,Y,E,Xf,Af,tr=adapt(NET,X,T,Xi,Ai)6.网络仿真函数 sim()神经网络一旦训练完成,网络的权值和偏值就已经确定了。于是就可以使用它来解决实际问题了。利用sim()函数可以仿真一个神经网络的性能。其调用格式为:Y,Xf,Af,E,perf=sim(net,X,Xi,Ai,T)或Y,Xf,Af,E,perf=sim(net,Q Ts,Xi,Ai)7.权值点积函数 dotprod()网络输入向量与权值的点积可得到加权输入。函数dotprod()的调用格式为:Z=dotprod(W,X)8.网络输入的和函数netsum()网络输入的和函数是通过某一层的加权输入和偏值相加作为该层的输入。调用格式:Z=netprod(Z1,Z2,)9.网络输入的积函数netprod()网络输入的积函数是通过某一层的加权输入和偏值相乘作为该层的输入。调用格式:Z=netprod(Z1,Z2,)名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 24 页 -10.结构一致函数 concur()函数 concur()的作用在于使得本来不一致的权值向量和偏值向量的结构一致,以便于进行相加或相乘运算,其调用格式为:Z=concur(b,q)例 2-1 利用 netsum()函数和 netprod()函数,对两个加权输入向量Z1 和 Z2 进行相加和相乘。解 MATLAB 的程序如下。Z1=1 2 4;3 4 1;Z2=-1 2 2;-5-6 1;b=0;-1;q=3;Z=concur(b,q)X1=netsum(Z1,Z2),X2=netprod(Z1,Z2)%计算向量的和与积结果显示:Z=0 0 0-1-1-1 X1=0 4 6-2-2 2 X2=-1 4 8-15-24 1 1.2 感知机神经网络工具箱函数MATLAB 神经网络工具箱中提供了大量的与感知机相关的的函数。在MATLAB 工作空间的命令行键入“help percept”,便可得到与感知机(Perceptron)相关的函数,进一步利用help命令又能得到相关函数的详细介绍。表2-2列出了这些函数的名称和基本功能。1.2 感知机神经网络工具箱函数MATLAB 神经网络工具箱中提供了大量的与感知机相关的的函数。在MATLAB 工作空间的命令行键入“help percept”,便可得到与感知机(Perceptron)相关的函数,进一步利用help 命令又能得到相关函数的详细介绍。表2-2 列出了这些函数的名称和基本功能。函数名功能mae()平均绝对误差性能函数hardlim()硬限幅传输函数hardlims()对称硬限幅传输函数plotpv()在坐标图上绘出样本点plotpc()在已绘制的图上加分类线initp()对感知机神经网络进行初始化trainp()训练感知机神经网络的权值和偏值trainpn()训练标准化感知机的权值和偏值simup()对感知机神经网络进行仿真learnp()感知机的学习函数learnpn()标准化感知机的学习函数newp()生成一个感知机1平均绝对误差性能函数mae()名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 24 页 -感知机网络学习规则为调整网络的权值和偏值,使网络的平均绝对误差和性能最小。平均绝对误差性能函数的调用格式为:perf=mae(E,w,pp)2硬限幅传输函数hardlim()硬限幅传输函数 hardlim()通过计算网络的输入得到该层的输出。如果网络的输入达到门限,则硬限幅传输函数的输出为1,否则为 0。这表明神经元可用来作出判断或分类。其调用格式为:a=hardlim(N)或a=hardlim(Z,b)a=hardlim(P)返回的元素 a是 1 还是 0,取决于网络输入矩阵中的元素是大于等于0 还是小于0;函数 hardlim(P)包含传输函数的特性名并返回问题中的特性,如下的特性可从任何传输函数中获得:(1)delta与传输函数相关的delta函数;(2)init 传输函数的标准初始化函数;(3)name传输函数的全称;(4)output包含有传输函数最小、最大值的二元矢量。例利用以下命令可得图2-1。N=-5:0.1:5;a=hardlim(N);plot(N,a)3对称硬限幅传输函数hardlims()对称硬限幅传输函数hardlims()通过计算网络的输入得到该层的输出。如果网络的输入达到门限,则硬限幅传输函数的输出为1,否则为-1。例w=eye(3);b=-0.5*ones(3,1);X=1 0;0 1;1 1;a=hardlims(w*X,b)结果显示:a=1-1 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 24 页 -1 1 1 1 例 2-2 建立一个感知机网络,使其能够完成“或”的功能。解 为了完成“或”函数,建立一个两输入、单输出的一个单层感知机网络。设输入向量为:X=0 0 1 1;0 1 0 1,目标向量为:T=0 1 1 1。激活函数取硬限幅传输函数。根据感知机学习算法的计算步骤,利用MATLAB 的神经网络工具箱的有关函数编写的程序如下。ex2_2 结果显示:epoch=3 Wij=1.5028 1.7095 y=0 1 1 1 4.绘制样本点的函数plotpv()利用 plotpv()函数可在坐标图中绘出已知给出的样本点及其类别,不同的类别使用了不同的符号。其调用格式为:plotpv(X,T)如果 T 只含一元矢量,目标0 的输入矢量画为“o”;目标 1 的输入矢量画为“+”;如果 T 含二元矢量,则输入矢量对应如下:0 0用“o”;0 1用“+”;1 0用“*”;1 1X=-0.5,-0.5,0.3,-0.1,0.2,0.0,0.6,0.8;-0.5,0.5,-0.5,1.0,0.5,-0.9,0.8,-0.6;T=1 1 0 1 1 0 1 0;plotpv(X,T)对样本不同的类别使用了不同的符号,如图2-2 所示。5.在存在的图上画感知机的分类线函数plotpc()硬特性神经元将输入空间用一条直线(如果神经元有两个输入),或用一个平面(如果神经元有三个输入),或用一个超平面(如果神经元有三个以上输入)分成两个区域。plotpc(w,b)对含权矩阵 w 和偏差矢量 b 的硬特性神经元的两个名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 24 页 -或三个输入画一个分类线。这一函数返回分类线的句柄以便以后调用。plotpc(w,b,h)包含从前的一次调用中返回的句柄,它在画新分类线之前,删除旧线。6.感知机神经网络的初始化函数initp()利用 initp()函数可建立一个单层(一个输入层和一个输出层)感知机神经网络。其调用格式为:W,b=initp(R,S)或W,b=initp(X,T)例利用以下命令,可得图1-54。X=0 0 1 1;0 1 0 1;T=0 1 1 1;W,b=initp(X,T);plotpv(X,T);plotpc(W,b);使用 plotpc()函数可以在已绘制的图上加上感知机分类线(MATLAB6.1 及以下版本利用此命令不能产生分类线),如图 2-3 所示。由图可见经过初始化后的网络对输入样本还不能正确进行分类。7用感知机准则训练感知机的函数trainp()经过初始化建立的感知机,还必须经过训练才能够实际应用。通过训练以决定网络的权值和偏值。对于感知机,其训练过程为:对于给定的输入向量,计算习规则调整权值和偏值。重新计算网络在新的权值和偏值作用下的输出,重复上述的权值和偏值的调整过程,直到网络的输出与期望的目标向量相等或者训练次数达到预定的最大次数时才停止训练,之所以要设定最大训练次数,是因为对于有些问题,使用感知机神经网络时是不能解决的,这正是感知机的缺点。训练感知机神经网络trainp()函数的调用格式为:W,B,epochs,errors=trainp(w,b,X,T,tp)例 2-4 利用 trainp()函数训练一个感知机网络,并用训练后的网络对输入样本进行分类。解程序如下。ex2_4 例利用以上程序,可得如图2-4 所示的样本及分类线。用标准化感知机准则训练感知机的函数 trainpn()的用法同函数 trainp(),-0.500.511.5-0.500.511.5Vectors to be ClassifiedP(1)P(2)-0.500.511.5-0.500.511.5Vectors to be ClassifiedP(1)P(2)名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 24 页 -即使输入矢量的长度不同,使用标准化感知机准则也使得学习过程收敛很快。8.感知机神经网络的仿真函数simup()神经网络一旦训练完成,网络的权值和偏值就已经确定了。于是就可以使用它来解决实际问题了。感知机由一系列硬特性神经元组成,运行速度很快,对简单的分类很有用。利用simup()函数可以测试一个感知机神经网络的性能。其调用格式为:Y=simup(X,w,b)例 2-5 利用 trainp()函数训练一个感知机网络,使其能够完成“或”的功能。解 根据神经网络工具箱函数编写的程序如下。ex2_5 执行以上程序可得如下结果以及图2-5 至图 2-8。y=0 1 1 1 由以上结果和图 2-7 可知,训练后的网络已具有“或”的功能,且可对输入样本进行正确分类图 2-5 输入样本的分类图 2-6 输入样本加网络初始分类线-0.500.511.5-0.500.511.5Vectors to be ClassifiedP(1)P(2)-0.500.511.5-0.500.511.5Vectors to be ClassifiedP(1)P(2)名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 24 页 -例2-6 利用trainp()函数训练一个感知机网络,使其能够对三个输入进行分类。解 根据神经网络工具箱函数编写的程序如下。ex2_6 执行以上程序可得如下结果以及图2-9至图2-12。y=0 1 0 0 1 1 0 1-0.500.511.5-0.500.511.5Vectors to be ClassifiedP(1)P(2)00.20.40.60.811.21.41.61.8210-1610-1410-1210-1010-810-610-410-2100EpochSum-SquaredErrorSum-Squared Network Error for 2 Epochs图 2-7 输入样本加网络训练后的分类线图 2-8 误差曲线-101-101-1.5-1-0.500.511.5P(1)P(2)P(3)Vectors to be Classified-101-101-1.5-1-0.500.511.5P(1)Vectors to be ClassifiedP(2)P(3)图 2-9 输入样本的分类图 2-10 输入样本加网络初始分类线名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 24 页 -例2-7 利用trainp()函数训练一个感知机网络,使其能够将输入分为4类。解 根据神经网络工具箱函数编写的程序如下。ex2-7 执行以上程序可得如下结果以及图2-13和图2-14。y=1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 图2-13 输入样本加网络训练后的分类线图2-14 误差曲线9感知机学习函数 learnp()感知机神经网络学习规则为调整网络的权值和偏值使网络平均绝对误差性能最小,以便对网络输入矢量正确分类。感知机的学习规则只能训练单层网络,函数调用格式为:-101-101-1.5-1-0.500.511.5P(1)Vectors to be ClassifiedP(2)P(3)00.20.40.60.811.21.41.61.8210-2010-1510-1010-5100105EpochSum-SquaredErrorSum-Squared Network Error for 2 Epochs图 2-11 输入样本加网络训练后的分类线图 2-12 误差曲线-2.5-2-1.5-1-0.500.511.52-2-10123Vectors to be ClassifiedP(1)P(2)012345610-2010-1510-1010-5100105EpochSum-SquaredErrorSum-Squared Network Error for 6 Epochs名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 24 页 -dW,db=learnp(X,E)例2-8 利用learnp()函数训练建立一个感知机网络,使其能够完成“或”的功能。解 根据神经网络工具箱函数编写的程序如下。ex2_8 结果显示:epoch=5 W=1.3626 1.7590 y=0 1 1 1 10标准化感知机学习函数 learnpn()感知机学习规则在调整网络的权值和偏值时利用下式TTXEYTXw)(从上式可以看出,输入向量X越大,则权值的变化w就越大。当存在奇异样本(即该样本向量同其它所有的样本向量比较起来,特别得大或者特别得小)时,利用以上规则训练时间大为加长。因为其它样本则需花很多时间才能同奇异样本所对应的权值变化相匹配。为了消除学习训练时间对奇异样本的敏感性,提出了一种改进的感知机学习规则,也成为标准化感知机学习规则,标准化感知机学习规则试图使奇异样本和其它样本对权值的变化值的影响均衡,它可通过下式实现TTEXXYTXXw)(标准化感知机的学习函数为learnpn(),其调用格式为:dW,db=learnpn(X,E)相应于标准化感知机学习规则的训练函数为trainpn(),其调用格式为:W,B,epochs,errors=trainpn(w,b,X,T,tp)例2-9 利用trainpn()函数训练建立一个感知机网络,观察奇异输入样本对训练结果的影响。解 根据神经网络工具箱函数编写的程序如下。ex2_9 执行以上程序可得如下结果以及图2-15和图2-16。y=1 1 0 0 1 由图2-16可见利用函数 trainpn(),网络训练只需要 2步,如果利用函数 trainp(),网络训练需要经过 60多步。名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 24 页 -例 2-10 利用 trainpn()函数训练建立一个感知机网络,对“异或”问题进行分类。解 单层感知机不能解决像逻辑“异或”一类的线性不可分的输入向量的分类问题,解决这一问题的方案,是可以设计一个两层的网络,即含有输入层,隐含层和输出层的结构。设输入向量为:X=0 0 1 1;0 1 0 1,目标向量为:T=0 1 1 0。根据神经网络工具箱函数编写的程序ex2_10.m如下。%ex2_10.m 执行以上程序可得如下结果以及图2-17和图2-18。y=0 1 1 0 由图 2-18 可见网络训练只需要4 步。需要指出的是,由于隐含层的权值和偏值是随机给定的而且不可调整,故隐含层的输出也是随机的,这样网络有可能有解,也有可能无解,如果网络找不到解,可再次运行网络,以重新初始化隐含层的权值和偏值。如果采用单层网络,对以上问题永远也找不到正确的分类方案。图 2-15 输入样本加网络训练后的分类线图 2-16 误差曲线-100-80-60-40-20020-40-20020406080100120140Vectors to be ClassifiedP(1)P(2)00.20.40.60.811.21.41.61.8210-2010-1510-1010-5100105EpochSum-SquaredErrorSum-Squared Network Error for 2 Epochs-0.500.511.5-0.500.511.5Vectors to be ClassifiedP(1)P(2)00.511.522.533.5410-2010-1510-1010-5100105EpochSum-SquaredErrorSum-Squared Network Error for 4 Epochs名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 24 页 -11.建立感知机神经网络函数newp()利用 newp()函数可建立一个感知机神经网络。其调用格式为:net=newp(Xr,S,Tf,Lf)例建立一个两输入且样本点取值在-1,1之间,而网络只有单个神经元的感知机神经网络,可利用以下命令net=newp(-1 1;-1 1,1);使用 plotpc()函数可以在已绘制的图上加上感知机分类线。让它返回得到的分类线的句柄,以便在下一次再绘制分类线时能够将原来的删除。例handle=plotpc(net.iw1,net.b1);式中net.iw1 用来计算网络 net的权值,net.b1 用来计算网络 net的偏值。例 2-11 利用 newp()和 train()函数建立并训练一个感知机网络,使其同样能够完成“或”的功能。解 根据神经网络工具箱函数编写的程序如下。ex2_11 执行结果y=0 1 1 1 例 2-12 利用 train()函数训练一个感知机网络,并选择10个点对其进行测试。解 根据神经网络工具箱函数编写的程序ex2_12.m如下。ex2_12.m 运行以上命令可得如图2-20 和图 2-21 所示的训练过程误差曲线和测试结果。由图可见网络训练只需5 步,就能够将它们正确分类,这说明了设计的网络是正确的。00.511.522.533.544.5500.10.20.30.40.50.60.70.80.915 EpochsTraining-BlueGoal-BlackPerformance is 0,Goal is 0.01-1.5-1-0.500.511.5-1.2-1-0.8-0.6-0.4-0.200.20.40.60.8Vectors to be ClassifiedP(1)P(2)名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 24 页 -1.3 线性神经网络工具箱函数MATLAB 神经网络工具箱中提供了大量的与线性网络相关的的工具箱函数。在 MATLAB 工作空间的命令行键入“help linnet”,便可得到与线性网络相关的函数,进一步利用 help 命令又能得到相关函数的详细介绍。表2-3 列出了这些函数的名称和基本功能。1误差平方和性能函数sse()线性网络学习规则为调整网络的权值和偏值使网络误差平方和性能最小。误差平方和性能函数的调用格式为:perf=sse(E,w,pp)2.线性传输函数 purelin()神经元最简单的传输函数是简单地从神经元输入到输出的线性传输函数,输出仅仅被神经元所附加的偏差所修正。线性传输函数常用于Widriw-Hoff 或 BP准则来训练的神经网络中,该函数调用格式为:a=purelin(N)或a=purelin(Z,b)a=purelin(P)新建一个线性层newlin()设计一个线性层newlind()对线性神经网络进行在线自适应训练adaptwh()对线性神经网络进行离线训练trainwh()Widrow-hoff的学习函数learnwh()计算线性层的最大学习速率maxlinlr()对线性神经网络进行仿真simulin()设计一个线性神经网络solvelin()线性线性神经的初始化函数initlin()线性传输函数purelin()误差平方和性能函数sse()功能函数名表 2-3 线性网络的重要函数和功能名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 24 页 -函数 purelin(P)包含传输函数的特性名并返回问题中的特性,如下的特性可从任何传输函数中获得:(1)delta与传输函数相关的delta函数;(2)init 传输函数的标准初始化函数;(3)name传输函数的全称;(4)output包含有传输函数最小、最大值的二元矢量。例利用以下命令可得图2-22。n=-5:0.1:5;b=0;a=purelin(n,b);plot(n,a)3.线性神经网络的初始化函数initlin()利用 initlin()函数可建立一个单层(一个输入层和一个输出层)线性神经网络。其调用格式为:W,b=initlin(R,S)或W,b=initlin(X,T)例X=0 0 1 1;0 1 0 1;T=0 1 1 1;W,b=initlin(X,T);4.设计一个线性神经网络函数solvelin()同大多数其它神经网络不同的是,只要已知线性神经网络的输入向量和目标向量,就可以直接对其进行设计。使用函数solvelin()设计的线性神经网络,可以不经过训练,直接找出网络的权值和偏值,使得网络的误差的平方和最小。该函数的调用格式为:W,b=solvelin(X,T)5.线性神经网络的仿真函数simulin()利用函数 solvelin()建立的线性神经网络的权值和偏值就已经根据网络的输入向量和目标向量训练好了。simulin()函数可以测试一个线性神经网络的性能。其调用格式为:Y=simulin(X,w,b)例 2-13 利用 solvelin()函数建立一个线性网络,并对其进行测试。X=1 2 3;T=2.0 4.1 5.9;%给定训练集和目标值W,b=solvelin(X,T);y=simulin(X,W,b)结果显示:y=2.0500 4.0000 5.9500 6.计算线性层的最大学习速率函数maxlinlr()函数 maxlinlr()用于计算用 Widrow-Hoff 准则训练的线性网络的最大稳定学习速率。其调用格式为:lr=maxlinlr(X)或lr=maxlinlr(X,b)-5-4-3-2-1012345-5-4-3-2-1012345图 2-22 线性传输函数名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 24 页 -例利用以下命令可计算出用Widrow-Hoff 准则训练的线性神经元层所用的学习率上限。X=1 2-4 7;0.1 3 10 6;lr=maxlinlr(X)结果显示:lr=0.0069 7线性神经网络学习函数 learnwh()线性网络采用 Widrow-Hoff 学习规则,Widrow-Hoff 学习规则只能训练单层的线性神经网络,但这并不影响单层线性神经网络的应用,因为对每一个多层线性神经网络而言,都可以设计出一个性能完全相当的单层线性神经网络。当利用函数solvelin()设计的线性神经网络不能调整网络的权值和偏值使网络误差平方和性能最小时,可以应用函数 learnwh()和 函数trainwh()来调整网络的权值和偏值。函数learnwh()的调用格式为:dW,db=learnwh(X,E,lr)8线性神经网络的训练函数trainwh()函数trainwh()可利用 Widrow-Hoff 学习规则对线性层的权值进行训练,利用输入矢量,计算该层输出矢量,然后根据产生的误差矢量调整该层的权值和偏差。调用格式为:W,B,epochs,errors=trainwh(w,b,X,T,tp)9.线性神经网络自适应训练函数adaptwh()函数adaptwh()可以利用 Widrow-Hoff 学习规则对线性层的权值进行自适应调节,在每一步迭代过程中,修改自适应线性网络层的权值、偏差和输出矢量,从而学习并适应环境的变化。其调用格式为:Y,E,W,B=adaptwh(w,b,X,T,lr)10.设计一个线性层函数 newlind()利用函数 newlind()设计出的线性网络已经训练好,可直接使用,该函数调用格式为:net=newlind(X,T)例2-15 利用线性网络进行系统辨识。解MATLAB 程序如下:ex2_15 执行结果可得图 2-23和图2-24。图2-23 系统输入输出曲线图2-24 网络预测输出与系统输出和误差名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 24 页 -例2-15 利用线性网络进行系统辨识。解MATLAB 程序如下:ex2_15 执行结果可得图 2-23和图2-24。图2-23 系统输入输出曲线图2-24 网络预测输出与系统输出和误差1.4 BP神经网络工具箱函数MATLAB 神经网络工具箱中提供了大量的进行BP网络分析和设计的工具箱函数。在 MATLAB 工作空间的命令行键入“help backprop”,便可得到与 BP神经网络相关的函数,进一步利用help命令又能得到相关函数的详细介绍。表2-4列出了这些函数的名称和基本功能。表 2-4 BP 网络的重要函数和功能函数名功能tansig()双曲正切S 型(tan-sigmoid)传输函数purelin()线性(Purelin)传输函数logsig()对数 S型(log-sigmoid)传输函数deltatan()Tansig 神经元的delta 函数deltalin()Purelin 神经元的delta 函数deltalog()Logsig 神经元的delta 函数learnbp()BP 学习规则learnbpm()含动量规则的快速BP 学习规则learnlm()Levenberg-Marguardt学习规则initff()对 BP 神经网络进行初始化trainbp()利用 BP 算法训练前向网络trainbpx()利用快速BP 算法训练前向网络trainlm()利用 Levenberg-Marguardt规则训练前向网络名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 24 页 -1均方误差性能函数 mse()BP神经网络学习规则为调整网络的权值和偏值,使网络的均方误差和性能最小。均方误差性能函数的调用格式为:perf=mse(E,w,pp)2.双曲正切 S型(Sigmoid)传输函数 tansig()双曲正切 Sigmoid函数把神经元的输入范围从(-,+)映射到(-1,+1),它是可导函数,适用于 BP训练的神经元,函数调用格式为:a=tansig(N)或a=tansig(Z,b)tansig(P)函数tansig(P)包含传输函数的特性名并返回问题中的特性,如下的特性可从任何传输函数中获得:(1)delta与传输函数相关的 delta函数;(2)init 传输函数的标准初始化函数;(3)name传输函数的全称;(4)output包含有传输函数最小、最大值的二元矢量。函数名功能simuff()BP 神经网络进行仿真newff()生成一个前馈BP 网络newfftd()生成一个前馈输入延时BP 网络newcf()生成一个前向层叠BP 网络nwlog()对 Logsig 神经元产生Nguyen-Midrow随机数sse()误差平方和性能函数sumsqr()计算误差平方和errsurf()计算误差曲面plotes()绘制误差曲面图plotep()在误差曲面图上绘制权值和偏值的位置ploterr()绘制误差平方和对训练次数的曲线barerr()绘制误差的直方图名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 24 页 -例利用以下命令可得图 2-31。n=-5:0.1:5;b=0;a=tansig(n,b);plot(n,a)如果BP网络的最后一层是 Sigmoid型神经元,那么整个网络的输出就被限制在一个较小的范围内;如果 BP网络的最后一层是 Purelin型线性神经元,那么整个网络的输出可以取任意值。3.正切S型(Tansig)神经元的求导函数 dtansig()函数dtansig()为Tansig神经元的导函数,它根据Y=1-X2的函数来计算,其调用格式为:dY_dX=dtansig(X,Y)Logsig和Purelin神经元的导函数 dlogsig()和dpurelin()的用法同上。但它们分别根据 Y=X*(1-X)和Y=1的函数来计算。例利用以下MATLAB 命令X=0.1 0.8 0.7;Y=tansig(x),dY_dX=dtansig(X,Y)结果显示:Y=0.0997 0.6640 0.6044 dY_dX=0.9901 0.5591 0.63474.正切S型(Tansig)神经元的求导函数 deltatan()反向传播误差算法(BP)是利用误差平方和对网络各层输入的导数来调整其权值和偏值的,从而降低误差平方和。从网络误差矢量中可推导出输出层的误差导数或(delta)矢量,隐含层的矢量的导出,这种矢量的反向传播正是 BP算法的由来。函数调用格式为:dy=deltatan(y)或dy=deltatan(y,e)dy=deltatan(y,d2,w2)Logsig和Purelin神经元的 delta函数deltalog()和deltalin()的用法同上。5.BP学习规则函数 learnbp()BP神经网络学习规则为调整网络的权值和偏值使网络误差的平方和为最小。这是通过在最速下降方向上不断地调整网络的权值和偏值来达到的。计算网络输出层的误差矢量导数,然后反馈回网络,直到每个隐含层的误差导数(称为delta)都达到。这可由函数 deltatan()、deltalin()和deltalog()计算。根据 BP准则,每一层的权值矩阵 wxw(i,j)=(i)x(j)。函数调用格式为dW,dB=learnbp(X,delta,lr)6.含动量规则的 BP学习规则函数 learnbpm()为了提高 BP算法的学习速度并增加算法的可靠性,在BP学习算法中引进了动量因子,它使权值的变化等于上次权值的变化与这次由BP准则引起的变化之和,这样可将动量加到 BP学习中,上一次权值变化的影响可由动量常数来调整。动量法降低了网络对于误差曲面局部细节的敏感性,有效地抑制网络陷于局部极小。而自适应学习率,也可以使训练时间大大缩短。当动量常数为 0时,说明权值的变化仅由梯度决定。当动量常数为 0时,说明名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 24 页 -权值的变化仅由梯度决定。当动量常数为1时,说明新的权值变化仅等于上次权值w(i,j)=Dw(i,j)+(1-D)(i)x(j)。函数调用格式为dW,dB=learnbpm(X,delta,lr,D,dw,db)7.Levenberg-Marguardt学习规则函数 learnlm()函数 learnlm()采用了 Levenberg-Marguardt优化方法,从而使得学习时间更短。其缺点是,对于复杂的问题,该方法需要很大的存储空间。LM方法更新参数(如权值和偏值)的数学表达式为w=(JTJ+I)-1JTe。随着的增大,LM 方法中的JTJ 项变得无关紧要,因而学习过程由-1JTe决定,即梯度下降法。函数调用格式为dW,dB=learnlm(X,delta)例2-18 利用三层 BP神经网络训练加权系数。两组3输入为 1 2;-1 1;1 3,希望的输出均为 1,1。隐含层的激活函数取 S型传输函数,输出层的激活函数取线性传输函数。解根据BP学习算法的计算步骤,利用MATLAB 的神经网络工具箱的有关函数编写的程序如下。ex2_18 结果显示:Ok=1.0068 0.9971 0.9758 1.0178 8.BP神经网络初始化函数 initff()在设计一个 BP网络时,只要已知网络的输入向量的取值范围、各层的神经元个数及传输函数,就可以利用初始化函数initff()对BP网络进行初始化。函数 initff()可最多对三层神经网络进行初始化,而得到每层的权值和偏值。其调用格式为:W,b=initff(Xr,S,Tf)或W1,b1,W2,b2=initff(Xr,S1,Tf1,S2,Tf2)W1,b1,W2,b2,W3,b3=initff(Xr,S1,Tf1,S2,Tf2,S3,Tf3)例如设计一个隐含层有8个神经元,传输函数为tansig,输出层有 5个神经元,传输函数为 purelin的两层 BP神经网络可利用以下命令。X=sin(0:100);c

    注意事项

    本文(2022年神经网络MATLB .pdf)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开