神经网络在数学建模竞赛中的应用_第1页
神经网络在数学建模竞赛中的应用_第2页
神经网络在数学建模竞赛中的应用_第3页
神经网络在数学建模竞赛中的应用_第4页
神经网络在数学建模竞赛中的应用_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、.wd.wd.wd.第1章 引言1.1 人工神经网络的介绍人工神经网络Artificial Neural Networks, ANN,亦称为神经网络Neural Networks,NN,是由大量的处理单元神经元Neurons广泛互联而成的网络,是对大脑的抽象、简化和模拟,反映人脑的 基本特性.人工神经网络的研究是从人脑的生理构造出发来研究人的智能行为,模拟人脑信息处理的功能.它是根植于神经科学、数学、物理学、计算机科学及工程等科学的一种技术.人工神经网络是由简单的处理单元所组成的大量并行分布的处理机,这种处理机具有储存和应用经念知识的自然特性,它与人脑的相似之处概括两个方面:一是通过学习过程利

2、用神经网络从外部环境中获取知识;二是内部神经元突触权值用来存储获取的知识信息.人工神经网络具有四个 基本特征:1非线性 非线性关系是自然界的普遍特性.大脑的智慧就是一种非线性现象.人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性关系.具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量.2非局限性 一个神经网络通常由多个神经元广泛连接而成.一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定.通过单元之间的大量连接模拟大脑的非局限性.联想记忆是非局限性的典型例子.3非常定性 人工神经网络具有自适应、自组织、自学习能

3、力.神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化.经常采用迭代过程描写动力系统的演化过程.4非凸性 一个系统的演化方向,在一定条件下将取决于某个特定的状态函数.例如能量函数,它的极值相应于系统比较稳定的状态.非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性.人工神经网络是近年来的热点研究领域,涉及到电子科学技术、信息与通讯工程、计算机科学与技术、电器工程、控制科学与技术等诸多学科,其应用领域包括:建模、时间序列分析、模式识别和控制等,并在不断的拓展.本文正是居于数学建模的神经网路应用.人工神经网络开展历史 20世

4、纪40年代中期期,在科学开展史上出现了模拟电子计算机和数字电子计算机两种新的计算工具和一种描述神经网络工作的数学模型.由于电子技术(特别是大规模、超大规模集成电路)的开展,使数字电子计算机作为高科技计算工具已开展到当今盛世地步,而人工神经网络模拟仿真生物神经网络的探索那么经历了半个世纪的曲折开展道路.1.2.1兴起阶段1943年心理学家WSMcCulloch和数学家Pitts首先以数理逻辑的方法研究用人工神经网络模拟、仿真和近似生物神经网络的探索,并提出MP神经元模型.1949年D.OHebb从心理学的角度提出了至今仍对神经网络理论有着重要影响的Hebb学习法那么.50年代末到60年代初,神经

5、网络系统已开场作为人工智能的一条途径而受到人们的重视.1961年ERosenblatt提出了著名的感知机(Perceptron)模型.这个模型由简单的阀值性神经元构成,初步具备了诸如学习性、并行处理、分布存贮等神经网络的一些 基本特征,从而确立了从系统角度进展人工神经网络研究的根基. 1962年Widrow提出了主要适用于自适应系统的自适应线性元件(Adaline)网络.神经网络的研究进入了一个高潮.1.2.2 萧条阶段在整个70年代中,对神经网络理论的研究进展缓慢,原因主要来自于科技界漫不经心的对待和数字计算机飞速开展的冲突,但并没有完全停顿下来.世界上一些对神经网络抱有坚决信心和严肃科学态

6、度的学者们,没有放弃他们的努力.在这期间,Grossberg提出了自适应共振理论(ART);芬兰学者Kohono提出了自组织映射理论(SOM);日本的福岛邦彦提出了认知机(Cognitron)模型,随后又提出了改进至新认知机(Neocognitron)模型;另一位日本学者中野馨提出了联想记忆模型一联想机(Associatron);东京大学的甘利俊一博土那么一直致力于数学理论解释神经网络.70年代末期以来,复杂行为系统理论(如耗散构造、协同学、混吨)的出现,人们认识到人工智能、联想记忆学习算法、信息优化组合处理及杉式识别的重要性,极大地推动了人工神经网络的开展.兴盛阶段进入80年代,特别是80年

7、代末期,神经网络的研究从复兴很快转入了新的热网.主要原因来自两个方面:一方面经过十几年迅速开展起来的以逻辑符号处理为主的人工智能理论和Von Neumann计算机在处理诸如视觉、听觉、形象思维、联想记忆等智能信息处理问题上受到了挫折;另一方面,80年代并行分布处理模式的神经网络本身的研究成果,使人们看到了新的希望.这一时期首先要提到的是美国加州理工学院的物理学家Hopfield的开拓性工作.1982年他提出了一个新的神经网络模型Hopfield网络模型,并首次引入了网络能量函数概念,使网络稳定性研究有了明确的判据.尤其是1986年R Mmelhart和McCelland及其研究小组提出的误差逆

