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

    MATLAB神经网络工具箱(函数拟合)ppt课件.ppt

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

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

    MATLAB神经网络工具箱(函数拟合)ppt课件.ppt

    MATLAB神经网络工具箱介绍及实验要求神经元模型Neuron Model: 多输入,单输出,带偏置输入:R维列向量1,TRppp权值:R维行向量111,Rwwwb阈值:标量求和单元11Riiinp wb传递函数f输出()afbwp常用传递函数aWp-b1-1u阈值函数1(0)( )hardlim( )0(0)naf nnnMATLAB函数: hardlim1(0)( )hardlim ( )1(0)naf ns nnMATLAB函数: hardlims线性函数uPurelin Transfer Function :( )af nnanMATLAB函数: purelinSigmoid函数uSigmoid Function :u特性:值域a(0,1)非线性,单调性无限次可微|n|较小时可近似线性函数|n|较大时可近似阈值函数1( )1naf neMATLAB函数: logsig(对数), tansig(正切)对数Sigmoid函数正切Sigmoid函数tanh( )nnnneeanee单层神经网络模型R维输入, S个神经元的单层神经网络模型111212121211RRSSSRwwwwwwwwwW12Sbbbb()faWp+b多层神经网络模型 前馈神经网络u前馈神经网络(feed forward NN):各神经元接受前级输入,并输出到下一级,无反馈,可用一有向无环图表示。u前馈网络通常分为不同的层(layer),第i层的输入只与第i-1层的输出联结。u可见层:输入层(input layer)和输出层(output layer)u隐藏层(hidden layer) :中间层感知器(perceptron):u 单层前馈网络u 传递函数为阈值函数u主要功能是模式分类感知器的生成函数newp用来生成一个感知器神经网络net = newp( pr, s, tf, lf ) net: 函数返回参数,表示生成的感知器网络 pr: 一个R2矩阵, 由R维输入向量的每维最小值和最 大值组成 s: 神经元的个数 tf: 感知器的传递函数, 默认为hardlim, 可选hardlims lf: 感知器的学习函数,默认为learnp, 可选learnpnnet = newp(-2,+2;-2,+2,2) %生成一个二维输入,两个神经元的感知器newp感知器的权值和阈值初始化p newp默认权值和阈值为零(零初始化函数initzero).net = newp(-2,+2;-2,+2,2); W=net.IW1,1 %显示网络的权值b=net.b1 %显示网络的阈值W =0 00 0b =0 0 p 改变默认初始化函数为随机函数randsnet.inputweights1,1.initFcn = rands;net.biases1.initFcn = rands;net =init(net); %重新初始化p 直接初始化定义权值和阈值net.IW1,1=1 2;3 4; net.b1=1感知器学习u感知器学习算法权值增量: ()TTWta pep阈值增量: btae 权值更新: newoldWWW阈值更新: newoldbbbu算法改进()TTta pepWpp输入样本归一化权值和阈值训练与学习函数trainnet=train(net, P, T) 设计好的感知器并不能马上投入使用. 通过样本训练, 确定感知器的权值和阈值.输入向量目标向量被训练网络net.trainParam.epochs=10 ; %预定的最大训练次数为10, 感知器经过最多训练10次后停止,adaptnet=adapt(net, P, T)自适应训练函数权值和阈值学习函数learnpdW=learnp(W,P,Z,N,A,T,E,D,gW,gA,LP,LS)dW:权值或阈值的增量矩阵W:权值矩阵或阈值向量P:输入向量T:目标向量E:误差向量其他可以忽略,设为 learnpn归一化学习函数网络仿真函数sima = sim(net, P)输入向量网络输出分类结果显示绘图函数plotpvplotpv(P,T)plotpcplotpc(W,b)画输入向量的图像画分类线 根据给定的样本输入向量P和目标向量T, 以及需分类的向量组Q, 创建一个感知器, 对其进行分类. 例: 创建一个感知器P=-0.5 -0.6 0.7;0.8 0 0.1; %已知样本输入向量T=1 1 0; %已知样本目标向量net=newp(-1 1;-1 1,1); %创建感知器handle=plotpc(net.iw1,net.b1); %返回划分类线的句柄net.trainParam.epochs=10; % 设置训练最大次数net=train(net,P,T); %训练网络Q=0.6 0.9 -0.1;-0.1 -0.5 0.5; %已知待分类向量Y=sim(net,Q); %二元分类仿真结果 figure; %新建图形窗口plotpv(Q,Y); %画输入向量handle=plotpc(net.iw1,net.b1,handle) %画分类线实验一 利用感知器进行分类(1) 一个经过训练的感知器对5个输入向量进行分类(2类)。 Step 1 两个长度为5的向量构成输入样本矩阵P,行向量T为目标向量。利用PLOTPV画出这个向量的图像。例如:P = -0.5 -0.5 +0.3 -0.1 -4; -0.5 +0.5 -0.5 +1.0 5;T = 1 1 0 0 1;plotpv(P,T); % plotpv函数利用感知器的输入向量和目标向量来画输入向量的图像Step 2建立神经网络 画输入向量的图像 MATLAB提供函数newp来创建一个指定的感知器。第一个参数指定了期望的两个输入向量的取值范围,第二个参数指定了只有一个神经元。net = newp(-40 1;-1 50,1);注意:这个神经元的传递函数是hardlim函数,也就是阶跃函数。取0,1两个值。Hardlims函数,取-1,1两个值。实验一 利用感知器进行分类(2) 添加神经元的初始化值到分类图添加神经元的初始化值到分类图 Step3 初始化的权值被设为0,因此任何输入都会给出同样的输出,并且分类线不会出现在这个图中,不用害怕,我们会继续训练这个神经网。hold on linehandle = plotpc(net.IW1,net.b1); /plotpc函数用来画分类线训练神经网络训练神经网络 Step4 Matlab提供了adapt函数来训练感知器,adapt函数返回一个新的能更好的执行分类、网络的输出、和误差的神经网络,这个划线函数允许网络从3个角度去调整,画分类线一直到误差为0为止。E = 1; /E为误差net.adaptParam.passes = 3; /决定在训练过程中重复次数while (sse(E) /sse函数是用来判定误差E的函数net,Y,E = adapt(net,P,T); /利用输入样本调节神经网netlinehandle = plotpc(net.IW1,net.b1,linehandle);/ /画出调整以后的分类线drawnow; /延迟一段时间end实验一 利用感知器进行分类(3) Step 5 模拟模拟sim sim函数能被用来划分任何别的输入向量,例如划分一个输入向量0.7; 1.2.这个新点的图像为红色,他将用来显示这个感知器如何把这个新点从最初的训练集取分开来。p = 0.7; 1.2;a = sim(net,p); /利用模拟函数sim计算出新输入p的神经网络的输出plotpv(p,a);circle = findobj(gca,type, line);set(circle,Color,red);打开hold,以便于以前的图像不被删除。增加训练装置和分类线在图中。hold on; plotpv(P,T); plotpc(net.IW1,net.b1); hold off; axis(-2 2 -2 2); 这个感知器正确的区分了我们的新点(用红色表示)作为”zero”类(用圆圈表示),而不是”one”类(用+号表示),尽管需要比较长的训练时间,这个感知器仍然适当的进行了学习。最后放大感兴趣的区域。BP网络l 多层前馈网络l 主要功能: 函数逼近, 模式识别, 信息分类l 传递函数:隐层采用S形函数,输出层S形函数或线性函数BP网络的生成newff函数newff用来生成一个BP网络net=newff(PR,S1 S2.SN,TF1 TF2. TFN,BTF,BLF,PF)PR: 一个R2矩阵, 由R维输入向量的每维最小值和最大值组成Si: 第i层的神经元个数TFi: 第i层的传递函数, 默认为tansigBTF: 训练函数, 默认为trainlmBLF: 学习函数, 默认为learngdmPF: 性能函数, 默认为msenet=newff(0,10;-1,2,5,1,tansig,purelin,trainlm); %生成一个两层BP网络,隐层和输出层神经的个数为5和1, 传递函数分别为tansig和purelin, 训练函数为trainlm, 其他默认BP网络的初始化 newff 函数在建立网络对象的同时, 自动调用初始化函数, 根据缺省的参数设置网络的连接权值和阈值. 使用函数init可以对网络进行自定义的初始化. 通过选择初始化函数, 可对各层连接权值和阈值分别进行不同的初始化.BP网络的学习规则 权值和阈值的调节规则采用误差反向传播算法(back propagation). 反向传播算法分二步进行,即正向传播和反向传播。 1正向传播 输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。2反向传播 反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。BP算法实质是求取误差函数的最小值问题。这种算法采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权系数。BP网络的快速学习算法与选择学习算法适用问题类型收敛性能占用存储空间其他特点trainlm函数拟合收敛快,误差小大性能随网络规模增大而变差trainrp模式分类收敛最快较小性能随网络训练误差减小而变差trainscg函数拟合模式分类收敛较快性能稳定中等尤其适用于网络规模较大的情况trainbfg函数拟合收敛较快较大计算量岁网络规模的增大呈几何增长traingdx模式分类收敛较慢较小适用于提前停止的方法 MATLAB神经网络工具箱对常规BP算法进行改进,提供了一系列快速算法,以满足不同问题的需要BP网络的训练 利用已知的”输入目标”样本向量数据对网络进行训练,采用train 函数来完成. 训练之前, 对训练参数进行设置 训练参数 参数含义 默认值net.trainParam.epochs训练步数100net.trainParam.show显示训练结果的间隔步数25net.trainParam.goal训练目标误差0net.trainParam.time训练允许时间INfnet.trainParam.lr学习率0.01net = train(net, P, T)BP网络的设计(1)网络层数 已经证明,单隐层的BP网络可以实现任意非线性映射. BP网络的隐层数一般不超过两层.输入层的节点数 输入层接收外部的输入数据, 节点数取决于输入向量的维数输出层的节点数 输出层的节点数取决于输出数据类型和该类型所需的数据大小.对于模式分类问题,节点数为2log mBP网络的设计(2)隐层的节点数 隐层的节点数与求解问题的要求,输入输出单元数多少有关. 对于模式识别/分类的节点数可按下列公式设计传递函数 隐层传递函数采用S型函数, 输出层采用S型函数或线性函数训练方法及其参数选择 针对不同应用, BP网络提供了多种训练学习方法.0innnan其中为隐层节点数,in为输入节点数,a为110之间的整数BP网络设计实例采用动量梯度下降算法训练BP网络. 训练样本%定义训练样本p=-1 -1 3 1;-1 1 5 -3; t=-1 -1 1 1;%创建一个新的BP网络net=newff(minmax(p),3 1,tansig,purelin,traingdm);%设置训练参数net.trainParam.epochs=1000;net.trainParam.goal=0.001;net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;%动量因子,缺省为0.9net=train(net,p,t); % 训练网络A=sim(net,p) %网络仿真目标线训练误差变化曲线训练误差变化曲线(每次不同)实验实验2: BP网络用于曲线拟合网络用于曲线拟合要求设计一个简单的BP网络,实现对非线性函数的逼近。通过改变该函数的参数以及BP网络隐层神经元的数目,来观察训练时间以及训练误差的变化情况。Step1: 将要逼近的非线性函数设为正弦函数k = 1; p = -1:.05:1;t = sin(k*pi*p);plot(p,t,-)title(要逼近的非线性函数);xlabel(时间);ylabel(非线性函数);Step 2: 网络建立应用函数newff()建立BP网络结构,为二层BP网络。隐层神经元数目n可以改变,暂设为10,输出层有一个神经元。选择隐层和输出层神经元传递函数分别为tansig函数和purelin函数,网络训练算法采用trainlmn = 10;net = newff(minmax(p), n,1, tansig purelin, trainlm);% 对于该初始网络,可以应用sim()函数观察网络输出y1 = sim(net,p);% 同时绘制网络输出曲线,并与原函数相比较figure;plot(p,t,-,p,y1,-)title(未训练网络的输出结果);xlabel(时间);ylabel(仿真输出 原函数 );因为使用newff()函数建立网络时,权值和阈值的初始化是随机的,所以网络输出的结果很差,根本达不到函数逼近的目的,并且每次运行结果也有所不同。Step 3: 网络训练应用函数train()对网络进行训练之前,要先设置训练参数。将训练时间设置为50,精度设置为0.01,其余用缺省值。训练后得到的误差变化过程如图:net.trainParam.epochs = 50;net.trainParam.goal = 0.01;net = train(net,p,t);Stet 4: 网络测试对于训练好的网络进行仿真并绘制网络输出曲线,与原始非线性函数曲线以及未训练网络的输出结果曲线相比较y2 = sim(net,p);figure;plot(p,t,-,p,y1,-,p,y2,-.)title(训练后网络的输出结果);xlabel(时间);ylabel(仿真输出);从图中可以看出,得到的曲线和原始的非线性函数曲线很接近。这说明经过训练后,BP网络对非线性函数的逼近效果相当好。讨讨 论论改变非线性函数的频率k值,和BP网络隐层神经元的数目,对于函数逼近的效果有一定的影响。网络非线性程度越高,对于BP网络的要求就越高,则相同的网络逼近效果要差一些;隐层神经元的数目对于网络逼近效果出有一定的影响,一般来说,隐层神经元数目越多,则BP网络逼近能力越强,而同时网络训练所用的时间相对来说也要长一些。关于这些,大家可以自己通过参数调整试一试,并在实验报告中有所反映。思考题设计一BP网络逼近函数22xyze实验要求 完成实验一和实验二 做思考题 本次实验不用上交,大家自己练习,下机结束时不管做得如何,把所有m文件压缩用名字学号命名上传至指定位置ftp:/192.168.113.150/上传目录上传目录/智能系统导论上传智能系统导论上传参考书Matlab神经网络与应用,董长虹编著,国防工业出版社,2005年1月印刷

    注意事项

    本文(MATLAB神经网络工具箱(函数拟合)ppt课件.ppt)为本站会员(飞****2)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开