libin毕业论文基于MATLAB神经网络仿真_第1页
libin毕业论文基于MATLAB神经网络仿真_第2页
libin毕业论文基于MATLAB神经网络仿真_第3页
libin毕业论文基于MATLAB神经网络仿真_第4页
libin毕业论文基于MATLAB神经网络仿真_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第1页装订线摘要随着人工神经网络的研究和应用越来越广泛,误差反向传播算法(BP算法)的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权值调整问题,BP神经网络如今成为最广泛使用的网络,研究它对探索非线性复杂问题具有重要意义,而且它具有广泛的应用前景。以BP神经网络为例,讨论了BP神经网络及几种改进BP神经网络性能的算法;通过BP学习算法的推导和分析得知BP网络是一种多层前馈网络,采用最小均方差的学习方式,缺点是仅为有导师训练,训练时间长,易限于局部极小;运用MATLAB来实现各种BP神经网络的实现的设计与训练,比较不同BP神经网络的性能,验证改进BP网络的优势,得出如何根据对象选取神经网络的结论。关键词人工神经网络、BP神经网络、误差反向传播算法、MATLAB、仿真安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第2页装订线ABSTRACTWITHTHEARTIFICIALNEURALNETWORKOFRESEARCHANDAPPLICATIONOFMOREANDMOREWIDELY,THEERRORBACKPROPAGATIONALGORITHMBPALGORITHMISPROPOSED,SUCCESSFULLYRESOLVEDTHECONTINUOUSFUNCTIONFORSOLVINGNONLINEARMULTILAYERFEEDFORWARDNEURALNETWORKWEIGHTSADJUSTMENT,BPNETWORKHASBECOMENOWTHEMOSTWIDELYUSEDNETWORKS,STUDYTOEXPLOREITSCOMPLICATEDNONLINEARPROBLEMHASIMPORTANTSIGNIFICANCE,BUTALSOHASBROADAPPLICATIONPROSPECTSBPNEURALNETWORKISDISCUSSEDANDSEVERALIMPROVEMENTSINTHEPERFORMANCEOFBPNEURALNETWORKALGORITHMBPLEARNINGALGORITHMTHROUGHTHEDERIVATIONANDANALYSISTHATTHEBPNETWORKISAMULTILAYERFEEDFORWARDNETWORKS,THEUSEOFLEASTMEANVARIANCEAPPROACHTOLEARNING,THEREISONLYDISADVANTAGEISTHATTHETRAININGINSTRUCTORS,TRAININGTIME,LIMITEDTOLOCALMINIMUMEASILYTHEUSEOFMATLABTOACHIEVEAVARIETYOFBPNEURALNETWORKTOACHIEVETHEDESIGNANDTRAINING,TOCOMPARETHEPERFORMANCEOFBPNEURALNETWORKTOVERIFYTHEADVANTAGESOFIMPROVINGTHEBPNETWORK,HOWTODRAWTHEOBJECTSELECTEDINACCORDANCEWITHTHECONCLUSIONSOFNEURALNETWORKSKEYWORDSARTIFICIALNEURALNETWORK,BPNEURALNETWORKS,ERRORBACKPROPAGATIONALGORITHM,MATLAB,SIMULATION安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第3页装订线目录1绪论511引言512神经网络概述5121神经网络起源5122神经网络的发展历程5123神经网络国内发展概况6124神经网络研究现状713研究目的、方法和问题(BP神经网络)8131研究目的8132研究方法8133研究问题82BP神经网络1021BP神经网络相关原理10211神经元非线性模型10212有教师监督学习10213神经元数学模型11214DELTA学习规则11215神经元激活函数12216BP神经网络收敛准则1222BP神经网络学习过程描述13221BP神经网络计算模型建立13222BP神经网络学习过程描述14223BP神经网络方框图1423BP神经网络学习方法14231BP神经网络信号流程14232误差反向传播计算15233BP神经网络算法描述1824影响因素分析19241权值初始值设置影响分析19242权值调整方法影响分析19243激活函数选择影响分析20244学习率选择影响分析20245输入输出归一化影响分析21246其他影响因素分析2225BP学习算法的改进22251BP学习算法的优缺点22252增加动量项23253弹性BP学习算法23254自适应学习速率法24255共轭梯度法25安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第4页装订线256LEVENBERGMARQUARDT算法253BP神经网络仿真2731仿真平台MATLAB27311MATLAB简介27312仿真平台的构建和策略2732仿真实验28321BP神经网络MATLAB设计28322各种BP学习算法MATLAB仿真29323各种算法仿真结果比较与分析32324调整初始权值和阈值的仿真33325其他影响因素仿真354BP神经网络应用实例3741实例概述3742网络设计3743网络训练3844网络测试3945实例总结405总结与展望4151BP神经网络研究总结4152神经网络研究展望42致谢43参考文献44附录46安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第5页装订线1绪论11引言随着计算机的问世与发展,人们设法了解人的大脑,进而构造具有人类智能的智能计算机。在具有人脑逻辑推理能力延伸的计算机战胜人类棋手的同时引发人们对模拟人脑信息处理的人工神经网络的研究。人工神经网络(ARTIFICIALNEURALNETWORKS,ANN)(注简称为神经网络),一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。人工神经网络具有自学习和自适应的能力,可以通过预先提供的一批相互对应的输入输出数据,分析掌握两者之间潜在的规律,最终根据这些规律,用新的输入数据来推算输出结果,这种学习分析的过程被称为“训练”。(引自环球科学2007年第一期神经语言老鼠胡须下的秘密)12神经网络概述121神经网络起源早在1890年,美国心理学家WILLIAMJAMES(18421910)出版了PRINCIPLESOFPSYCHOLOGY专著,本书研究了心理活动与大脑神经生理活动的关系,开创性提出学习、联想记忆的基本原理。指出“让我们假设所有后继推理的基础遵循这样的规则当两个基本的脑细胞曾经一起或相继被激活过,其中一个受刺激激活时会将刺激传播到另一个”。他还认为在大脑皮层上的任意一点的刺激量是其他所有发射点进入该点刺激总和。1943年,心理学家WSMCCULLOCH和数理逻辑学家WAPITTS建立了神经网络和数学模型,称为MP模型。他们通过MP模型提出了神经元的形式化数学描述和网络结构方法,证明了单个神经元能执行逻辑功能,从而开创了人工神经网络研究的时代。122神经网络的发展历程1943年,心理学家WSMCCULLOCH和数理逻辑学家WPITTS建立了神经网络和数学模型,称为MP模型;1949年,心理学家DONALDOLDINGHEBB出版了ORGANIZATIONOFBEHAVIOR,在该书他首先提出了连接权训练算法,即如今人们称为的HEBB算法;1958年,计算机科学家FRANKROSENBLATT,在一篇著名的文章中提出了一种具有三层网络特性的“感知器”(PERCEPTRON)神经网络;安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第6页装订线1960年,电机工程师BERNARDWIDROW和MARCIANHOFF发表了ADAPTIVESWITCHINGCIRCUITS文章,不仅把人工神经网络在计算机上仿真,而且用硬件电路实现了它。因此WIDROWHOFF的学习训练算法(也称(误差大小)算法或最小均方(LMS)算法)也应运而生;1969年,人工智能的创始人之一,MMINSKY和SPAPERT经过数年研究,仔细分析了以感知器为代表的神经网络系统的功能及局限后,出版了PERCEPTRON一书,指出感知器不能解决高阶谓词问题;1969年,美国波士顿大学自适应系统中心的SGROSSBERG教授及其夫人GACARPENTER提出了著名的自适应共振理论(ADAPTIVERESONANCETHEORY)模型;1972年,芬兰的TKOHONEN教授提出了自组织映射(SOM)理论,并称其神经网络结构为“ASSOCIATIVEMEMORY”;与此同时,美国的神经生理学家和心理学家JANDERSON,提出了一个类似的神经网络“INTERACTIVEMEMORY”;1980年,日本东京NHK广播科学研究实验室的福岛邦彦(KUNIHIKOFUKUSHIMA),发表了NEOCOGNITRON,开发了一些神经网络结构和训练算法,还有一系列的改进的文章,新认知机在于视觉模式识别机制的模型;1982年,美国加州理工学院的优秀物理学家JOHNJHOPFIELD博士发表一篇著名的文章,吸收前人的研究成果,把各种结构和算法概括综合起来建立起新颖而有力的HOPFIELD网络;1985年,GEHINTON和TJSEJNOWSKI借助统计物理学概念和方法提出了波耳兹曼模型,在学习中采用统计热力学模拟退火技术,保证整个系统趋于全局稳定点;1986年进行认知微观结构地研究,提出了并行分布处理的理论;1987年首届国际神经网络学术会议在美国加州圣地亚哥召开,成立了国际神经网络学会(INNS);1987年以来,神经网络理论、应用、实现和相关开发工具发展迅速,涉及神经生理学、认知科学、心理学、数理科学、信息科学、计算机科学、微电子学、光学、生物电子学等多学科交叉、综合的前沿科学。应用于各个领域,如自动控制领域、处理组合优化问题、模式识别、图像处理、机器人控制、医疗等。可见人工神经网络具有广泛的研究和应用前景;以下是1987年后的一些发展历程1988年,BROOMHEADLOWER提出径向基函数网络(RADIALBASISFUNCTION,RBF),网络设计采用原理化方法,有坚实的数学基础;19921998年,VAPNIK提出了支持向量机(SUPPORTVECTORMACHINE,SVM),在模式分类问题上能提供良好的泛化能力。123神经网络国内发展概况1980年,涂序言教授等出版了生物控制论一书,“神经系统控制论”一章系统地介绍了神经元和神经网络的结构、功能和模型,是我国最早涉及神经网络的著作;因此到80年代中期,我国学术界掀起了研究神经网络的热潮;1988年北京大学非线性研究中心举办了BEIJINGINTERNATIONALWORKSHOPONNEURALNETWORKSLEARNING安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第7页装订线ANDRECOGNITION,AMODERNAPPROACH;1989年召开可全国非正式的神经网络会议,于1990年在北京召开了中国神经网络首届学术大会,第二年在南京召开了第二届,并成立了中国神经网络学会;1992年国际神经网络学会和IEEE神经网络委员会在北京召开神经网络的国际性会议;自此中国神经网络研究在国家研究计划的支持和学术及工程人员的发展与应用下取得一系列丰硕成果。124神经网络研究现状神经网络是可大规模并行处理和分布式信息存储,具有良好的自学习、自适应、自组织性,以及很强的联想记忆和容错功能,可以充分逼近任意复杂的非线性关系,可有很强的信息综合能力,能同时处理定量和定性信息,能很好的协调多种输入信息关系,适用于处理复杂非线性和不确定对象。目前的神经网络的研究中主要有以下几种类型松耦合模型符号机制的专家系统和联接机制的神经网络通过一个中间媒介如数据文件进行通信;紧耦合模型其通信数据是直接的内部数据,具有很高的效率;转换模型将专家系统知识转换成神经网络,或把神经网络转换成专家系统知识,转换需要在两种机制之间,确定结构上的一致性,目前主要问题还没有一种能够精确而完备的实现二者转换;综合模型将具有符号机制的逻辑功能和具有联接机制的自适应和容错性结合为一个整体,共享数据结构和知识表示;混沌理论是系统从有序突然变为无序状态的一种演化理论,是对确定性系统中出现的内在“随机过程”形成的途径、机制的研讨,从而与神经网络融合,达到取长补短的效果;模糊集理论用语言和概念代表脑的宏观功能,按照人为引入的隶属度,将模糊性的语言信息进行逻辑处理,与神经网络结合,取长补短;遗传算法模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,从而与神经网络融合,达到取长补短的效果;混合神经网络把神经网络与混沌理论、模糊集理论和遗传算法相互结合的网络模型。人工神经网络学习问题展望,目前主要有以下三种方法基于搜索机制的学习方法、基于规划的学习方法和构造性学习方法。如今也有其综合方法,各有特点。其中基于搜索的方法,若不从根本上进行改变,很难克服其内在固有的缺点,如基于局部最小的搜索算法,其中BP算法就有易限于局部极小的固有缺点;规划方法因为其中有“优化的步骤”,从理论上看其所得网络性能要比其他方法要好,但如何确定核函数形式和参数问题一直是未能很好解决的问题,当数据规模极大会引起计算量过大问题;构造性方法,因为进行了局部化,计算量要小,由于未进行全局优化,故性能不及规划方法,不需要确定映射关系就没有了确定核函数的困难问题;如果能够将三者相互结合,将规划方法中优化过程合理地引入到构造方法中,也许即可克服规划方法计算量大的问题,核函数和参数确定问题,也可以克服构造性方法未进行全局优化的缺点;这些将是值得研究的问题。随着更多数学方法的引入,如模拟退火算法、商空间(即线性空间)理论、统计推断方法与启发式搜索技术及其结合产物的引入,促进各种学习方法的改进,将有力的推进神经网络的进一步发展。安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第8页装订线随着神经网络的广泛应用,具有以下研究趋势增强对智能和机器的关系问题的认识,发展神经计算与进化计算的理论与应用,扩大神经网络结构和神经元芯片的作用,促进信息科学与生命科学的相互融合,进行与其他智能方法融合技术研究。13研究目的、方法和问题(BP神经网络)131研究目的在人工神经网络发展历史中,很长一段时间里没有找到隐含层的连接权值调整问题的有效算法。直到误差反向传播算法(BP神经网络算法)的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权值调整问题。目前,BP神经网络已成为广泛使用的网络,可用于语言综合、语言识别、自适应控制等。它是一种多层前馈网络,采用最小均方差的学习方式,缺点是仅为有导师训练,训练时间长,易限于局部极小。鉴于神经网络的广泛应用,特别是BP神经网络的发展,对于神经网络(比如BP神经网络)的研究具有重要意义。研究的主要目的是理解BP网络结构模型;学习误差反向传播算法和BP神经网络的学习算法;分析关键因素,得出BP网络的优缺点;综合各种因素并使用启发式方法对BP神经网络算法进行改进;应用数学软件MATLAB对BP神经网络标准算法和改进算法进行仿真编程;利用仿真结果和图表得出各个算法适用条件;进而研究实际问题的BP神经网络构建和仿真。132研究方法通过参考研究学习神经网络研究和工作者的著作和文章,理解神经网络,特别是BP神经网络的结构模型和理论;利用现有的数学理论知识和方法,推导反向传播算法计算;利用计算机程序设计理论编写BP神经网络学习算法的步骤和流程;分析BP标准算法关键因素,利用现有数学相关方法(如启发式方法,MATLAB中几种典型的BP神经网络算法TRAINGDM,增加动量法;TRAINRP,弹性BP算法;TRAINGDA,TRAINGDX,自适应学习速率法;TRAINCGF,共轭梯度法;TRAINBFG,拟牛顿法;TRAINLM,LEVENBERGMARQUARDT算法)对BP神经网络算法改进和理论推导;利用优秀数学软件MATLAB进行BP网络学习算法的仿真编程,分别建立BP神经网络标准算法、改进算法的编程程序,利用MATLAB得出相关图表,分析其关键因素;应用实例对BP神经网络的应用和仿真进行验证;通过自己的理解和学习得出自己对神经网络(BP神经网络)的思考。133研究问题研究问题1BP神经网络的学习过程,工作信号正向传播,误差信号反向传播。得到如下图11示意模型(多层前馈型网络)安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第9页装订线输入层隐含层输出层误差信号图11BP神经网络示意模型输入信号研究问题2BP神经网络的不足,训练时间较长,有时完全不能训练,失败的可能性也较大,易陷于局部极小而得不到全局最优,隐含节点个数难以确定,训练过程有暂时遗忘的现象即学习新样本有遗忘旧样本的趋势。研究问题3BP神经网络学习算法的改进有(MATLAB神经网络工具箱中)增加动量法TRAINGDM、弹性BP算法(TRAINRP),自适应学习速率法TRAINGDX、共轭梯度法TRAINCGF、拟牛顿法TRAINBFG以及LEVENBERGMARQUARDT算法(TRAINLM)等。注在MATLABR2007版本中TRAINGDX为动量及自适应LRBP的梯度递减训练函数。研究问题4误差要求和网络复杂程度将影响BP各种算法的选择;比如拟牛顿法需要HESSIAN矩阵,不适用于复杂的大型网络,但对于中型网络其收敛效果仅次于LM算法,且需要的内存也相对较小,但对于小型网络LM算法最好最快,仿真效果要好;又如当误差要求比较高时,弹性BP算法和自适应学习速率法需要很长的训练时间,在设定的训练步骤范围内不能达到期望误差。研究问题5在实例的网络模型的建立和MATLAB仿真的过程中,发现没有确定隐含层神经元数目的有效方法,隐含层神经元的数目直接影响分类精度,神经元数目过多或过少都会使网络性能下降,一般只能由经验设定,再经过多次调试确定最佳数目。其次网络的泛化能力与训练能力的矛盾,一般情况下,训练能力差时,预测能力也差,并且一定程度上随训练能力地提高,泛化能力也提高。但这种趋势有一个极限,当达到此极限时,随训练能力的提高,泛化能力反而下降,即出现所谓“过拟合”现象。此时,网络学习了过多的样本细节,而不能反映样本内含的规律。安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第10页装订线2BP神经网络21BP神经网络相关原理211神经元非线性模型F()KWK1WK2WKI固定输入X01X1X2阈值KK激活函数输出YK图21神经元非线性模型加法器XI加法器,也称线性组合器,将求输入信号突触权值被神经元的相应突触加权和;激活函数是用来限制神经元的振幅,主要有0,1或1,1;阈值的作用是根据其为正或负,相应的增加或减低激活函数的网络输入。注这里的K为实例。模拟的是生物神经元的电位脉冲原理。212有教师监督学习环境教师学习系统实际响应描述环境状态向量期望模式输入模式误差信号EK图22有教师学习方框图期望响应安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第11页装订线有教师学习采用的是纠错规则,在网络的学习训练过程给神经网络一个期望模式和输入模式,所期望的模式就是教师信号,因此可以将输入模式所得的结果与期望模式的结果相比较,当不相符时,可以根据相关规则进行权值调整,比如上述的DELTA规则,直到满足一定误差范围内,这将更接近期望模式结果。由此可见,在执行具体任务之前必须经过学习,直到“学会”为止。213神经元数学模型设在N时刻,神经元I到神经元J的信息传递,其输入信息为XIN,输出为OJN,则神经元J的数学表达式为式21其中IJW是神经元I到J的突触连接权值IJ是输入和输出间的突触时延J是神经元J的阈值F是神经元激活函数如果TIJJJJWWWW,21,TIXXXX,21,又0X1,JW0J(KB)可得XWFOTJJ。214DELTA学习规则DELTA学习规则,也称连续感知器学习规则,与离散感知器学习规则并行。其规则的学习信号规定为式22为了方便计算,定义神经元J的期望误差与实际输出之间的计算误差为式23按照误差的负梯度修正权值,即式24式25其中是学习率,00常数,通常A17159B2/3。因此,F11,F11,F0AB171592/311424,斜率接近单位1,在X1时二阶导数最大。在误差反向传播计算中所用的是S型对数函数,同理可以使用S型正切函数,并对其求导推导。S型对数函数不是奇函数,工作范围是0,1。而双极性S型正切函数除了本身符合连续可微的条件外,具有双极性输出,它常常被选用为要求输入是1范围的信号,关于它们的选择主要从函数自身的工作范围及其导数值的大小范围以及结构简单和运算速度快等思想考虑。由此可见,研究BP神经网络激活函数是今后研究的一个重要课题。244学习率选择影响分析首先,学习率是随时间改变的,为了方便,在反向传播算法计算过程中采用的是不变的学习率。下面是理想学习率示意图和一些规则XAEXFAX,011AEAEEABXAXFBXBXBX1211TANH安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第21页装订线根据反向传播计算式得知,学习率越大权值的变化就越大,则BP算法的学习收敛速度就越快,过大则引起网络的振荡,导致网络的不稳定以及性能低下,当超过某一极值容易引起算法不稳定。相反学习率小可以避免网络的振荡,但导致学习收敛速度的下降。经过实践证明来说,输出单元的局向梯度比输入端大,为此输出单元的应小些;有较多输入端的神经元的要比有较少的输入端的神经元的小些;对于一个给定的神经元,其学习率应与神经元的突触连接的平方根成反比。在BP改进算法中引入了动量法解决的学习过程变化问题,增加网络的稳定性,加快学习收敛速度,如MATLAB中使用动量及自适应LRBP的梯度递减训练函数。此外有很多研究人员采用遗传算法和免疫算法BP神经网络的学习率进行优化设计并简历数学模型,下面是一个简单的优化的学习率变化公式其中N为迭代次数,A和根据工程应用的复杂性和结构优化的模糊性,对不同的系统和要求取不同的范围,一般情况下,1A50,000010001。(参考文献10)245输入输出归一化影响分析在输入样本训练网络时,如果所有输入样本的输入信号都为正值或负值,则与第一隐含层的神经元权值只能同时增加或减小,从而导致学习速度很慢。因此需要对输入信号进行归一化处理,使得所有样本的输入信号均值接近零或者其标准方差比较小。归一化的问题旨在是归纳统一样本的统计分布性,改善其分布规律,具体是消除均值,去相关性以及均方差均衡。归一化在0,1之间是统计的概率分布,归一化在1,1之间是统计的坐标分布。网络的各个输入数据常常具有不同的物理意义和不同的量纲,为此需要使网络训练一开始就给各训练输入向量以同等的身份地位。BP神经网络的神经元一般采用SIGMOID激活函数,归一化可以防止输入信号数据绝对值过大进入饱和区。另外,期望输出数据不进行归一化会导致数值大的分量绝对误差大,数值小的绝对误差小,网络训练时只针对输出的总误差调整权值,因此在总误差中所占份额少的输出分量相对误差较大。这些都将影响学习的速度。处理的方法有,利用合理的变换等式将输入输出的数据变换为0,1或1,1(其迭代次数NEN收敛速率图28理想学习率示意图NAE安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第22页装订线选择主要看激活函数的选择)之间的数据;当输入输出向量中某个分量的取值过于密集时,由此可以将数据的点拉开一定距离,适当变换分布,改善分布规律。使用主分量分析法使训练样本的输入向量互不相关,去相关后的输入变量应调整其长度使它们的方差近似相等,因此可以使网络中不同权值以大约相等的速度进行学习。246其他影响因素分析关于能够改善BP神经网络性能和学习收敛速度的影响因素还有很多,比如输入样本信息内容的选择问题、允许误差的选择问题,从提示中学习的问题以及改进误差函数等。在输入样本信息选择问题上,为能在对权空间进行更多的搜索,需要以下两个原则选择输入样本,使用训练误差最大的样本,使用的样本要与以前使用的有根本区别。此外,在一个迭代过程给网络的训练样本分布是变形的,如果含有例外点或错误标记的训练样本将会损坏输入空间更大区域的泛化能力,降低网络的性能。允许误差的选择也会影响学习的收敛速度和学习精度,我们一般采取一开始将允许误差取大些,然后逐渐减少的做法,这样是对网络训练的宽容,也是因为网络的训练往往很难达到期望的值,也是为了加快学习速度,也要参考具体问题所要求的精度。提示学习是利用现有的关于函数的先验知识(如函数的不变性、对成性以及其他特性)来提高函数的逼近能力,这就需要从学习样本中提取有关输入输出函数的信息,推断出能够逼近输入输出函数的函数,在学习中嵌入这样的提示,使用统计分布的方法建立虚拟样本,也增加了网络的泛化能力,加快了学习速度。改进误差函数,标准的误差函数采用的是(这也是为了方便计算)随着学习次数的增加,越来越小,使函数逼近速度减慢,这样对高度非线性样本的逼近精度得不到保证,为此用绝对和相对逼近精度来描述次误差函数,即其中1和2是常量系数。在样本学习初期,以绝对形式的误差函数来指导权值的修正;学习后期,以相对形式函数误差为主则1随着学习次数的增加而减少,则2随学习次数的增加而增加。有的学者提出采用熵类准则函数或分类启发准则(参见参考文献11)。25BP学习算法的改进251BP学习算法的优缺点JJJJYDNE221JJYD2221144JJJJJJJJYDYDNE安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第23页装订线BP学习算法优点BP学习算法具有数学理论依据可靠,推导过程严谨,通用性好,解决了求解非线性连续函数的多层前馈神经网络权值调整问题,具有实现任何复杂非线性映射的功能,特别适合求解内部机制的复杂问题。它具有自学习、自组织、自适应性和很强的信息综合能力,能够同时处理定量和定性信息,协调多种输入的关系并进行推广概括,实行并行处理,适用于处理复杂非线性和不确定的对象。BP学习算法缺点基于梯度下降法及目标函数复杂,导致训练次数多,训练时间较长,收敛缓慢;基于局部搜索的优化方法,导致有时完全不能训练,失败的可能性也较大,易陷于局部极小而得不到全局最优;网络结构的选择尚无统一完整的理论指导,隐含节点个数难以确定,而网络的结构直接影响网络的逼近能力及推广性质;训练过程有暂时遗忘的现象即学习新样本有遗忘旧样本的趋势;学习复杂性问题,即网络容量的可能性与可行性的关系问题,难以解决应用问题的实例规模和网络规模的矛盾问题;还有诸如新加入训练样本的要求及对已学习成功网络的影响,网络泛化能力和训练能力的极限问题等。鉴于BP学习算法的优缺点,增强BP神经网络的性能和应用,目前主要有如下几种改进方法。此外还有一些诸如增加遗忘因子、误差曲面陡度因子的方法,以及将多种方法和相关数学原理相结合的方法(具体请参考相关文献)。252增加动量项在前面提到学习率的变化会影响网络的性能,为此在权值调整公式中增加一个动量项,达到微调权值修正量防止振荡的效果。这样通过动量法不仅考虑了误差在梯度上的作用,而且考虑了误差曲面上变化的方向。其中是动量因子,一般有(0,1)动量项反应了以前的调整经验,对下一时刻的调整起到一定阻尼作用。因此可以减小振荡的趋势,促使权值的调节向着误差曲面的底部的平均方向变化,降低了网络对误差曲面在局部细节的敏感性,在一定程度上缓解局部极小问题,但是难以避免收敛缓慢问题。253弹性BP学习算法BP学习算法常用SIGMOID函数,即其特点是可以把无限的输入映射到有限的输出,如果函数的输入很大或很小的时候,函数的斜率接近于零,这样采用梯度下降法使用SIGMOID函数的网络就带来一个问题梯度幅度的不利影响,即尽管权值和阚值离其最佳值相差甚远,但此时梯度的幅度非常小,导致权值和阈值的修正量也很小,使得训练时间变得很长。所以在权值修正的111NWNYNNWIJIJIJXEXF11安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第24页装订线时候仅仅用偏导的符号,而其幅值不影响权值的修正,即权值的修正取决于与幅值无关的修正值。当连续两次迭代的梯度方向相同时,可将权值和阈值的修正值乘以一个增量因子。使其修正值增加;当连续两次迭代的梯度方向相反时,可将权值和阈值的修正值乘以一个减量因子,使其修正值减小;当梯度为零时,权值和阈值的修正值保持不变;当权值的修正发生振荡时,其修正值将会减小。如果权值在相同的梯度上连续被修正,则其幅度必将增加,从而克服了梯度幅度的不利影响,即(当连续两次迭代的梯度方向相同时)(当连续两次迭代的梯度方向相反时)(当局向梯度GN为零时)其中NX是第N次迭代的权值或阈值的幅度修正值,INCK为增量因子,DECK为减量因子,SIGNGN代表局向梯度GN的符号函数。254自适应学习速率法在BP学习算法中,网络权值调整取决于学习率和局向梯度,首先要说明的是学习率是随时间改变的,只是在上面的反向传播算法推导过程采用的是不变的值。在自适应的学习速率法中学习率的调整规则有很多种办法,目的是为了把学习率在整个训练过程得到合理的调节。第一种方法是将动量因子和学习率同时调整,其中动量因子的调整倍率要大些。基本思想当前误差与前一次误差比较,如果误差出现反弹或持平,说明学习率过大,那么将学习率降到原来的60,然后再按5的速度递增;如果误差持续下降,学习率继续递增;当误差再出现反弹或持平时,再将学习率下调40;这样反复跳跃以刺激收敛速度,同时这种跳跃还可以避免寻优搜索陷入局部极小值。(误差反弹或持平)(误差持续下降)第二种方法是设一个初始学习率,若在一批权值调整后总误差升高,则本次的调整无效,并且令11NN;若总误差下降,则本次调整有效,并且令11NN。通过学习率的自适应调整,使学习过程中从误差曲面中找到合适的学习率,在平坦区域加速,在凹处减速,避免出现振荡导致的迭代次数增加,加快收敛速度。如果将增加动量法和自适应学习速率法结合起来,既可抑制网络陷入局部极小,又加快学习。但都是基于梯度下降法,它们只利用了目标函数对网络权值和阈值的一阶导数信息。因此,对于复杂问题还存在收敛速度缓慢的问题。1NXKNGSIGNNXKNGSIGNNXNXDECINC11105116011NENENENENNNNNWNYNNWNWNWNWIJIJIJIJIJIJ安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第25页装订线255共轭梯度法在基本的BP学习算法中,相邻迭代的搜索方向是正交的,当接近极值时会发生振荡。共轭梯度法是利用正交性构成的共轭搜索方向,使得在最速下降方向(误差曲面中对权值向量调整是在最速下降的方向,与梯度向量方向相反)通过把过去的梯度和现在某点的梯度信息线性组合起来(前一点的梯度乘以适当系数加到该点的梯度)构造更好的搜索的方向,搜索目标函数极值,沿共轭方向达到全局最优,为此这种无约束最优化方法能有效提高算法性能。为了确保搜索方向的共轭性,初始搜索方向取负梯度方向,当由于误差积累使得搜索方向变得非下降时,可以以负梯度方向重新开始搜索。BP算法改进如下其中N为共轭因子,NDIR为共轭方向(设W是NN的正定矩阵,如果存在两个方向DIR1和DIR2使得DIR1WDIR20,则这两个方向关于W共轭),NG为当前梯度,N为迭代次数。最后一个式子是基于共轭方向的权值修正。上述式子在初始时如此迭代而已。在试验中得知在高维函数或向量的训练将会达到更好的效果。请参考323仿真结果比较与分析。256LEVENBERGMARQUARDT算法LM算法(也称阻尼最小二乘法)较上面基于梯度下降法的算法要快的多,但需要更多的内存存储雅可比(JACOBIAN)矩阵,对于中等规模的网络是一种很好的选择,对于大型网络可以将雅可比矩阵分为多个小矩阵的方法,减少了内存却增加了学习时间。权值调整量为其中JE为误差向量,J为网络误差对权值偏导的雅可比矩阵,I是单位矩阵,为阻尼因子(是自适应调整的,使得该方法在GAUSSNEWTON法(0时)和梯度下降法(时)之间光滑变化),N为学习步长。1111NWNNGNNWNWNNGNDIRNGNGNGNGNIJIJIJTTDIRNG0DIRN1图29共轭梯度向量示意图11120111101WIJGDIRGDIRWGDIRIJ1NENJINNJNJNWJTTIJ安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第26页装订线分析LM算法根据迭代的结果动态地调整阻尼因子,即动态地调整迭代的收敛方向,可使每次的迭代误差函数值都有所下降。它是GAUSSNEWTON法和梯度下降法的结合,收敛速度较快。但LM算法在计算过程中有雅可比矩阵会产生大量的中间结果,因此,需要较大的内存空间。在MATLAB神经网络工具箱中,该算法被作为默认的训练函数。在上面的分析可以得出,该算法的基本思想是使其每次迭代不再沿着单一的负梯度方向,而是允许误差沿着恶化的方向进行搜索,同时通过在和GAUSSNEWTON法和梯度下降法之间自适应来优化网络权值,使网络能够有效的收敛,大大提高了网络的收敛速度和泛化能力。具体迭代步骤如下1将所有输入送到网络并计算出网络输出,用误差函数计算出所有的误差平方和2计算出误差对权值偏导的雅可比矩阵34用WW重复计算误差平方和(如果新的和小于中计算的和,则用除以(1),并有WW转;否则用乘以,转;当误差平方和减小到某一目标误差时,算法即被认为收敛)注从252至256参考大量学术论文及文献,由于参考的文献众多,在这里就不一一指明,但大都附在论文后面的参考文献中,在此对参考文献的作者表示感谢和歉意。MMMWNEWNEWNEWEWEWEWEWEWEMNJ222111212121NIIELME12211NENJINNJNJNWJTTIJ安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第27页装订线3BP神经网络仿真31仿真平台MATLAB311MATLAB简介MATLAB是MATRITLABORATORY的英文缩写,中文意思是矩阵实验室,是美国MATHWORKS公司出品的商业数学软件,它的内核是采用C语言编写,是一种以矩阵为基本数据元素,面向科学计算与工程计算的可视化软件。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、鲁棒控制、信号检测、金融建模设计与分析等领域。在新的版本中也加入了对C,FORTRAN,C,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。312仿真平台的构建和策略由于MATLAB的诸多优点,BP神经网络的仿真采用MATLAB数学软件,安装在单机WINDOWSXP系统中,所使用的MATLAB版本为R2007B。应用MATLAB中神经网络工具箱函数使用MATLAB自身语言进行编程。仿真的具体步骤为确定信息的表达方式将实际问题抽象成神经网络所能接受的数据形式;确定网络结构模型,本仿真将选取输入层,一个隐含层和输出层的BP网络模型;选择网络参数如神经元数,隐含层数等;确定训练模式,选择训练算法,确定训练步数,指定训练目标误差等;网络测试选择合适的样本进行网络测试。本仿真需要使用到的训练算法并进行比较的MATLAB神经网络工具箱函数为增加动量法TRAINGDM、弹性BP算法(TRAINRP),自适应学习速率法TRAINGDA,注意TRAINGDX是动量及自适应学习速率法,本仿真实验将使用TRAINGDX、共轭梯度法TRAINCGF以及LEVENBERGMARQUARDT算法(TRAINLM)。其中LEVENBERGMARQUARDT算法(TRAINLM)是MATLAB中BP算法的默认训练函数。此外,在后续的实验中,通过调整隐含层数及其神经元个数、调整学习率大小、调整初始权值、选择不同的激活函数、修改学习步长和目标误差等观察对仿真曲线的影响程度,记录相关数据,得出相关结论。所采用的数据和编程来自或参考于参考文献2,该网络的输入层和输出层的神经元个数均为1,隐含层设计可以根据下面的经验,这里采用的是设计一个隐含层神经元数目可变的BP神经网络,通过误差对比,确定最佳的隐含层神经元个数,并检验隐含层神经元个数对网络性能的影响。下面有三个参考公式(来自参考文献2)可以参考确定隐含层神经元个数安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第28页装订线,其中,K为样本数,N1为隐含层神经元个数,N为输入单元数;如果IN1则;AMNN1,其中M为输出神经元数,N为输入单元数,A为1,10之间常数。NN21LOG,其中N为输入单元数。32仿真实验321BP神经网络MATLAB设计由于在隐含层的神经元个数可以随意调整的前提下,单隐含层的BP神经网络可以逼近任意的非线性映射。输入层和输出层神经元个数为1,只有一个隐含层,其个数根据上述的设计经验公式和本例的实际情况,选取916之间。下面的隐含层神经元个数可变的BP神经网络,通过误差和训练步数对比确定隐含层个数,并检验隐含层神经元个数对网络性能的影响。下面是相关MATLAB程序段选取输入变量X取值范围X40014输入目标函数Y1SIN1/2PIXSINPIX隐含层的神经元数目范围S916欧氏距离RES18选取不同的隐含层神经元个数,进行网络测试FORI18建立前向型BP神经网络,输入层和隐含层激励函数为TANSIG,输出层为PURELIN训练函数为TRAINLM,也是默认函数NETNEWFFMINMAXX,1,SI,1,TANSIG,TANSIG,PURELIN,TRAINLM训练步数最大为2000NETTRAINPARAMEPOCHS2000设定目标误差为000001NETTRAINPARAMGOAL000001进行函数训练NETTRAINNET,X,Y1对训练后的神经网络进行仿真Y2SIMNET,X求欧式距离,判定隐含层神经元个数及网络性能ERRY2Y1NIINKC0101INC安徽工业大学管理科学与工程学院基于MATLAB神经网络仿真共45页第29页装订线RESINORMERREND用该同一程序在三个不同时刻,运行结果及分析如下表31隐含层不同神经元个数网络训练误差及学习步长某时刻一神经元个数910111213141516网络误差0143231806486240088000867008840085900841学习步长2000200020002756402416625某时刻二神经元个数910111213141516网络误差0089501068008950101600894008890088148423学习步长1156200011462000287102792000某时刻三神经元个数910111213141516网络误差0089500867008781073400895008900089500886学习步长4496660200015125674253由此可见,选择隐含层神经元数目为15是最佳选择,不仅误差小、学习步长短,而且性能稳定。也可以看出并非隐含层神经元的数目越多,网络的性能就越好。322各种BP学习算法MATLAB仿真根据上面一节对BP神经网络的MATLAB设计,可以得出下面的通用的MATLAB程序段,由于各种BP学习算法采用了不同的学习函数,所以只需要更改学习函数即可。MATLAB程序段如下X40014Y1SIN1/2PIXSINPIXTRAINLM函数可以选择替换NETNEWFFMINMAXX,1,15,1,TANSIG,TANSIG,PURELIN,TRAINLMNETTRAINPARAMEPOCHS2000NETTRAINPARAMGOAL000001NETTRAINNET,X,Y1Y2SIMN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论