8、传播学习算法,成为至今影响最大的一种网络学习方法.到90年代以后,人工神经网络从理论研究到软件开发、软件实现、各个学科领域广泛应用与相互渗透等诸多方面取得了全面的开展.有关神经网络的国际学术组织纷纷成立,学术会议纷纷召开,学术刊物纷纷创刊.神经网络理论已涉及到了神经生理科学、认识科学、数理科学、心理学、信息科学、计算机科学、微电子学、光学、生物电子学等众多学科,是一门新兴的、综合性的前沿学科.针对不同应用目的的软件开发全面展开,网络计算机的硬件实现方面也取得了一些实实在在的成绩.神经网络的应用,已渗透到模式识别、图像处理、非线性优化、语音处理、自然语言理解、自动目标识别、机器人、专家系统等各个

9、领域,并取得了令人瞩目的成果.总之,以Hopfield教授1982年发表的论文为标志,掀起了神经网络的研究热潮.1987年6月,在美国加州举行了第一届NN国际会议,有一千多名学者参加,并成立了国际NN学会,以后每年召开两次国际联合NN大会IJCNN,其他国际学术会议也都列有NN主题.较有影响的国际刊物有:?IEEE Transaction on Neural Network?和?Neural Network?.美国IBM、AT&T、贝尔实验室、神经计算机公司、各高校、美国政府制定了“神经、信息、行为科学NIBS方案,投资5.5亿美元作为第六代计算机的研究根基;美国科学基金会、海军研究局和空军科

10、学研究部三家投资一千万美元;美国国防部DARPA认为NN“看来是解决机器智能的唯一希望“这是一项比原子弹工程更重要的计术投资四亿美元.主要研究目标:目标识别与追踪、连续语音识别,声纳信号区分.日本的富士通、日本电气、日立、三菱、东芝急起直追.1988年日本提出了所谓的人类尖端科学方案Human Frontier Science Program,即第六代计算机研究方案.法国提出了“尤里卡方案,还有德国的“欧洲防御和前苏联的“高技术开展等等.我国于1989年在北京召开了一个非正式的NN会议;1990年12月在北京召开了中国NN大会;1991年在南京成立中国NN学会,由国内十五个一级学会共同发起“携

11、手探智能,联盟攻大关的863高技术研究方案;自然科学基金、国防科技预研究基金也都列入了NN研究内容.人工神经网络生物神经元模型在人类大脑皮层中大约有100亿个神经元,60万亿个神经突触以及他们的联接体.单个神经元处理一个事件需要秒,而在硅芯片中处理一事件只需秒.但人脑是一个非常高效的构造,大脑中每秒钟每个动作的能量约为焦耳.神经元是 基本的信息处理单元.生物神经元主要由树突、轴突和突触组成.其构造示意如如图1-1所示.其中树突是由细胞体向外伸出的,有不规那么的外表和许多较短的分支.树突突触树突轴突神经末梢细胞膜细胞质细胞核图1-1 生物神经元模型相当于信号的输入端,用于接收神经冲动.轴突由细胞

12、体向外伸出的最长的一条分支,即神经纤维.相当于信号的输出电缆,其端部的许多神经末梢为信号输出端子,用于传出神经冲动.神经元之间通过轴突输出和树突输入相互联接,其接口称为突触.每个细胞约有个突触.神经突触是调整神经元之间相互作用的 基本构造和功能单元,最通常的一种神经突触是化学神经突触,它将得到的电信号化成化学信号,再将化学信号转化成电信号输出.这相当于双接口设备.它能加强兴奋或抑制作用,但两者不能同时发生.细胞膜内外有电位差,越位,称为膜电位.膜外为正,莫内为负.神经元作为信息处理的 基本单元,具有如下重要的功能.可塑性:可塑性反映在新突触的产生和现有的神经突触的调整上,可塑性使适应周围的环境

13、. 2时空整合功能:时间整合功能表现在不同时间、同一突触上;空间整合功能表现在同一时间、不同突触上.3兴奋与抑制状态:当传入冲动的时空整合结果,使细胞膜电位升高,超过被称为动作电位的阀值约为40mv,细胞进入兴奋状态,产生神经冲动,由突触输出;同样,当膜电位低于阀值时,无神经冲动输出,细胞进入抑制状态.4脉冲与电位转换:沿神经纤维传递的电脉冲为等幅、恒宽、编码的离散脉冲信号,而细胞电位变化为连续信号.在突触接口处进展“数/模转换.神经元中的轴突非长和窄,具有电阻高、电压大的特性,因此轴突可以建模成阻容传播电路.5突触的延时和不应期:突触对神经冲动的传递具有延时和不应期,在相邻的二次冲动之间需要

14、一个时间间隔.在此期间对鼓励不响应,不能传递神经冲动.6学习、遗忘和疲劳:突触的传递作用有学习、遗忘和疲劳的过程.1.3.2 人工神经网络的模型人工神经网络是由大量处理单元广泛互连而成的网络,是人脑的抽象、简化、模拟,反映人脑的 基本特性.一般神经元模型应该具备三个要素:1具有一组突触或联接,常用表示神经元和神经元之间的联系强度,或称之为权值.与人脑神经元不同,人工神经元权值的取值可在负值与正值之间.2具有反映生物神经元时空整合功能的输入信号累加器.3具有鼓励函数用于限制神经元输出.鼓励函数将输出信号压缩限制在一个允许范围内,使其成为有限值,通常,神经元输出的扩大范围在或闭区间.一个典型的人工

