《MATLAB神经网络工具箱.pptx》由会员分享,可在线阅读,更多相关《MATLAB神经网络工具箱.pptx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、神经元模型Neuron Model:多输入,单输出,带偏置输入:R维列向量权值:R维行向量阈值:标量求和单元传递函数输出第1页/共34页常用传递函数(激发函数)aWp-b1-1u阈值函数MATLAB函数:hardlimMATLAB函数:hardlims双极形式第2页/共34页线性函数uPurelin Transfer Function:anMATLAB函数:purelin第3页/共34页Sigmoid函数uSigmoid Function:u特性:值域a(0,1)非线性,单调性无限次可微|n|较小时可近似线性函数|n|较大时可近似阈值函数MATLAB函数:logsig(对数),tansig(正
2、切)对数Sigmoid函数正切Sigmoid函数第4页/共34页单层神经网络模型R维输入,S个神经元的单层神经网络模型第5页/共34页多层神经网络模型第6页/共34页 前馈神经网络u前馈神经网络(feed forward NN):各神经元接受前级输入,并输出到下一级,无反馈,可用一有向无环图表示。u前馈网络通常分为不同的层(layer),第i层的输入只与第i-1层的输出联结。u可见层:输入层(input layer)和输出层(output layer)u隐藏层(hidden layer):中间层第7页/共34页感知器(perceptron):u 单层前馈网络u 传递函数为阈值函数u主要功能是模
3、式分类第8页/共34页感知器的生成函数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第9页/共34页感知器的权值和阈值初始化p newp默认权值和阈值为零(零初始化函数initzero).net=newp(-2,+2;-2,+
4、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;net.b1=1第10页/共34页感知器学习u感知器学习算法权值增量:阈值增量:权值更新:阈值更新:u算法改进输入样本归一化第11页/共34页权值和阈值训练与学习函数trainnet=train(net,P,T)设计好的感知器并不能马
5、上投入使用.通过样本训练,确定感知器的权值和阈值.输入向量目标向量被训练网络=10;%预定的最大训练次数为10,感知器经过最多训练10次后停止,adaptnet=adapt(net,P,T)自适应训练函数第12页/共34页权值和阈值学习函数learnpdW=learnp(W,P,Z,N,A,T,E,D,gW,gA,LP,LS)dW:权值或阈值的增量矩阵W:权值矩阵或阈值向量P:输入向量T:目标向量E:误差向量其他可以忽略,设为 learnpn归一化学习函数第13页/共34页网络仿真函数sima=sim(net,P)输入向量网络输出分类结果显示绘图函数plotpvplotpv(P,T)plotp
6、cplotpc(W,b)画输入向量的图像画分类线第14页/共34页 根据给定的样本输入向量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);%返回划线的句柄=10;%设置训练最大次数net=train(net,P,T);%训练网络Q=0.6 0.9-0.1;-0.1-0.5 0.5;%已知待分类向量Y=sim(net,Q);%二元分类仿真结果
7、figure;%新建图形窗口plotpv(Q,Y);%画输入向量handle=plotpc(net.iw1,net.b1,handle)%画分类线第15页/共34页第16页/共34页BP网络l 多层前馈网络l 主要功能:函数逼近,模式识别,信息分类,数据压缩l 传递函数:隐层采用S形函数,输出层S形函数或线性函数第17页/共34页BP网络的生成newff函数newff用来生成一个BP网络net=newff(PR,S1 S2.SN,TF1 TF2.TFN,BTF,BLF,PF)PR:一个R2矩阵,由R维输入向量的每维最小值和最大值组成Si:第i层的神经元个数TFi:第i层的传递函数,默认为tan
8、sigBTF:训练函数,默认为trainlmBLF:学习函数,默认为learngdmPF:性能函数,默认为msenet=newff(0,10;-1,2,5,1,tansig,purelin,trainlm);%生成一个两层BP网络,隐层和输出层神经的个数为5和1,传递函数分别为tansig和purelin,训练函数为trainlm,其他默认第18页/共34页BP网络的初始化 newff 函数在建立网络对象的同时,自动调用初始化函数,根据缺省的参数对网络的连接权值和阈值.使用函数init可以对网络进行自定义的初始化.通过选择初始化函数,可对各层连接权值和阈值分别进行不同的初始化.第19页/共34
9、页BP网络的学习规则 权值和阈值的调节规则采用误差反向传播算法(back propagation).反向传播算法分二步进行,即正向传播和反向传播。1正向传播 输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。2反向传播 反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。BP算法实质是求取误差函数的最小值问题。这种算法采用非线性规划中的最速下降方法
10、,按误差函数的负梯度方向修改权系数。第20页/共34页BP网络的快速学习算法与选择学习算法适用问题类型收敛性能占用存储空间其他特点trainlm函数拟合收敛快,误差小大性能随网络规模增大而变差trainrp模式分类收敛最快较小性能随网络训练误差减小而变差trainscg函数拟合模式分类收敛较快性能稳定中等尤其适用于网络规模较大的情况trainbfg函数拟合收敛较快较大计算量岁网络规模的增大呈几何增长traingdx模式分类收敛较慢较小适用于提前停止的方法 MATLAB神经网络工具箱对常规BP算法进行改进,提供了一系列快速算法,以满足不同问题的需要第21页/共34页BP网络的训练 利用已知的”输
11、入目标”样本向量数据对网络进行训练,采用train 函数来完成.训练之前,对训练参数进行设置 训练参数 参数含义 默认值net.trainParam.epochs训练步数100net.trainParam.show显示训练结果的间隔步数25net.trainParam.goal训练目标误差0net.trainParam.time训练允许时间INfnet.trainParam.lr学习率0.01net=train(net,P,T)第22页/共34页BP网络的设计(1)网络层数 已经证明,单隐层的BP网络可以实现任意非线性映射.BP网络的隐层数一般不超过两层.输入层的节点数 输入层接收外部的输入数
12、据,节点数取决于输入向量的维数输出层的节点数 输出层的节点数取决于输出数据类型和该类型所需的数据大小.对于模式分类问题,节点数为第23页/共34页BP网络的设计(2)隐层的节点数 隐层的节点数与求解问题的要求,输入输出单元数多少有关.对于模式识别/分类的节点数可按下列公式设计传递函数 隐层传递函数采用S型函数,输出层采用S型函数或线性函数训练方法及其参数选择 针对不同应用,BP网络提供了多种训练学习方法.其中为隐层节点数,为输入节点数,为110之间的整数第24页/共34页BP网络设计实例采用动量梯度下降算法训练BP网络.训练样本%定义训练样本p=-1-1 3 1;-1 1 5-3;t=-1-1
13、 1 1;%创建一个新的BP网络net=newff(minmax(p),3 1,tansig,purelin,traingdm);%设置训练参数=1000;=0.001;=50;=0.05;=0.9;%动量因子,缺省为net=train(net,p,t);%训练网络A=sim(net,p)%网络仿真第25页/共34页目标线训练误差变化曲线训练误差变化曲线(每次不同)第26页/共34页实验2:BP网络用于曲线拟合要求设计一个简单的BP网络,实现对非线性函数的逼近。通过改变该函数的参数以及BP网络隐层神经元的数目,来观察训练时间以及训练误差的变化情况。第27页/共34页Step1:将要逼近的非线性
14、函数设为正弦函数k=1;p=-1:.05:1;t=sin(k*pi*p);plot(p,t,-)title(要逼近的非线性函数);xlabel(时间);ylabel(非线性函数);第28页/共34页Step 2:网络建立应用函数newff()建立BP网络结构,为二层BP网络。隐层神经元数目n可以改变,暂设为10,输出层有一个神经元。选择隐层和输出层神经元传递函数分别为tansig函数和purelin函数,网络训练算法采用trainlm第29页/共34页n=10;net=newff(minmax(p),n,1,tansig purelin,trainlm);%对于该初始网络,可以应用sim()函
15、数观察网络输出y1=sim(net,p);%同时绘制网络输出曲线,并与原函数相比较figure;plot(p,t,-,p,y1,-)title(未训练网络的输出结果);xlabel(时间);ylabel(仿真输出 原函数);因为使用newff()函数建立网络时,权值和阈值的初始化是随机的,所以网络输出的结果很差,根本达不到函数逼近的目的,并且每次运行结果也有所不同。第30页/共34页Step 3:网络训练应用函数train()对网络进行训练之前,要先设置训练参数。将训练时间设置为50,精度设置为,其余用缺省值。训练后得到的误差变化过程如图:=50;=0.01;net=train(net,p,t
16、);第31页/共34页Stet 4:网络测试对于训练好的网络进行仿真并绘制网络输出曲线,与原始非线性函数曲线以及未训练网络的输出结果曲线相比较y2=sim(net,p);figure;plot(p,t,-,p,y1,-,p,y2,-.)title(训练后网络的输出结果);xlabel(时间);ylabel(仿真输出);从图中可以看出,得到的曲线和原始的非线性函数曲线很接近。这说明经过训练后,BP网络对非线性函数的逼近效果相当好。第32页/共34页讨 论改变非线性函数的频率k值,和BP网络隐层神经元的数目,对于函数逼近的效果有一定的影响。网络非线性程度越高,对于BP网络的要求就越高,则相同的网络逼近效果要差一些;隐层神经元的数目对于网络逼近效果出有一定的影响,一般来说,隐层神经元数目越多,则BP网络逼近能力越强,而同时网络训练所用的时间相对来说也要长一些。第33页/共34页感谢您的观看!第34页/共34页