logo资料库

基于MATLAB的BP神经网络应用.doc

第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
资料共28页,剩余部分请下载后查看
基于 MATLAB 的 BP 神经网络应用 目 录 1 绪论 ..................................................... 1 1.1 人工神经网络的研究背景和意义 ................................1 1.2 神经网络的发展与研究现状 ....................................2 1.3 神经网络的研究内容和目前存在的问题 ..........................3 1.4 神经网络的应用 ............................................. 4 2 神经网络结构及 BP 神经网络 .................................. 4 2.1 神经元与网络结构 ........................................... 4 2.2 BP 神经网络及其原理 .........................................7 2.3 BP 神经网络的主要功能 .......................................9 2.4 BP 网络的优点以及局限性 .....................................9 3 BP 神经网络在实例中的应用 ..................................10 3.1 基于 MATLAB 的 BP 神经网络工具箱函数 ...................... 10 3.2 BP 网络在函数逼近中的应用 ..................................13 3.3 BP 网络在样本含量估计中的应用 ..............................18 4 结束语 .................................................. 23 参考文献: ................................................. 24 英文摘要 .................................................. 25 致 谢 .................................................. 26
基于 MATLAB 的 BP 神经网络应用 基于 MATLAB 的 BP 神经网络应用 1 绪论 人工神经网络(Artificial Neural Networks,NN)是由大量的、简单的处理单元(称为神经元)广泛地 互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学系 统[1]。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学习能力,特别适合处理需要 同时考虑许多因素和条件的、不精确和模糊的信息处理问题。神经网络的发展与神经科学、数理科学、认 知科学、计算机科学、人工智能、信息科学、控制论、机器人学、微电子学、心理学、微电子学、心理学、 光计算、分子生物学等有关,是一门新兴的边缘交叉学科。 神经网络具有非线性自适应的信息处理能力,克服了传统人工智能方法对于直觉的缺陷,因而在神经 专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用[2]。神经网络与其他传统方法相组 合,将推动人工智能和信息处理技术不断发展。近年来,神经网络在模拟人类认知的道路上更加深入发展, 并与模糊系统、遗传算法、进化机制等组合,形成计算智能,成为人工智能的一个重要方向。 MATLAB 是一种科学与工程计算的高级语言,广泛地运用于包括信号与图像处理,控制系统设计,系 统仿真等诸多领域。为了解决神经网络问题中的研究工作量和编程计算工作量问题,目前工程领域中较为 流行的软件 MATLAB,提供了现成的神经网络工具箱(Neural Network Toolbox,简称 NNbox)[3],为解 决这个矛盾提供了便利条件。神经网络工具箱提供了很多经典的学习算法,使用它能够快速实现对实际问 题的建模求解。在解决实际问题中,应用 MATLAB 语言构造典型神经网络的激活传递函数,编写各种网 络设计与训练的子程序,网络的设计者可以根据需要调用工具箱中有关神经网络的设计训练程序,使自己 能够从烦琐的编程中解脱出来,减轻工程人员的负担,从而提高工作效率。 1.1 人工神经网络的研究背景和意义 人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系 统对真实世界物体所作出的交互反应[5]。 人工神经网络就是模拟人思维的一种方式,是一个非线性动力学系统,其特色在于信息的分布式存储 和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的 行为却是极其丰富多彩的。 近年来通过对人工神经网络的研究,可以看出神经网络的研究目的和意义有以下三点:(1)通过揭示 物理平面与认知平面之间的映射,了解它们相互联系和相互作用的机理,从而揭示思维的本质,探索智能 的本源。(2)争取构造出尽可能与人脑具有相似功能的计算机,即神经网络计算机。(3)研究仿照脑神经 系统的人工神经网络,将在模式识别、组合优化和决策判断等方面取得传统计算机所难以达到的效果。 人工神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法对于直觉,如模式、语音 1
基于 MATLAB 的 BP 神经网络应用 识别、非结构化信息处理方面的缺陷,使之在神经专家系统、模式识别、智能控制、组合优化、预测等领 域得到成功应用。人工神经网络与其它传统方法相结合,将推动人工智能和信息处理技术不断发展。近年 来,人工神经网络正向模拟人类认知的道路上更加深入发展,与模糊系统、遗传算法、进化机制等结合, 形成计算智能,成为人工智能的一个重要方向,将在实际应用中得到发展。将信息几何应用于人工神经网 络的研究,为人工神经网络的理论研究开辟了新的途径。神经计算机的研究发展很快,已有产品进入市场。 光电结合的神经计算机为人工神经网络的发展提供了良好条件。 1.2 神经网络的发展与研究现状 1.2.1 神经网络的发展 神经网络起源于 20 世纪 40 年代,至今发展已半个多世纪,大致分为三个阶段【7】。 1)20 世纪 50 年代-20 世纪 60 年代:第一次研究高潮 自 1943 年 M-P 模型开始,至 20 世纪 60 年代为止,这一段时间可以称为神经网络系统理论发展的初 期阶段。这个时期的主要特点是多种网络的模型的产生与学习算法的确定。 2)20 世纪 60 年代-20 世纪 70 年代:低潮时期 到了 20 世纪 60 年代,人们发现感知器存在一些缺陷,例如,它不能解决异或问题,因而研究工作趋 向低潮。不过仍有不少学者继续对神经网络进行研究。 Grossberg 提出了自适应共振理论;Kohenen 提出了自组织映射;Fukushima 提出了神经认知网络理 论;Anderson 提出了 BSB 模型;Webos 提出了 BP 理论等。这些都是在 20 世纪 70 年代和 20 世纪 80 年 代初进行的工作。 3)20 世纪 80 年代-90 年代:第二次研究高潮 进入 20 世纪 80 年代,神经网络研究进入高潮。这个时期最具有标志性的人物是美国加州工学院的物 理学家 John Hopfield。他于 1982 年和 1984 年在美国科学院院刊上发表了两篇文章,提出了模拟人脑的神 经网络模型,即最著名的 Hopfield 模型。Hopfield 网络是一个互连的非线性动力学网络,它解决问题的方 法是一种反复运算的动态过程,这是符号逻辑处理方式做不具备的性质。20 世纪 80 年代后期到 90 年代初, 神经网络系统理论形成了发展的热点,多种模型、算法和应用被提出,研究经费重新变得充足,使得研究 者们完成了很多有意义的工作。 1.2.2 神经网络的现状 进入 20 世纪 90 年代以来,神经网络由于应用面还不够宽,结果不够精确,存在可信度问题,从而进 入了认识与应用研究期。 1)开发现有模型的应用,并在应用中根据实际运行情况对模型、算法加以改造,以提高网络的训练 速度和运行的准确度。 2)充分发挥两种技术各自的优势是一个有效方法。 2
基于 MATLAB 的 BP 神经网络应用 3)希望在理论上寻找新的突破,建立新的专用/通用模型和算法。 4)进一步对生物神经系统进行研究,不断地丰富对人脑的认识。 1.3 神经网络的研究内容和目前存在的问题 1.3.1 神经网络的研究内容 神经网络的研究内容相当广泛,反映了多科学交叉技术领域的特点。目前,主要的研究工作集中在以 下四方面[6]: (1)生物原型研究:从生理学、心理学、解剖学、脑科学、病理学生物科学方面研究神经细胞、神 经网络、神经系统的生物原型结构及其功能机理。 (2)建立理论模型:根据生物圆形的研究,建立神经元、神经网络的理论模型,其中包括概念模型、 知识模型、物理化学模型、数学模型等。 (3)网络模型与算法研究:在理论模型研究的基础上构成具体的神经网络模型,以实现计算机模拟 或准备制作硬件,包括网络学习算法的研究。这方面的工作也称为技术模型研究。 (4)神经网络应用系统:在网络模型与算法研究的基础上,利用神经网络组成实际的应用系统,例 如,完成某种信号处理或模式识别的功能、构成专家系统、制成机器人等。 1.3.2 神经网络研究目前存在的问题 人工神经网络的发展具有强大的生命力。当前存在的问题是智能水平还不高,许多应用方面的要求还 不能得到很好的满足;网络分析与综合的一些理论性问题还未得到很好的解决。例如,由于训练中稳定性 的要求学习率很小,所以梯度下降法使得训练很忙动量法因为学习率的提高通常比单纯的梯度下降法要 快,但在实际应用中还是很慢[7]。针对千变万化的应用对象,各类复杂的求解问题,编制一些特定的程序、 软件求解,耗费了大量的人力和物力。而这些软件往往只针对某一方面的问题有效,并且在人机接口、用 户友好性等诸多方面存在一定的缺陷。在微机飞速发展的今天,很多都已不能满足发展的需要。 1.4 神经网络的应用 神经网络理论的应用取得了令人瞩目的发展,特别是在人工智能、自动控制、计算机科学、信息处理、 机器人、模式识别、CAD/CAM 等方面都有重大的应用实例。下面列出一些主要应用领域[4]: (1)模式识别和图像处理。印刷体和手写字符识别、语音识别、签字识别、指纹识别、人体病理分 析、目标检测与识别、图像压缩和图像复制等。 (2)控制和优化。化工过程控制、机器人运动控制、家电控制、半导体生产中掺杂控制、石油精炼 优化控制和超大规模集成电路布线设计等。 (3)预报和智能信息管理。股票市场预测、地震预报、有价证券管理、借贷风险分析、IC 卡管理和 3
基于 MATLAB 的 BP 神经网络应用 交通管理。 (4)通信。自适应均衡、回波抵消、路由选择和 ATM 网络中的呼叫接纳识别和控制。 (5)空间科学。空间交汇对接控制、导航信息智能管理、飞行器制导和飞行程序优化管理等。 2 神经网络结构及 BP 神经网络 2.1 神经元与网络结构 人工神经网络(artificial neural network,ANN)是模仿生物神经网络功能的一种经验模型。生物神经 元受到传入的刺激,其反应又从输出端传到相联的其它神经元,输入和输出之间的变换关系一般是非线性 的。神经网络是由若干简单(通常是自适应的)元件及其层次组织,以大规模并行连接方式构造而成的网 络,按照生物神经网络类似的方式处理输入的信息。模仿生物神经网络而建立的人工神经网络,对输入信 号有功能强大的反应和处理能力[9]。 神经网络是由大量的处理单元(神经元)互相连接而成的网络。为了模拟大脑的基本特性,在神经科 学研究的基础上,提出了神经网络的模型。但是,实际上神经网络并没有完全反映大脑的功能,只是对生 物神经网络进行了某种抽象、简化和模拟[8]。神经网络的信息处理通过神经元的互相作用来实现,知识与 信息的存储表现为网络元件互相分布式的物理联系。神经网络的学习和识别取决于各种神经元连接权系数 的动态演化过程。 若干神经元连接成网络,其中的一个神经元可以接受多个输入信号,按照一定的规则转换为输出信号。 由于神经网络中神经元间复杂的连接关系和各神经元传递信号的非线性方式,输入和输出信号间可以构建 出各种各样的关系,因此可以用来作为黑箱模型,表达那些用机理模型还无法精确描述、但输入和输出之 间确实有客观的、确定性的或模糊性的规律。因此,人工神经网络作为经验模型的一种,在化工生产、研 究和开发中得到了越来越多的用途。 2.1.1 生物神经元 人脑大约由 1012 个神经元组成,神经元互相连接成神经网络。神经元是大脑处理信息的基本单元,以 细胞体为主体,由许多向周围延伸的不规则树枝状纤维构成的神经细胞,其形状很像一棵枯树的枝干。它 主要由细胞体、树突、轴突和突触(Synapse,又称神经键)组成。 如图 2.1 所示。 4
基于 MATLAB 的 BP 神经网络应用 图 2.1 生物神经元 从神经元各组成部分的功能来看,信息的处理与传递主要发生在突触附近。当神经元细胞体通过轴突 传到突触前膜的脉冲幅度达到一定强度,即超过其阈值电位后,突触前膜将向突触间隙释放神经传递的化 学物质。 2.1.2 人工神经元 归纳一下生物神经元传递信息的过程:生物神经元是一个多输入、单输出单元。常用的人工神经元模 型可用图 2.2 模拟。 当神经元 j 有多个输入 xi(i=1,2,…,m)和单个输出 yj 时,输入和输出的关系可表示为: 图 2.2 人工神经元(感知器)示意图 s j       1  y  i m j  j xw ij i ( sf  ) j (2.3) 其中 j 为阈值,wij 为从神经元 i 到神经元 j 的连接权重因子,f( )为传递函数,或称激励函数。 2.1.3 人工神经网络的构成 神经元的模型确定之后,一个神经网络的特性及能力主要取决于网络的拓扑结构及学习方法。 神经网络连接的几种基本形式[17]: 1)前向网络 5
基于 MATLAB 的 BP 神经网络应用 前向网络结构如图 2.4 所示,网络中的神经元是分层排列的,每个神经元只与前一层的神经元相连接。 神经元分层排列,分别组成输入层、中间层(也称为隐含层,可以由若干层组成)和输出层。每一层的神 经元只接受来自前一层神经元的输入,后面的层对前面的层没有信号反馈。输入模式经过各层次的顺序传 播,最后在输出层上得到输出。感知器网络和 BP 网络均属于前向网络。 图 2.4 前向网络结构 2)从输出到输入有反馈的前向网络 其结构如图 2.5 所示,输出层对输入层有信息反馈,这种网络可用于存储某种模式序列,如神经认知 机和回归 BP 网络都属于这种类型。 图 2.5 有反馈的前向网络结构 3) 层内互连前向网络 其结构如图 2.6 所示,通过层内神经元的相互结合,可以实现同一层神经元之间的横向抑制或兴奋机 制。这样可以限制每层内可以同时动作的神经元素,或者把每层内的神经元分为若干组,让每一组作为一 个整体进行运作。例如,可利用横向抑制机理把某层内的具有最大输出的神经元挑选出来,从而抑制其他 神经元,使之处于无输出状态。 6
基于 MATLAB 的 BP 神经网络应用 图 2.6 有相互结合的前向网络结构 4) 相互结合型网络 相互结合型网络结构如图 2.7 所示,这种网络在任意两个神经元之间都可能有连接。Hopfield 网络和 Boltzmann 机均属于这种类型。在无反馈的前向网络中,信号一旦通过某神经元,该神经元的处理就结束 了。而在相互结合网络中,信号要在神经元之间反复传递,网络处于一种不断变化状态的动态之中。信号 从某初始状态开始,经过若干次变化,才会达到某种平衡状态。根据网络的结构和神经元的特性,网络的 运行还有可能进入周期振荡或其他如混沌平衡状态。 图 2.7 结合型网络结构 综上,可知神经网络有分层网络、层内连接的分层网络、反馈连接的分层网络、互连网络等四种结构, 其神经网络模型有感知器网络,线性神经网络,BP 神经网络,径向基函数网络,反馈神经网络等,本文 主要学习研究了 BP 神经网络,以及 BP 神经网络在函数逼近和样本含量估计两个实例中的应用分析。 2.2 BP 神经网络及其原理 2.2.1 BP 神经网络定义 BP (Back Propagation)神经网络是一种神经网络学习算法。其由输入层、中间层、输出层组成的阶层 型神经网络,中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络 按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权 值(Weight)。然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到 输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。 7
分享到:
收藏