15、神经元模型如图1-2所示.图1-2 人工神经元模型其中为神经元的输入信号,为突触强度或联接权.是由输入信号线性组合后的输出,是神经元的净收入.为神经元的阀值或称为偏差用表示,为经偏差调整后的值,也称为神经元的局部感应区. 1-1 1-2是鼓励函数,是神经元的输出. 1-3 鼓励函数可取不同的函数,但常用的 基本鼓励函数有以下三种:1阀值函数Threshold Function 1-4该函数通常也称为阶跃函数,常用表示,如图1-3a所示.假设鼓励函数采用阶跃函数,那么图1-2所示的人工神经元模型即为著名的MPMcCulloch-Pitts模型.此时神经元的输出取1或0,反映了神经元的兴奋或抑制.

16、此外,符号函数也常常作为神经元的鼓励函数,如图1-3b所示. 1-5图1-3 a 阀值函数图1-3 b 阀值函数2分段线性函数Piecewise-Linear Function 1-6该函数在-1,+1线性区内的放大系数是一致的,如图1-4所示,这种形式的鼓励函数可看作是非线性放大器的近似,以下是两种情况是分段线性函数的特殊形式:图1-4 分段线性函数1假设在执行中保持线性区域而使其不进入饱和状态,那么会产生线性组合器.2假设线性区域的放大倍数无限大,那么分段线性函数简化为阀值函数.3Sigmoid函数Sigmoid函数也称函数.到目前为止,它是人工神经网络中最常用的鼓励函数.型函数的定义如下

17、: 1-7 其中为Sigmoid函数的斜率参数,通过改变参数,我们会获取不同斜率的Sigmoid函数,如图1-5所示.图1-5 Sigmoid函数但斜率参数接近无穷大时,此函数转化为简单的阀值函数,但Sigmoid函数对应0到1一个连续区域,而阀函数对应的只是0和1亮点,此外Sigmoid函数是可微的,而阀值函数是不可微的.Sigmoid函数也可用双曲正切函数来表示,如图1-6所示. 1-8图1-6 双曲正切函数由式1-8定义的Sigmoid类型鼓励函数所得到的负责具有分析价值.人工神经网络的分类及学习规那么前面介绍人工神经元模型,将大量的神经元进展连接可构成人工神经网络.神经网络中神经元的联

18、结方式与用于训练网络的学习算法是严密结合的,可以认为应用于神经网络设计中的学习算法是被构造化了的.人工神经网络的分类本文将网络构造和学习算法相结合,对人工神经网络进展分类.单层前向网络所谓单层前向网络是指拥有的计算节点神经元是“单层的,如图1-7所示.这里原节点个数的“输入层看作一层神经元,因为该“输入层不具有执行计算的功能.后面介绍的单层感知器属于单层前向网络.多层前向网络多层前向网络和单层前向网络的区别在于:多层前向网络含有一个或多个的隐含层,其中计算节点被相应地称为隐含神经元或隐含单元,如图1-8所示.图1-8所示的多层前向网络由含有10个神经元输入层、含有4个神经元隐含层和2个神经元输

19、出层所组成.网络输入层中的每个源节点的鼓励模式输入向量单元组成了应用于第二层如第一隐层中神经元计算节点的输入信号,第二层输出信号成为第三层的输入,其余层类似.网络每一层的神经元只含有作为它们输入前一层的输出信号,网络输出层终止层神经元的输出信号组成了对网络中输入层起始层源节点产生的鼓励模式的全部响应.即信号从输入层输入,经隐含层传给输出层,由输出层得到输出信号.图1-7 单层前向网络图1-8 多层前向网络通过参加一个或更多的隐层,使网络能提取出更高的统计,尤其当输入层规模庞大时,隐神经元提取高序统计数据的能力便显得格外重要.后面我们介绍的多层感知器属于多层前向网络.反响网络所谓反响网络是指在网

20、络中至少含有一个反响回路的神经网络.反响网络可以包含一个单层神经元,其中每个神经元将自身的输出信号反响给其他所以神经元的输入,如图1-9所示,图中所示的网络即为著名的Hopfied网络.图1-10所示的是另一类型的含有隐层的反响网络,图中的反响联结起始于隐神经元和输出神经元.图1-9和图1-10所示的网络构造中没有自反响回路.自反响是指一个神经元的输出反响至其输入,含有自反响的网络也属于反响网络.图1-9 无自反响和隐含层的反响网络图1-10 含有隐含层的反响网络此外,常见的人工神经网络该有竞争神经网络和随机神经网络,在这里就不详加探讨.1.4.2 神经网络的学习神经网络的学习也称为训练,它是

21、通过向环境学习而获取知识并改进自身性能,是NN的一个重要特点.一般情况下,性能的改善是按某种预定的度量通过调节自身参数如权值逐步到达的,学习方式按环境所提供信息的多少分有三种.监视学习有教师学习这种学习方式需要外界存在一个“教师,他可对一组给定输入提供应有的输出结果正确答案.这组的输入输出数据称为训练样本集.学习系统NN可根据的输出与实际输出之间的差值误差信号来调节系统参数.如图1-11所示.图1-11 监视学习框图非监视学习无教师学习非监视学习时不存在外部教师,学习系统完全按照环境所提供数据的某些统计规律来调节自身参数或构造这是一种自组织过程,一表示外部输入的某种固有特征如聚类,或某种统计上

22、的分布特征.如图1-12所示.图1-12 非监视学习框图再励学习或强化学习这种学习介于上述两种情况之间,外部环境对系统输出结果只给出评价奖或罚而不给出正确答案,学习系统通过强化那些受奖励的动作来改善自身特性.图1-13 再励学习框图下面介绍 基本的神经网络学习算法.1. 纠错学习首先我们考虑一个简单的情况在:设某神经网络的输出层只有一个神经元,给该神经网格上输入,这样就产生输出,称该输出为实际输出.对于所加上的输入,我们期望该神经网络的输出,称为期望输出或目标输出.实际输出与期望输出之间存在着误差,用表示. 1-9现在要调整突触权值,使误差信号减少.为此,可设定代价函数或性能指数: 1-10反

