,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,模式识别讲义,第,5,章 人工神经网络,黄可坤,嘉应学院,matlab,神经网络工具箱,模式识别讲义第5章 人工神经网络黄可坤 matlab,主要内容,0,引例,:,神经网络函数拟合,(,预测,),1 matlab,神经网络工具箱,2,人工神经网络,(ANN),简介,3,前馈神经网络,(BP,网络,),4,实例:多元神经网络预测,5,实验:神经网络分类,主要内容0 引例:神经网络函数拟合(预测),0,引例,:,神经网络函数拟合,(,预测,),试构造合适的神经网络模型拟合如下数据点,并预测,x=10,的值,:,x,0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,y,0,0.43,0.69,0.74,0.61,0.36,0.08,-0.17,-0.34,-0.4,x,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,y,-0.35,-0.23,-0.08,0.06,0.16,0.21,0.2,0.15,0.07,-0.01,0 引例:神经网络函数拟合(预测)试构造合适的神经网络模型拟,matlab,代码,x=0:0.5:9.5;,y=,0,0.43,0.69,0.74,0.61,0.36,0.08,-0.17,-0.34,-0.4,-0.35,-0.23,-0.08,0.06,0.16,0.21,0.2,0.15,0.07,-0.01,;,net=newff(0,9.5,5,1);,net.trainParam.epochs=100;,net.trainParam.goad=0.000001;,net=train(net,x,y);,x1=0:0.1:10;,y1=sim(net,x1);,figure;plot(x,y,.);hold on;plot(x1,y1,r);,matlab代码x=0:0.5:9.5;,f,f,f,f,f,f,x,y,w,11,w,12,w,13,w,14,w,15,w,21,w,22,w,23,w,24,w,25,b,1,b,2,b,3,b,4,b,5,b,网络结构,y=f,(,w,21,*f,(,w,11,*x+b,1,),+w,25,*f,(,w,15,*x+b,5,),+b,),w1=net.IW1;,w2=net.LW2;,b1=net.b1;,b2=net.b2;,a=tansig(w1*x0+b1);,y=tansig(w2*a+b2),Sigmoid,函数,ffffffxyw11w12w13w14w15w,人工神经网络_matlab工具箱课件,人工神经网络_matlab工具箱课件,1 matlab,神经网络工具箱,1 matlab神经网络工具箱,1.1,网络数据对象的建立,net=newff(xm,xM,h1,hk,f1,fk);,xm,xM,分别为列向量,(,行数为变量个数,),,分别存储每个变量的最小值和最大值。,h1,hk,表示网络各层的节点数,一共有,k,层,.,f1,fk,表示各层使用的传输函数,默认为,tansig,,即,Sigmoid,函数。还可使用函数,purelin,,即,f(x)=x,。,其它可看,matlab,帮助,:help newff,1.1 网络数据对象的建立net=newff(xm,xM,1.2,网络数据对象,net,的属性,net.IW,:来自输入层的加权矩阵。,BP,网络只用,net.IW1,表示各个输入变量对第,1,层各节点的加权矩阵。,net.LW,:来自中间层的加权向量。,BP,网络用,net.IW2,1,表示第,1,隐层个节点向下一层个节点的加权矩阵;,net.IW3,2,表示第,2,隐层向下一层的加权矩阵,net.b,:各层的偏移。,Net.b1,表示第,1,隐层个节点的偏移,1.2 网络数据对象net的属性net.IW:来自输入层的加,net.trainParam.epochs,:最大训练步数。不过当误差准则满足时,即使没达到此步数也停止训练。缺省为,100,。,net.trainParam.goad,:网络误差准则,当误差小于此准则时停止训练,缺省为,0,。,net.trainFcn,:训练算法。缺省为,trainlm,,即,Levenberg-Marquardt,算法。还可使用,traingdx,,即带动量的梯度下降算法;,traincgf,,即共轭梯度法。,其它可看,matlab,帮助,:h,elp-contents-Neural Network Toobox-Network Object Reference;,help(net.trainFcn),net.trainParam.epochs:最大训练步数。不,help newff,Caution:trainlm is the default training function because it is very fast,but it requires a lot of memory to run.If you get an out-of-memory error when training try doing one of these:,Slow trainlm training,but reduce memory requirements by setting net.trainParam.mem_reduc to 2 or more.(See help trainlm.),Use trainbfg,which is slower but more memory-efficient than trainlm.,Use trainrp,which is slower but more memory-efficient than trainbfg.,help newff,1.3,网络的训练,net,tr,Y1,E=train(net,X,Y);,net,是函数,newff,建立的数据对象。,X,为,n*m,的矩阵,n,为输入变量个数,m,为样本数,(,即把每个样本是一个列向量,),。,Y,为,k*m,的矩阵,k,为数出变量个数。,tr,返回训练的跟踪信息,tr.epochs,为训练步数,tr.perf,为各步目标函数的值。,Y1,和,E,返回网络最终的输出和误差。,训练结束后可以用,plotperf(tr),来绘制目标值随着训练步数变化的曲线。,1.3 网络的训练net,tr,Y1,E=train(n,1.4,网络的泛化,(,预测,),Y=sim(net,X);,net,是函数,newff,建立的数据对象。,X,为,n*m,的矩阵,n,为输入变量个数,m,为样本数,(,即把每个样本是一个行向量,),。,Y,为,k*m,的矩阵,k,为数出变量个数。,1.4 网络的泛化(预测)Y=sim(net,X);,2,人工神经网络,(ANN),简介,2 人工神经网络(ANN)简介,2.1,人工神经网络,(ANN),的研究内容,(,1,),理论研究,:,ANN,模型及其学习算法,试图从数学上描述,ANN,的动力学过程,建立相应的,ANN,模型,在该模型的基础上,对于给定的学习样本,找出一种能以较快的速度和较高的精度调整神经元间互连权值,使系统达到稳定状态,满足学习要求的算法。,(,2,),实现技术的研究,:探讨利用电子、光学、生物等技术实现神经计算机的途径。,(,3,),应用的研究,:探讨如何应用,ANN,解决实际问题,如模式识别、故障检测、智能机器人等。,2.1 人工神经网络(ANN)的研究内容(1)理论研究:AN,2.2 ANN,研究的目的和意义,(1),通过揭示物理平面与认知平面之间的映射,了解它们相互联系和相互作用的机理,从而揭示思维的本质,探索智能的本源。,(2),争取构造出尽可能与人脑具有相似功能的计算机,即,ANN,计算机。,(3),研究仿照脑神经系统的人工神经网络,将在模式识别、组合优化和决策判断等方面取得传统计算机所难以达到的效果。,2.2 ANN研究的目的和意义(1)通过揭示物理平面与认知平,2.3,人工神经网络,研究的局限性,(,1,),ANN,研究受到脑科学研究成果的限制。,(,2,),ANN,缺少一个完整、成熟的理论体系。,(,3,),ANN,研究带有浓厚的策略和经验色彩。,(,4,),ANN,与传统技术的接口不成熟。,一般而言,ANN,与经典计算方法相比,并非优越,只有当常规方法解决不了或效果不佳时,ANN,方法才能显示出其优越性。尤其对问题的机理不甚了解或不能用数学模型表示的系统,如故障诊断、特征提取和预测等问题,ANN,往往是最有利的工具。另一方面,ANN,对处理大量原始数据而不能用规则或公式描述的问题,表现出极大的灵活性和自适应性。,2.3 人工神经网络研究的局限性(1)ANN研究受到脑科学研,3,前馈神经网络,(BP,网络,),3 前馈神经网络(BP网络),3.1,前馈神经网络,(BP,网络,),的特点,非线性映照能力,:神经网络能以任意精度逼近任何非线性连续函数。在建模过程中的许多问题正是具有高度的非线性。,并行分布处理方式,:在神经网络中信息是分布储存和并行处理的,这使它具有很强的容错性和很快的处理速度。,3.1 前馈神经网络(BP网络)的特点非线性映照能力:神经网,自学习和自适应能力,:神经网络在训练时,能从输入、输出的数据中提取出规律性的知识,记忆于网络的权值中,并具有泛化能力,即将这组权值应用于一般情形的能力。神经网络的学习也可以在线进行。,数据融合的能力,:神经网络可以同时处理定量信息和定性信息,因此它可以利用传统的工程技术(数值运算)和人工智能技术(符号处理)。,多变量系统,:神经网络的输入和输出变量的数目是任意的,对单变量系统与多变量系统提供了一种通用的描述方式,不必考虑各子系统间的解耦问题。,自学习和自适应能力:神经网络在训练时,能从输入、输出的数据中,3.2,BP,网络,输入,/,输出变量的确定,BP,网络的输入变量即为待分析系统的内生变量(影响因子或自变量)数,一般根据专业知识确定。,若输入变量较多,一般可通过主成份分析方法压减输入变量,,也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减输入变量。,输出变量即为系统待分析的外生变量(系统性能指标或因变量),可以是一个,也可以是多个。一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效果会更好,训练也更方便。,3.2 BP网络输入/输出变量的确定BP网络的输入变量即为待,3.3,BP,网络,数据的预处理,由于,BP,神经网络的隐层一般采用,Sigmoid,转换函数,为提高训练速度和灵敏性以及有效避开,Sigmoid,函数的饱和区,(,即输入值若大于,1,,则取为,1),,,一般要求输入数据的值在,01,之间,(,每个数都除于最大值,),。,如果输出层节点也采用,Sigmoid,转换函数,输出变量也必须作相应的预处理,为保证建立的模型具有一定的外推能力,最好使,数据预处理后的输出变量的值在,0.20.8,之间,。,预处理的数据训练完成后,网络输出的结果要进行,反变换,才能得到实际值。,3.3 BP网络数据的预处理 由于BP神经网络的隐层一般采用,3.4 BP,网络隐层数的确定,一般认为,,增加隐层数可以降低网络误差,(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现,“,过拟合,”,的倾向。,Hornik,等早已证明:,若输入层和输出层采用线性转换函数,隐层采用,Sigmoid,转换函数,则含一个隐层的网,MLP,络能够以任意精度逼近任何有理函数,。显然,这是一个存在性结论。在设计,BP,网络时可参考这一点,,应优先考虑,3,层,BP,网络,(,即有,1,个隐层,+,输入层输出层,),。,一般地,靠增加隐层节点数