第5章-人工神经网络-matlab工具箱.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

模式识别讲义第5章人工神经网络黄可坤嘉应学院—matlab神经网络工具箱主要内容0引例:神经网络函数拟合(预测)1matlab神经网络工具箱2人工神经网络(ANN)简介3前馈神经网络(BP网络)4实例:多元神经网络预测5实验:神经网络分类0引例:神经网络函数拟合(预测)试构造合适的神经网络模型拟合如下数据点,并预测x=10的值:x00.511.522.533.544.5y00.430.690.740.610.360.08-0.17-0.34-0.4x55.566.577.588.599.5y-0.35-0.23-0.080.060.160.210.20.150.07-0.01matlab代码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,'.');holdon;plot(x1,y1,'r');∑f∑f∑f∑f∑f∑fxyw11w12w13w14w15w21w22w23w24w25b1b2b3b4b5b网络结构221()1xxefxey=f(w21*f(w11*x+b1)+…+w25*f(w15*x+b5)+b)w1=net.IW{1};w2=net.LW{2};b1=net.b{1};b2=net.b{2};a=tansig(w1*x0+b1);y=tansig(w2*a+b2)Sigmoid函数1matlab神经网络工具箱1.1网络数据对象的建立net=newff([xm,xM],[h1,…,hk],{f1,…,fk});xm,xM分别为列向量(行数为变量个数),分别存储每个变量的最小值和最大值。[h1,…,hk]表示网络各层的节点数,一共有k层.{f1,…,fk}表示各层使用的传输函数,默认为’tansig’,即Sigmoid函数。还可使用函数’purelin’,即f(x)=x。其它可看matlab帮助:helpnewff1.2网络数据对象net的属性net.IW:来自输入层的加权矩阵。BP网络只用net.IW{1},表示各个输入变量对第1层各节点的加权矩阵。net.LW:来自中间层的加权向量。BP网络用net.IW{2,1}表示第1隐层个节点向下一层个节点的加权矩阵;net.IW{3,2}表示第2隐层向下一层的加权矩阵…net.b:各层的偏移。Net.b{1}表示第1隐层个节点的偏移…net.trainParam.epochs:最大训练步数。不过当误差准则满足时,即使没达到此步数也停止训练。缺省为100。net.trainParam.goad:网络误差准则,当误差小于此准则时停止训练,缺省为0。net.trainFcn:训练算法。缺省为’trainlm’,即Levenberg-Marquardt算法。还可使用‘traingdx’,即带动量的梯度下降算法;’traincgf’,即共轭梯度法。其它可看matlab帮助:help-contents-NeuralNetworkToobox-NetworkObjectReference;help(net.trainFcn)helpnewffCaution:trainlmisthedefaulttrainingfunctionbecauseitisveryfast,butitrequiresalotofmemorytorun.Ifyougetanout-of-memoryerrorwhentrainingtrydoingoneofthese:–Slowtrainlmtraining,butreducememoryrequirementsbysettingnet.trainParam.mem_reducto2ormore.(Seehelptrainlm.)–Usetrainbfg,whichisslowerbutmorememory-efficientthantrainlm.–Usetrainrp,whichisslowerbutmorememory-efficientthantrainbfg.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.4网络的泛化(预测)Y=sim(net,X);net是函数newff建立的数据对象。X为n*m的矩阵,n为输入变量个数,m为样本数(即把每个样本是一个行向量)。Y为k*m的矩阵,k为数出变量个数。2人工神经网络(ANN)简介2.1人工神经网络(ANN)的研究内容(1)理论研究:ANN模型及其学习算法,试图从数学上描述ANN的动力学过程,建立相应的ANN模型,在该模型的基础上,对于给定的学习样本,找出一种能以较快的速度和较高的精度调整神经元间互连权值,使系统达到稳定状态,满足学习要求的算法。(2)实现技术的研究:探讨利用电子、光学、生物等技术实现神经计算机的途径。(3)应用的研究:探讨如何应用ANN解决实际问题,如模式识别、故障检测、智能机器人等。2.2ANN研究的目的和意义(1)通过揭示物理平面与认知平面之间的映射,了解它们相互联系和相互作用的机理,从而揭示思维的本质,探索智能的本源。(2)争取构造出尽可能与人脑具有相似功能的计算机,即ANN计算机。(3)研究仿照脑神经系统的人工神经网络,将在模式识别、组合优化和决策判断等方面取得传统计算机所难以达到的效果。2.3人工神经网络研究的局限性(1)ANN研究受到脑科学研究成果的限制。(2)ANN缺少一个完整、成熟的理论体系。(3)ANN研究带有浓厚的策略和经验色彩。(4)ANN与传统技术的接口不成熟。一般而言,ANN与经典计算方法相比并非优越,只有当常规方法解决不了或效果不佳时ANN方法才能显示出其优越性。尤其对问题的机理不甚了解或不能用数学模型表示的系统,如故障诊断、特征提取和预测等问题,ANN往往是最有利的工具。另一方面,ANN对处理大量原始数据而不能用规则或公式描述的问题,表现出极大的灵活性和自适应性。3前馈神经网络(BP网络)3.1前馈神经网络(BP网络)的特点非线性映照能力:神经网络能以任意精度逼近任何非线性连续函数。在建模过程中的许多问题正是具有高度的非线性。并行分布处理方式:在神经网络中信息是分布储存和并行处理的,这使它具有很强的容错性和很快的处理速度。自学习和自适应能力:神经网络在训练时,能从输入、输出的数据中提取出规律性的知识,记忆于网络的权值中,并具有泛化能力,即将这组权值应用于一般情形的能力。神经网络的学习也可以在线进行。数据融合的能力:神经网络可以同时处理定量信息和定性信息,因此它可以利用传统的工程技术(数值运算)和人工智能技术(符号处理)。多变量系统:神经网络的输入和输出变量的数目是任意的,对单变量系统与多变量系统提供了一种通用的描述方式,不必考虑各子系统间的解耦问题。3.2BP网络输入/输出变量的确定BP网络的输入变量即为待分析系统的内生变量(影响因子或自变量)数,一般根据专业知识确定。若输入变量较多,一般可通过主成份分析方法压减输入变量,也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减输入变量。输出变量即为系统待分析的外生变量(系统性能指标或因变量),可以是一个,也可以是多个。一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效果会更好,训练也更方便。3.3BP网络数据的预处理由于BP神经网络的隐层一般采用Sigmoid转换函数,为提高训练速度和灵敏性以及有效避开Sigmoid函数的饱和区(即输入值若大于1,则取为1),一般要求输入数据的值在0~1之间(每个数都除于最大值)。如果输出层节点也采用Sigmoid转换函数,输出变量也必须作相应的预处理,为保证建立的模型具有一定的外推能力,最好使数据预处理后的输出变量的值在0.2~0.8之间。预处理的数据训练完成后,网络输出的结果要进行反变换才能得到实际值。3.4BP网络隐层数的确定一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。Hornik等早已证明:若输入层和输出层采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层的网MLP络能够以任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参考这一点,应优先考虑3层BP网络(即有1个隐层+输入层输出层)。一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。对于没有隐层的神经网络模型,实际上就是一个线性或非线性(取决于输出层采用线性或非线性转换函数型式)回归模型。3.5BP网络隐层节点数的确定在BP网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关。在确定隐层节点数时必须满足下列条件:(1)隐层节点数必须小于N-1(其中N为训练样本数),否则,网络模型的系统误差与训练样本的特性无关而趋于零,即建立的网络模型没有泛化能力,也没有任何实用价值。同理可推得:输入层的节点数(变量数)必须小于N-1。(2)训练样本数必须多于网络模型的连接权数,一般为2~10倍,否则,样本必须分成几部分并采用“轮流训练”的方法才可能得到可靠的神经网络模型。3.6BP网络的训练算法由于BP网络采用误差反传算法,其实质是一个无约束的非线性最优化计算过程,在网络结构较大时不仅计算时间长,而且很容易限入局部极小点而得不到最优结果。目前虽已有改进BP法、遗传算法(GA)和模拟退火算法等多种优化方法用于BP网络的训练(这些方法从原理上讲可通过调整某些参数求得全局极小点),但在应用中,这些参数的调整往往因问题不同而异,较难求得全局极小点。这些方法中应用最广的是增加了冲量(动量)项的改进BP算法。3.7BP网络的学习率和冲量系数的选择学习率η影响系统学习过程的稳定性。大的学习率可能使网络权值每一次的修正量过大,甚至会导致权值在修正过程中超出某个误差的极小值呈不规则跳跃而不收敛;但过小的学习率导致学习时间过长,不过能保证收敛于某个极小值。所以,一般倾向选取较小的学习率以保证学习过程的收敛性(稳定性),通常在0.01~0.8之间。增加冲量项α的目的是为了避免网络训练陷于较浅的局部极小点。理论上其值大小应与权值修正量的大小有关,但实际应用中一般取常量。通常在0~1之间,而且一般比学习率要大。3.8BP网络的初始连接权值BP算法决定了误差函数一般存在(很)多个局部极小点,不同的网络初始权值直接决定了BP算法收敛于哪个局部极小点或是全局极小点。因此,要求计算程序(matlab)必须通过多次(通常是几十次)改变网络初始连接

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功