23、复调整突触权值使代价函数到达最小或使系统到达一个稳定状态即突触权值稳定,就完成了学习过程.该学习过程称为纠错学习,也称为Delta规那么或者WindrowHoff规那么.表示神经元到的突触权值,在学习步骤为时对突触权值的调整为 1-11为学习速率参数.式1-11说明:对神经元突触权值的调整与突触信号和输入信号成正比例.纠错学习实际上是局部的,Delta规那么所规定的突触调整局限于神经元的周围.得到之后,定义突触权值的校正值为 (1-12)和可以分别看做突触权值的旧值和新值. 2. Hebb学习神经心里学家Hebb提出学习规那么可归结为“当某一突触连接两端的神经元的激活同步同为激活或同为抑制时,

24、该连接的强度应增强,反之应减弱.用数学方式可描述为 1-13式中,分别为两端的神经元的状态,其中最常用的一种情况为 1-14由于与,的相关成比例,有时称之为相关学习规那么. 3. 竞争学习顾名思义,在竞争中学习时网络各输出单元相互竞争,最后到达只有一个最强者激活.最常见的一种情况是输出神经元之间有侧向抑制性连接,这样众多输出单元中如有某一单元较强,那么它将获胜并抑制其他单元,最后只有比较强者处于激活状态.最常用的竞争学习规那么可写为 1-15此外,还有两个 基本的神经网络学习规那么,即基于记忆的学习和随机学习算法.在此不详加讨论.三种神经网络模型及其MATLB仿真算法单层前向网络模型及其仿真算

25、法2.1.1 感知器的概念感知器Perceptron是美国心理学家Rosenblatt于1957年提出来的,它是最 基本的但具有学习功能的层状网络Layed Network.最初的感知器由三层组成,即SSensory层、AAssociation层和RResponse层,如图3-1所示.S层和A层之间的耦合是固定的,只有A层和R层之间的耦合程度即权值可通过学习改变.假设在感知器的A层和R层加上一层或多层隐单元,那么构成的多层感知器具有很强的处理功能,假设感知器隐层的节点可根据需要自由设置,那么用三层不包括S层的阈值网络可以实现任意的二值逻辑函数.应注意,感知器学习方法在函数不是线性可分时得不出任

26、何结果,另外也不能推广到一般前向网络中去.其主要原因是转移函数为阈值函数,为此,人们用可微函数如Sigmoid函数来代替阈值函数,然后采用梯度算法来修正权值.BP网络就是采用这种算法的典型网络.图2-1图2-22.1.2 单层感知器单层感知器是指包含一个突触权值可调的神经元的感知器模型,它的训练算法是Rosenblatt在1958年提出来的.感知器是神经网络用来进展模式识别的一种最简单模型,但是由单个神经元组成的单层感知器只能用来实现线性可分的两类模式的识别. 单层感知器模型如图1-2所示,它包括一个线性累加器和一个二值阀值元件,同时还有一个外部偏差.当二值阀值元件的输入是正数,神经元就输出+

27、1,反之其输入是负数,那么产生输出-1.即 2-1 2-22.1.3 单层感知器神经网络的学习感知器权值的学习是通过给定的教师信号即希望的输出按学习规那么,即式2-3进展的: 2-3式中,为当前的权值矩阵;为教师信号;为控制权值修正速度的常数;为感知器的输出值;即2-4由于感知器一般用于线性可分样本的分类,激发函数选为阈值型函数,因而当式2-1-4中的时,该式可写成2-5权值的初值一般取较小的非零随机数.线性神经网络线性神经网络同感知器相似,是最简单的一种神经元络,同感知器不同的是,在MATLAB中,线性神经网络输出的激发函数为线性函数purelin,而感知器模型的激发函数为符号函数hardl

28、im,因此感知器模型中只可取0或者1,而线性神经网络输出的数值可以是任意数值,这一点也决定了线性神经网络同感知器应用范围的不同.本节将简单介绍线性神经网络的原理,通过实例演示MATLAB神经网络工具箱线性神经网络涉及函数,并讲解线性神经网络的应用.2.2.1 线性神经网络原理性神经网络由多个线性神经元模型构成,单个线性神经元模型的构造可以参考图2-3.线性网格的激发函数为线性purelin函数,其输出可以为任意值.图2-3 单线性神经元模型构造当输入向量为的个数为N,单线性神经元同样由输入系数和阀值.当感知器神经元模型中包含多个神经元时,只需要将多个线性神经元串联,并形成网格拓扑机构,同时对应

29、于个神经元输出,那么第个神经元的输出为 2-6感知器的输出函数由线性传递函数使用purelin函数实现.第个神经元经过线性传递函数后的输出为 2-7在MATLAB命令窗口输入:x=-5:0.01:5;y=purelin(x);plot(x,y) 运行程序后得到线性神经元purelin函数曲线如图2-4所示.图2-4 线性神经元purelin函数曲线线性神经网络相关的MATLAB函数MATLAB神经网络工具箱提供了一系列函数进展线性神经网络的设计和分析,下面主要分别介绍线性神经网络构建函数newlin、线性神经网络设计函数newlind.线性神经网络构建函数newlinnewlin函数的调用格式

