学号:XXXXXXX题目:基于BP神经网络的函数逼近仿真实例学院:信息学院专业:计算机科学与技术姓名:XXX指导教师:XXX完成日期:2011年5月9日—I—摘要BP(BackPropagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前向网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。在人工神经网络的实际应用中,绝大部分的神经网络模型都采用BP网络及其变化形式。它也是前向网络的核心部分,体现了人工神经网络的精华,在函数逼近、模式识别、分类、数据压缩等领域获得了极为有效而广泛的应用。本文利用自行设计的BP网络开发工具,通过一个简单的三层BP神经网络模拟了对正弦函数(y=sin(x))的逼近过程,并通过设置不同的网络参数初步探讨了学习率、动量项等因素对BP网络收敛性的影响。全文共分为六个部分,第一部分介绍了BP神经网络的相关背景知识及算法相关公式的数学推导,这也是设计本次函数逼近网络模型的理论基础;第二部分详细介绍了本次函数逼近所采用的网络模型、逼近函数及相关参数,并通过实验给出设置相关参数的经验知识;第三部分介绍了系统设计思路、过程及相关细节,并包含核心代码展示;第四部分给出一次运行示例;第五部分是我对于BP神经网络及本次仿真的自我认识与评价;第六部分是结束语。关键词:BP网络;函数逼近;仿真—II—AbstractBPneuralnetworkmodelisaMultilayerFeedforwardNetworkmodelwhichwasfirstproposedbyaresearchteamledbyscientistsRumelhartandMcCellandin1986.TrainedbyErrorBack-propagationAlgorithm,nowitisoneofthemostwidelyusedneuralnetworkmodels.BPnetworkisabletolearnandstorevariousinput-outputmappingrelationshipswithoutpreviouslyknowingtheexactmathematicsfunctionwhichrevealsthem.AsthecoreofFeedforwardNetworkandessenceofArtificialNeuralNetwork,itiswidelyusedinfieldssuchasFunctionapproximation,Patternrecognition,ClassificationandDatacompression.Thisthesisusesa3-layerBPneuralnetworktosimulatetheprocessofapproximatingtheSinefunctionandbysettingdifferentnetworkparametersitalsobrieflydiscussestheinfluenceofcertainfactorssuchaslearning-rateontheconvergenceofthisprocess.Thetextisdividedinto6parts.ThefirstpartintroducessomebackgroundknowledgeofBPneuralnetworkandthemathematicsfoundationofit,whichisalsothefoundationofmysystem.Thesecondpartdiscussesmyneuralnetworkmodel,theapproximatedfunctionandsomeimportantpointsofdesigningindetail.Thethirdpartgivestheprocess,someideasandrelateddetailsinsystemdesigning,whichalsoincludessomecorecode.Thefourthpartdisplaysarunningexampleandstatisticsofthesystem.Thefifthpartisaself-evaluationofthesystemandapproximatingprocess.Thesixthpartistheconclusion.Keywords:BPneuralnetwork;Functionapproximation;Simulation目录序言.......................................................1第1章BP神经网络简史及数学基础.............................31.1BP网络的历史发展、能力及优缺点..................................31.2BP网络模型及BP算法简介与推导...................................31.2.1BP网络模型及算法..................................................31.2.2梯度下降法.........................................................51.2.3BP算法推导........................................................6第2章本系统所采用的BP网络模型及逼近函数若干要点...........92.1神经网络模型.....................................................92.2逼近函数及相关参数...............................................9第3章系统设计思路、过程及相关细节.........................103.1本次仿真系统设计思路及界面展示..................................103.2系统设计及仿真过程与体会........................................153.2.1设计过程..........................................................153.2.2体会..............................................................163.3核心代码展示....................................................163.3.1相关数据结构说明..................................................163.3.2核心代码..........................................................17第4章系统运行及仿真实例...................................214.1系统运行实例....................................................214.2设置网络参数的经验总结..........................................23第5章系统自我认识与评价...................................24第6章结束语...............................................25参考文献....................................................26致谢......................................................27—1—序言人工神经网络(ArtificialNeuralNetworks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(ConnectionistModel),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。思维学一般认为,人类大脑的思维分为抽象(逻辑)思维、形象(直观)思维和灵感(顿悟)思维三种基本方式。逻辑性的思维是指根据逻辑规则进行推理的过程:它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理;这一过程可以写成串行的指令,让计算机执行。然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。这种思维方式的根本之点在于以下两点:1.信息是通过神经元上的兴奋模式分布存储在网络上;2.信息处理是通过神经元之间同时相互作用的动态过程来完成的。人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。通过在学习或训练过程中改变突触权重值以适应周围环境的要求,人工神经网络也具有初步的自适应与自组织能力。同一网络因学习方式及内容不同可具有不同的功能。人工神经网络是一个具有学习能力的系统,可以发展知识,以致超过设计者原有的知识水平。通常,它的学习训练方式可分为两种,一种是有监督或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督学习或称无导师学习,这时,只规定学习方式或某些规则,则具体的学习内容随系统所处环境(即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似人脑的功能。人工神经网络的实质发展始于二十世纪四十年代[1]。1943年,心理学家W·Mcculloch和数理逻辑学家W·Pitts在分析、总结神经元基本特性的基础上首先提出神经元的数学模型。此模型沿用至今,并且直接影响着这一领域研究的进展。1945年冯·诺依曼领导的设计小组试制成功存储程序式电子计算机,标志着电子计算机时代的开始。1948年,他在研究工作中比较了人脑结构与存储程序式计算机的根本区别,提出了以简单神经元构成的再生自动机网络结构。但是,由于指令存储式计算机—2—技术的发展非常迅速,迫使他放弃了神经网络研究的新途径,继续投身于指令存储式计算机技术的研究,并在此领域作出了巨大贡献。50年代末,F·Rosenblatt设计制作了“感知机”,它是一种多层的神经网络。这项工作首次把人工神经网络的研究从理论探讨付诸工程实践。当时,世界上许多实验室仿效制作感知机,分别应用于文字识别、声音识别、声纳信号识别以及学习记忆问题的研究。然而,这次人工神经网络的研究高潮未能持续很久,许多人陆续放弃了这方面的研究工作,这是因为当时数字计算机的发展处于全盛时期,许多人误以为数字计算机可以解决人工智能、模式识别、专家系统等方面的一切问题,使感知机的工作得不到重视。随着人们对感知机兴趣的衰退,神经网络的研究沉寂了相当长的时间。80年代初期,模拟与数字混合的超大规模集成电路制作技术提高到新的水平,完全付诸实用化,此外,数字计算机的发展在若干应用领域遇到困难。这一背景预示,向人工神经网络寻求出路的时机已经成熟。美国的物理学家Hopfield于1982年和1984年在美国科学院院刊上发表了两篇关于人工神经网络研究的论文,引起了巨大的反响。人们重新认识到神经网络的威力以及付诸应用的现实性。随即,一大批学者和研究人员围绕着Hopfield提出的方法展开了进一步的工作,形成了80年代中期以来人工神经网