30、如下:net=nelin(PR,S,ID,LR)其中,PR为的输入向量最大最小值构成的矩阵,S为输出向量的个数,ID为输入延迟向量,LP为学习速率,学习速率可以使用maxlinlr函数进展计算,通过学习速率越大,网络训练时间越短,但同时也导致学习过程不稳定.如果P为训练样本数据,那么maxlinlrP返回一个不带阀值的线性层所需要的最大学习率,而maxlinlrP,bias返回一个带阀值的线性层所需要的最大学习率.2. 线性层设计函数newlind函数在MATLAB神经网路工具箱中,还可以使用newlind设计一个线性层,其调用格式如下:net=newlind(P,T,Pi)其中P、T分别是训

31、练样本的输入矩阵和目标输出向量,Pi是初始输入延时cell向量.多层前向神经网络模型及BP学习算法前面我们介绍了单层感知器,它的缺点是只能解决线性可分问题,要增强网络的分类能力唯一的方法是采用多层网络,即在输入与输出之间加上隐含层,从而构成多层感知器Multilayer Perceptrons,MLP.这种由输入层、隐含层一层或者多层和输出层构成的神经网络称为多层前向神经网络.本节将介绍两个常见的多层前向网络:多层感知器和径向基函数神经网络,详细介绍多层感知器的学习算法著名的误差反向传播算法BP算法及其改进算法.BP算法训练的神经网络,称之为BP神经网络.在人工神经网络的实际应用中,BP网络广

32、泛应用于函数逼近、模式识别/分类、数据压缩等,的人工神经网络模型采用BP网络或它的变化形式,它也是前馈网络的核心局部,表达了人工神经网络最精华的局部.所以,本节也会重点探讨BP神经网络的应用.多层感知器多层感知器是单层感知器的推广,但是它能够解决单层感知器所不能解决的非线性可分问题.多层感知器由输入层、隐含层和输出层组成,其中隐含层可以是一层或多层.其拓扑构造如图2-5所示.图2-5 多层感知器模型输入层神经元的个数为输入信号的维数,隐含层个数以及隐节点的个数视具体情况而定,输出神经元的个数为输出信号的维数.多层感知器同单层感知器比具有四个明显的特点:1除了输入输出层,多层感知器含有一层或者多

33、层隐单元,隐单元从输入模式中提取更多有用的信息,使网络可以完成更复杂的任务.2多层感知器中每个神经元的鼓励函数是可微的Sigmoid函数,如 2-8式中是第个神经元的输入信号,是该神经元的输出信号.3多层感知器具有独特的多个突触使得网络更具有连通性,联接域的变化或权值的变化都会引起连通性的变化.4多层感知器具有独特的学习算法BP算法,所以多层感知器也常常称之为BP网络.多层感知器的这些特点,使它具有强大的计算能力.多层感知器是目前应用最广泛的一种神经网络.BP学习算法20世纪80年代中期,美国加利福尼亚的PDPparallel distributed procession小组于1986年发表了

34、Parallel Distributed Procession一书,该书的出版对BP算法产生了重要的影响.BP算法解决了多层感知器的学习问题,促进了神经网络的开展.BP学习过程的描述1工作信号的传播:输入信号从输入层经隐单元,传向输出层,在传出端产生输出信号,这是工作信号的正向传播.在信号的向前传递过程中网络的权值是固定不变的,每一层神经元的状态只影响下一层神经元的状态.如果在输出层不能得到期望的输出,那么输入误差信号反向传播.2误差信号反向传播:网络的实际输出与期望输出之间的差值即为误差信号,误差信号由输出端开场逐层向前传播,这是误差信号是反向传播.在传播的过程中,网络的权值由误差反响进展调

35、节.通过权值的不断修正使网络的实际输出更接近期望输出.图2-6 工作信号正向传播,误差信号反向传播图2-6为多层感知器的一局部,其中有两种信号:一是工作信号,工作信号正向传播;二是误差信号,误差信号反向传播.下面以含有两个隐层的BP网络为例,如图2-7所示,具体推导BP算法.图2-7 含有二个隐含层的BP网络设输入层位,即有个输入信号,其中的任一输入信号用表示:第1隐层为,即有个神经元,其中的任何一个神经元用表示;第二层为,即有个神经元,其中任一神经元用表示,输出层为,即有个输出神经元,其中任一神经元用表示.输入层与第一隐层的突触权值用表示;第1隐层与第2隐层的突触权值用表示;第2隐层与输出层

36、用的突触权值用表示.神经元的输入用表示,鼓励输出用表示,的上标表示层,下标表示层中的某个神经元,如A表示层即第1层的第个神经元输入.设所有的神经元的鼓励函数均用Sigmoid函数.设训练样本集为,对应任一训练样本,的实际输出为,期望输出为.设n为迭代次数,权值和实际输出是n的函数.网络输入训练样本,由工作信号的正向传播可得:输出层第个神经元的误差信号为定义神经元的误差能量为,那么输出层所有神经元的误差能量总和为: 2-9误差信号从后向前传递,在反向传播的过程中,逐层修改联接权值.下面计算误差信号的反向传播过程:1隐层与输出层之间的权值修正量.BP算法中权值的修正量与误差绝对值的偏微分成正比,即

37、:因为又,那么设局部梯度2-10当鼓励函数为逻辑函数,即从而有那么 2-11 根据Delta学习规那么,的修正量为 2-12式中,是学习步长,可由式2-11求得,可由正向传播求得.那么下一次的迭代时隐层上任一节点与输出层上任一节点之间的权值为 2-132隐层与隐层之间的权值修正量: 2-14与式2-14相类似,局部梯度为 2-15因为 2-16又 那么 2-17由式2-15和式2-17得将式2-10代入上式得 2-18式中可由式2-11求得,.为隐含层与输出层任一节点之间的权值,已由式2-13求得.所以 2-19那么下一次迭代时,隐层上任一节点与隐层上任一节点之间的权值为 2-203与隐层和隐

38、层之间的权值修正量的推导方法一样,输入层上任一节点与隐层任一节点之间权值的修正量为 2-21其中 2-22式中可由式3-17求出,.为隐层与隐层之间任一节点之间的权值,已由式2-20求得.那么下一次迭代时,输入层上任一节点与隐层上任一节点之间的权值为 2-232.3.3 BP网络的MATLAB仿真程序设计的 基本方法 BP网络设计主要包括输入层、隐层、输出层及各层之间的传输函数几个方面.网络层数大多数通用的神经网络都预先确定了网络的层数,而BP网络可以包括不同的隐层.但理论上已经证明,在不限隐层节点数的情况下,两层只有一个隐层的BP网络可以实现任意非线性映射.在模式样本相对较少的情况下,较少的

39、隐层节点,可以实现模式样本空间的超平面划分,此时,选择两层BP网络就可以了;当模式样本数很多时,减少网络规模,增加一个隐层是必要的,但BP网络隐层数一般不超过两层.输入层的节点数输入层起缓冲存储器的作用,它接收外部的输入数据,因此其节点数取决于输入矢量的维数.比方,当把大小的图像作为输入数据时,输入节点数将为1024个.输出层的节点数输出层的节点数取决于两个方面,输出数据类型和表示该类型所需要的数据大小.当BP网络用于模式分类时,以二进制形式来表示不同模式的输出结果,那么输出层的节点数可根据待分类模式数来确定.假设设待分类模式的总数为,那么有两种方法确定输出层的节点数:节点数即为待分类模式总数

40、,此时对应第个待分类模式的输出为即第个节点输出为1,其余为0.而以输出全为0表示拒识,即所输入的模式不属于待分类模式中的任一种模式.节点数为个.这种输出方式是种输出模式的二进制编码.隐层的节点数一个具有无限隐层节点的两层BP网络可以实现任意从输入到输出的非线性映射.但对于有限个输入模式到输出模式的映射,并不需要无限个隐层节点,这就涉及到如何选择隐层节点数的问题,而这一问题的复杂性,即到至今为止,尚未找到一个很好的解析式,隐层节点数往往根据前人设计所得的经历和自己进展试验来确定.一般认为,隐层节点数与求解问题的要求、输出单元多少都有直接的联系.另外,隐层节点数太多会导致学习时间过长;而节点数太少

41、,容差性差,识别未经学习的样本能力低,所以必须综合多方面因素进展时设计.传输函数通常采用型函数:在某些特定情况下,还可能采用纯线性函数.如果BP网络最后一层是函数,那么整个函数的输出就限制在一个较小的范围内之间的任意连续量;如果BP网络的最后一层是纯线性函数,那么整个网络的输出可以是任意值. 创立和训练BP的MATLAB程序如下:clear all%定义输入向量和目标向量p=1 2;-1 1;-2 1;4 0;t=0.2 0.8 0.8 0.2;%创立BP网络和定义训练函数及参数net=newff(-1 1;-1 1,5 1,logsig logsig,taingd);net.trainPar

42、am.goal=0.001;net.trainParam.epochs=5000;%训练神经网络net,tr=train(net,p,t);%输出训练后的权值和阀值iw1=net.IW1b1=net.b1lw2=net.LW2b2=net.b2神经网络在数学建模中的应用3.1神经网络算法在非线性方程与微分方程方面的应用3.1.1 非线性函数的逼近使用神经网络逼近非线性函数,绘制非线性函数,并产生网络训练数据点.解:非线性神经网络的输出函数为非线性传递函数purelin,其输出可以为任意数值,因此非线性神经网络应用范围非常广泛,可以应用于非线性系统拟合、函数逼近、系统识别等方面.%matlab程

43、序x=-2:.01:1;y=2*x.6+3*x.5+3*x.3-2*x.2;p=x(1:15:end);t=y(1:15:end);plot(x,y,p,t,ko)legend(逼近函数,网络训练点)其中,数据作为线性神经网络的训练数据点集,程序运行结果如图3-1所示.使用newlind函数训练线性神经网络:q=length(y);r=zeros(6,q);r(1,2:q)=y(1,1:(q-1);r(2,3:q)=y(1,1:(q-2);r(3,4:q)=y(1,1:(q-3);r(4,5:q)=y(1,1:(q-4);r(5,6:q)=y(1,1:(q-5);r(6,7:q)=y(1,1:

44、(q-6);net=newlind(r,y);a=sim(net,r);figureplot(x,y,x,a,k-o)legend(给定输入信号,网络输出信号)运行结果如图3-1所示.图3-1 非线性逼近函数和网络训练图3-2 线性神经网络非线性曲线逼近结果3.1.2线性神经网络逼近函数使用newlin函数构建线性神经网络逼近函数:首先,产生输入训练样本和训练目标样本.%matlab程序time1=0:.01:2;time2=2:.01:4;time3=4:.01:6;time=time1 time2 time3;t=cos(time1*pi) cos(time2*3*pi) cos(time

45、3*5*pi);t=con2seq(t); %将向量转化为序列cell向量p=t; %输出向量等于给定输出向量使用newlin函数构建线性神经网络,并使用adapt函数训练网络.lr=0.1;delays=1 2 3 4 5 6;net=newlin(minmax(cat(2,p:),1,delays,lr);net,a,e=adapt(net,p,t);绘制网格输出信号和给定信号以及残差信号曲线.plot(time,cat(2,p:),time,cat(2,a:),k-o)legend(给定输入信号,网格输出信号)figureplot(time,cat(2,e:)title(误差曲线) 结果

46、如图3-3和图3-4所示.图3-3 使用newlin函数进展逼近效果曲线图3-4 newlin函数逼近的误差图下面使用实例演示newlind函数的使用.首先,产生输入训练样本和训练目标样本.%matlab程序time1=0:.01:2;time2=2:.01:4;time3=4:.01:6;time=time1 time2 time3;t=cos(time1*pi) cos(time2*3*pi) cos(time3*5*pi);q=length(t);p=zeros(6,q);p(1,2:q)=t(1,1:(q-1);p(2,3:q)=t(1,1:(q-2);p(3,4:q)=t(1,1:(

47、q-3);p(4,5:q)=t(1,1:(q-4);p(5,6:q)=t(1,1:(q-5);p(6,7:q)=t(1,1:(q-6);使用newlind函数设计线性层.net=newlind(p,t);a=sim(net,p);plot(time,t,time,a,k-o)legend(给定输入信号,网络输出信号)figureplot(time,a-t)title(误差曲线) 线性层网络函数逼近效果如图3-5和图3-6所示.图3-5线性层设计函数newlind函数逼近效果图3-6线性层设计函数newlind函数逼近误差图3.1.3基于神经网络定积分计算模型人工神经网络的主要特点是其非线性映射

48、能力,这种能力使得神经网络能够逼近任何给定的连续函数.从应用的角度来看,一个人工神经网络是根据某种“目标而构造的,这样的目标一般情形下是一个多元或一元函数,称之为“目标函数,可通过对权值的学习,使得目标函数尽可能逼近于人们理想中目标函数.基于这些思想,提出了一种基于积分定义的神经网络模型.现我们来确定学习训练样本数据,首先对训练样本数据作预处理:假设被积在区间上有种分法,其中划分为:,令,其中:,那么学习训练样本数据集为,其中为积分的准确值.那么,基于积分定义的神经网络求解数值积分模型如图3-7所示.图3-7 求解数值积分模型其中为神经网络权值,设神经网络的权值矩阵为:,其中,;鼓励函数为恒等

49、函数,阀值取0,那么该网络输出定义误差代价函数:,其中为训练样本点数,为被积函数.设误差矩阵为,那么有性能指标:为Euclidean范式的平方.根据梯度下降法学习规那么,故权值调整公式如下:其中为学习效率,且.基于神经网络的定积分学习算法神经网络学习的目标就是对权值的学习,参照一般神经网络的学习过程,那么,神经网络求积分的学习步骤如下:step1 获取神经网络训练样本集:;随机产生网络权值,;给定误差精度;令.step2 计算网络输出:step3 计算误差函数:step4 计算性能指标:step5 计算学习率:step6 权值调整:step7 如果样本集未训练完,返回step2重复上述步骤;否

50、那么,判断性能指标是否,如果是,令,返回step2重复上述步骤,否那么,完毕网格训练,输出网格权值:.如求解定积分,准确到8位有效数字.MATLAB编程实现:%定积分函数function y=f(x)y=exp(x).*cos(100.*x);clc;format longa=0;b=pi; %a,b为积分区间tol=0.00000001; %tol为准确度J=2*tol;m=20; %将区间a,b分为m+1个不等距的区间p=6.389; %p为定积分的准确值n=50; %n为训练样本个数X=zeros(m+1,n);x=zeros(m,n);c=zeros(m,n);w=zeros(m,n)

51、;X(1,:)=a;X(m+1,:)=b;for i=1:nX(2,i)=a+0.1*rand;X(m,i)=b-0.1*rand;endfor i=3:(m-1)for j=1:nX(i,j)=X(2,j)+(X(m,j)-X(2,j)*rand;endendX=sort(X);for i=1:mfor j=1:nx(i,j)=X(i+1,j)-X(i,j);endendx;for i=1:mfor j=1:nc(i,j)=X(i,j)+x(i,j)*rand;endendc;epoch=0;TT=;while JtolJ=0;epoch=epoch+1;for k=1:nt=x(:,k);

52、w=f(c(:,k); %w为网络权值y=w*t;EK=p-y;u=1./(abs(t*(df(c(:,k)2; %学习率u的取值c(:,k)=c(:,k)+u*(p-y)*t*(df(c(:,k);J=J+sum(EK.2)/2;endTT(epoch)=J;Jif J0; %求感知器阈值激发后的输出,F表示式2-5中的y(k) F(1,i)=1; else,F(1,i)=0; end end %一次分类循环完毕 if all(F=T) %感知器的输出F和目标T不等时修正权值阵和阈值 break enddW=(T-F)*X;E=0.01;0.01;0.0;0.0;0.01;0.01;0.01

53、;0.01; %dC=0.1*(T-F)*E,表示阈值不修正W=W+dW; Wz(:,j)=W; %存储分类过程中的动态权值%C=C+dC; %表示阈值不修正Y=W*X+C;end %循环完毕Wz %打印分类过程中的动态权值 %开场绘图plotpv(X,T); %绘点plotpc(W,C); %绘分割线grid onxlabel(x1),ylabel(x2) 2感知器分类结果如图3-12所示.图3-12 例2-1单神经元感知器分类结果图中,“o代表目标向量中的“0,“+代表目标向量中的“1,横轴x1表示样本,纵轴x2表示样本.感知器的参数.感知器的权值矩阵初值Wc、阈值初值C和分类过程中的动态

54、权值矩阵Wz如下:Wc = -0.1000 0.2000C = 0.9003Wz =0.7000 1.5000 1.7000 2.2000 2.4000 2.6000 2.8000 3.3000 3.5000 3.7000 4.2000 3.9000 4.4000 4.1000 从程序看,分类循环次数M设置为20次;从打印出的分类过程中的动态权值矩阵Wz来看,Wz只有5组权值,说明程序之循环了5次就满足了分类的误差要求:4程序分析. 在程序中权值矩阵的初值Wc和阈值初值可以分别采用W=rands(S,R);Wc=W 和C=rands(S,1)产生随机数,也可以直接设置随机小数.程序中Wc采用置

55、随机小数,而阈值初值C采用产生随机数指令实现.如果Wc和C均采用rands指令产生随机数实现,也可以得到类似图3-6所示的分类结果,读者不妨一试. 本例的样本为随机数,无量纲,无规律.目标向量正好与样本巧合,才得到了图3-6所示的分类结果.如果目标向量随机给定,如,那么该程序无法分类,相当于对线性不可分的样本分类,单神经元感知器无能为力如例2-2.样本矩阵同上例,随机目标向量T=1,0,0,1,0,1,0,0.解 clearX=-0.5,-0.5,0.3,0.1,-0.1,0.8,0.2,0.3;0.3,-0.2,-0.6,0.1,-0.5,1.0,0.3,0.9;T=1,0,0,1,0,1,

56、0,0;M=20;R,Q=size(X); %R=2;Q=8为X矩阵的维数S,Q=size(T); %S=1;Q=8为T矩阵的维数%W=rands(S,R); %根据输入样本X和目标向量T的维数产生随机权值阵W%初值W=-0.1 0.2;Wc=W %打印权值的初值C=rands(S,1); %产生随机阈值初值C %打印随机产生的阈值初值Y=W*X+C; %计算感知器输出for j=1:M %循环开场 for i=1:8 %对感知器输出分类 if Y(1,i)0; %求感知器阈值激发后的输出,F表示式3-8)中的y(k) F(1,i)=1; else,F(1,i)=0; end end %一次分

57、类循环完毕 if all(F=T) %感知器的输出F和目标T不等时修正权值阵和阈值 break enddW=(T-F)*X;E=0.01;0.01;0.0;0.0;0.01;0.01;0.01;0.01; %dC=0.1*(T-F)*E,表示阈值不修正W=W+dW; Wz(:,j)=W; %存储分类过程中的动态权值%C=C+dC; %表示阈值不修正Y=W*X+C;end %循环完毕Wz %打印分类过程中的动态权值 %开场绘图plotpv(X,T); %绘点plotpc(W,C); %绘分割线grid onxlabel(x1),ylabel(x2) 2感知器分不开类的结果如图3-13所示.图3-

58、13 感知器分不开类的结果3感知器的参数.感知器的权值矩阵初值Wc、阈值初值C和分类过程中的动态权值矩阵Wz如下:Wc = -0.1000 0.2000C = -0.5377Wz = 0.3000 -0.6000 0 -0.7000 -0.3000 -0.5000 -0.7000 -0.3000 -0.5000 -0.4000 -0.6000 -0.2000由图2-4可知,随机目标向量与样本规律不同,单神经元感知器不能分类.如过输入样本具有物理量纲,并对样本从小到大或从大到小排列,目标向量要符合样本的排列规律,即使目标向量在一定范围内变化,那么分类问题无疑可实现.3.4.2 蠓虫分类问题生物学

59、家试图对两类蠓虫与进展鉴别,依据的资料是蠓虫的触角和翅膀的长度,已经测得9只和6只的数据,(触角长度用表示,翅膀长度用表示)具体数据为:;现需要解决二个问题:1如何凭借原始资料(15 对数据,被称之为学习样本)制定一种方法,正确区分两类蠓虫;2依据确立的方法,对题目提供的三个样本:(1.24,1.80),(1.28,1.84),(1.40,2.04)加以识别.解:我们使用神经网络来实现分类蠓虫问题首先,输入训练样本、训练目标样本及测试样本:%输入向量p=1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56 1.14 1.18 1.20 1.26 1.28 1

60、.30;1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08 1.78 1.96 1.86 2.00 2.00 1.96;%输出向量t=1 1 1 1 1 1 1 1 1 0 0 0 0 0 0;s=1.24 1.28 1.40;1.80 1.84 2.04; 使用newff函数建设BP神经网络,并且使用训练样本数据训练网络:net=newff(minmax(p),5,1,logsig,purelin,traingdx);net.trainParam.show=50;net.trainParam.lr=0.1;net.trainParam.lr_inc=1.

温馨提示

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

最新文档

评论

0/150

提交评论