基于C语言的BP神经网络预测程序开发_第1页
基于C语言的BP神经网络预测程序开发_第2页
基于C语言的BP神经网络预测程序开发_第3页
基于C语言的BP神经网络预测程序开发_第4页
基于C语言的BP神经网络预测程序开发_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、本科学生毕业设计基于c语言的bp神经网络预测程序开发 系部名称: 汽车与交通工程学院 专业班级: 车辆0711班 学生姓名: 高小林 指导教师: 王悦新 职 称: 实验师 黑 龙 江 工 程 学 院二一一年六月the graduation design for bachelors degree development on bp neural network prediction program based on c languagecandidate:gao xiaolinspecialty:vehicles engineeringclass:07-11supervisor:lecturer

2、 wang yuexinheilongjiang institute of technology2011-06harbin摘要 人工神经网络理论是新近发展起来的交叉学科,采用物理器件或计算机软硬件模拟生物体中神经细胞的某些结构与功能,进而将其应用于工程领域,尤其适合高度复杂的非线性动力学系统仿真。人工神经网络已经在组合优化、模式识别、图象处理、自动控制、信号处理、机器人和人工智能等领域得到广泛应用,尤其在工程领域逐渐受到广泛重视。人工神经网络用于非线性动力学系统研究,近来在汽车动力学建模与仿真领域也引起了极大关注。 许多工业生产过程存在时滞和大时间常数, 控制难度较大, 传统的控制策略对此类控

3、制问题很难取得满意的效果。为了解决这类问题, 预测控制应运而生。预测控制是一种基于模型的控制策略。反向传播(bp) 神经网络是当前应用最为广泛的一种神经网络, 它结构简单, 工作状态稳定, 并且已有大量提高网络训练速度的改进算法。关键字:bp神经网络;应用;c语言;汽车保有量;预测abstractartificial neural network theory is newly developed the interdisciplinary, adopting physical device or computer hardware and software simulation of the

4、 nerve cells in biological structure and function, and then some of its application in engineering field, especially suitable for highly complex nonlinear dynamic system simulation. artificial neural network has been in the combinatorial optimization, pattern recognition, image processing, automatic

5、 control, signal processing, robot, and artificial intelligence and other areas to be widely applied, especially in engineering areas has been gradually paid more attention . artificial neural network for nonlinear dynamic system research in automotive dynamics, recently modeling and simulation fiel

6、d also get great attention.many industrial production process exist time delay and large time constant, bigger control difficulty, traditional control strategies on such controlling problems is difficult to obtain satisfactory results. in order to solve this kind of problem, predictive control arise

7、s at the historic moment. predictive control is a model based control strategy. back propagation (bp) neural network is currently the most widely used neural network, it is simple in structure, work, and a large number of stable status network algorithm are proposed to increase training speed. key w

8、ords: bp neural network;application;c language;auto possession;prediction目录摘要iabstractii第1章 绪论11.1 人工神经网络的发展历史11.2 人工神经网络的特性21.3 bp神经网络3第2章 神经网络预测基本原理52.1 生物神经元模型52.2 人工神经元模型62.3 人工神经网络模型102.4 人工神经网络的学习112.5 本章小结12第3章 bp神经网络结构及数学模型133.1 bp神经网络结构133.2 bp神经元143.3 bp网络153.3.1 正向传播153.3.2 反向传播163.4 本章小结

9、18第4章 bp网络的自学习与预测编程194.1 bp网络的学习与预测神经编程194.2 输入模式顺传播194.3 输出误差的逆传播214.4 循环记忆训练244.5 学习结果的判别274.6 对数据的预测程序编写324.7 本章小结36第五章 bp神经网络在汽车保有量预测中的应用375.1汽车保有量预测的意义375.2基于bp神经网络的汽车保有量预测模型375.2.1汽车保有量主要影响因素分析375.2.2汽车保有量预测模型375.2.3实例分析385.3 本章小结43结论44参考文献45致谢46附录47第1章 绪 论1.1 人工神经网络的发展历史人工神经网络早期的研究工作应追溯至本世纪40

10、年代。下面以时间顺序,以著名的人物或某一方面突出的研究成果为线索,简要介绍人工神经网络的发展历史。 1943年,心理学家wmcculloch和数理逻辑学家wpitts在分析、总结神经元基本特性的基础上首先提出神经元的数学模型。此模型沿用至今,并且直接影响着这一领域研究的进展。因而,他们两人可称为人工神经网络研究的先驱。 1945年冯诺依曼领导的设计小组试制成功存储程序式电子计算机,标志着电子计算机时代的开始。1948年,他在研究工作中比较了人脑结构与存储程序式计算机的根本区别,提出了以简单神经元构成的再生自动机网络结构。但是,由于指令存储式计算机技术的发展非常迅速,迫使他放弃了神经网络研究的新

11、途径,继续投身于指令存储式计算机技术的研究,并在此领域作出了巨大贡献。虽然,冯诺依曼的名字是与普通计算机联系在一起的,但他也是人工神经网络研究的先驱之一。 50年代末,frosenblatt设计制作了“感知机”,它是一种多层的神经网络。这项工作首次把人工神经网络的研究从理论探讨付诸工程实践。当时,世界上许多实验室仿效制作感知机,分别应用于文字识别、声音识别、声纳信号识别以及学习记忆问题的研究。然而,这次人工神经网络的研究高潮未能持续很久,许多人陆续放弃了这方面的研究工作,这是因为当时数字计算机的发展处于全盛时期,许多人误以为数字计算机可以解决人工智能、模式识别、专家系统等方面的一切问题,使感知

12、机的工作得不到重视;其次,当时的电子技术工艺水平比较落后,主要的元件是电子管或晶体管,利用它们制作的神经网络体积庞大,价格昂贵,要制作在规模上与真实的神经网络相似是完全不可能的;另外,在1968年一本名为感知机的著作中指出线性感知机功能是有限的,它不能解决如异或这样的基本问题,而且多层网络还不能找到有效的计算方法,这些论点促使大批研究人员对于人工神经网络的前景失去信心。60年代末期,人工神经网络的研究进入了低潮。 另外,在60年代初期,widrow提出了自适应线性元件网络,这是一种连续取值的线性加权求和阈值网络。后来,在此基础上发展了非线性多层自适应网络。当时,这些工作虽未标出神经网络的名称,

13、而实际上就是一种人工神经网络模型。 随着人们对感知机兴趣的衰退,神经网络的研究沉寂了相当长的时间。80年代初期,模拟与数字混合的超大规模集成电路制作技术提高到新的水平,完全付诸实用化,此外,数字计算机的发展在若干应用领域遇到困难。这一背景预示,向人工神经网络寻求出路的时机已经成熟。美国的物理学家hopfield于1982年和1984年在美国科学院院刊上发表了两篇关于人工神经网络研究的论文,引起了巨大的反响。人们重新认识到神经网络的威力以及付诸应用的现实性。随即,一大批学者和研究人员围绕着 hopfield提出的方法展开了进一步的工作,形成了80年代中期以来人工神经网络的研究热潮。 1.2 人工

14、神经网络的特性思维学普遍认为,人类大脑的思维分为抽象(逻辑)思维、形象(直观)思维和灵感(顿悟)思维三种基本方式。 逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理;这一过程可以写成串行的指令,让计算机执行。然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。这种思维方式的根本之点在于以下两点:1 信息是通过神经元上的兴奋模式分布储在网络上;2 信息处理是通过神经元之间同时相互作用的动态过程来完成的。 人工神经网络具有初步的自适应与自组织能力。在学习或训练过程中改变突触权重值,以适应周围环境

15、的要求。同一网络因学习方式及内容不同可具有不同的功能。人工神经网络是一个具有学习能力的系统,可以发展知识,以致超过设计者原有的知识水平。通常,它的学习训练方式可分为两种,一种是有监督或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督学习或称无导师学习,这时,只规定学习方式或某些规则,则具体的学习内容随系统所处环境 (即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似人脑的功能。 神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。目前,主要的研究工作集中在以下几个方面: 1 生物原型研究。从生理学、心理学、解剖学、脑科学、病理学等生物科学方面研究神经

16、细胞、神经网络、神经系统的生物原型结构及其功能机理。 2 建立理论模型。根据生物原型的研究,建立神经元、神经网络的理论模型。其中包括概念模型、知识模型、物理化学模型、数学模型等。 3 网络模型与算法研究。在理论模型研究的基础上构作具体的神经网络模型,以实现计算机馍拟或准备制作硬件,包括网络学习算法的研究。这方面的工作也称为技术模型研究。 4 人工神经网络应用系统。在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能、构作专家系统、制成机器人等等。 纵观当代新兴科学技术的发展历史,人类在征服宇宙空间、基本粒子,生命起源等科学技术领域的进程中历经

17、了崎岖不平的道路。我们也会看到,探索人脑功能和神经网络的研究将伴随着重重困难的克服而日新月异。 1.3 bp神经网络在人工神经网络发展历史中,很长一段时间里没有找到隐层的连接权值调整问题的有效算法。直到误差反向传播算法(bp算法)的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。 bp (back propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结

18、构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。 首先,由于学习速率是固定的,因此网络的收敛速度慢,需要较长的训练时间。对于一些复杂问题,bp算法需要的训练时间可能非常长,这主要是由于学习速率太小造成的,可采用变化的学习速

19、率或自适应的学习速率加以改进。 其次,bp算法可以使权值收敛到某个值,但并不保证其为误差平面的全局最小值,这是因为采用梯度下降法可能产生一个局部最小值。对于这个问题,可以采用附加动量法来解决。 再次,网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。 最后,网络的学习和记忆具有不稳定性。也就是说,如果增加了学习样本,训练好的网络就需要从头开始训练,对于以前的权值和阈值是没有记忆的。第2章 神经网络预测基本原理2.1 生物神经元模型人工神经网络是参照生物神经网络发展起来的,为了学习和研究人工神经

20、网络,了解生物神经网络的基本原理是很必要的。人脑神经系统的基本单元是神经细胞,即生物神经元。人脑神经系统约由个神经元构成,每个神经元与约个其他神经元连接。神经细胞与人体中其他细胞的关键区别在于,神经网络具有产生、处理和传递信号的能力。一个神经元的构造如图2.1所示,主要包括细胞体、树突和轴突。图2.1 生物神经元示意图细胞体是由细胞核、细胞质、细胞膜等组成。在高等动物的神经细胞,除了特殊的无“轴突”神经元外,一般每个神经元从细胞体伸出一根粗细均匀、表面光滑的突起,长度从几微米到1m左右,称为轴突,它的功能是传出从细胞体来的神经信息。从细胞体延伸出像树枝一样向四处分散开来的许多突起,称之为树突,

21、其作用是感受其他神经元的传递信号。轴突末端有许多细的分枝,称之为神经末梢,每一根神经末梢可以与其他神经元连接,其连接的末端称之为突触。神经元之间的连接是靠突触实现的,主要有:轴突与树突、轴突与细胞体、轴突与轴突、树突与树突等连接形式。神经细胞单元的信息是宽度和幅度都相同的脉冲串,若某个神经细胞兴奋,其轴突输出的脉冲串的频率就高;若某个神经细胞抑制,其轴突输出的脉冲串的频率就低,甚至无脉冲发出。根据突触对下一个神经细胞的功能活动的影响,突触又可分为兴奋性的和抑制性的两种。兴奋性的突触可能引起下一个神经细胞兴奋,抑制性的突触使下一个神经细胞抑制。神经细胞的细胞膜将细胞体内外分开,从而使细胞体内外有

22、不同的电位,一般内部电位比外部低,其内外电位差称之为膜电位。突触使神经细胞的膜电位发生变化,且电位的变化是可以累加的,该神经细胞膜电位是它所有突触产生的电位总和,当该神经细胞的膜电位升高到超过一个阈值时,会产生一个脉冲,从而总和的膜电位直接影响该神经细胞兴奋发放的脉冲数。突触传递信息需要一定的延迟,对温血动物,延迟时间为0.3ms1.0ms。一般每个神经细胞的轴突大约连接1001000个其他神经细胞。神经细胞的信息就这样从一个神经细胞传到另一个神经细胞,且这种传播是正向的,不允许逆向传播。2.2 人工神经元模型 人工神经网络是在现代神经生物学研究基础上提出的模拟生物过程,反映人脑某些特性的一种

23、计算结构。它不是人脑神经系统的真实描写,而只是它的某种抽象、简化和模拟。根据前面对生物神经网络的介绍可知,神经元及其突触是神经网络的基本器件。因此,模拟生物神经网络应首先模拟生物神经元。在人工神经网络中,神经元常被称为“处理单元”,有时从网络的观点出发常把它称为“节点”。人工神经元是对生物神经元的一种形式化描述,它对生物神经元的信息处理过程进行抽象,并用数学语言予以描述;对生物神经元的结构和功能进行模拟,并用模型图予以表达。 目前人们提出的神经元模型己有很多,其中最早提出且影响最大的,是1943年心理学和数学家在分析总结神经元基本特性的基础上首先提出的m-p模型。该模型经过不断改进后,形成目前

24、广泛应用的神经元模型形式。关于神经元的信息处理机制,该模型在简化的基础上提出以下6点假定进行描述:1 每个神经元都是一个多输入单输出的信息处理单元;2 神经元输入分兴奋性输入和抑制性输入两种类型;3 神经元具有空间整合特性和阂值特性;4 神经元输入与输出间有固定的时滞,主要取决于突触延搁;5 忽略时间整合作用和不应期;6 神经元本身是非时变的,即其突触时延和突触强度均为常数。 显然,上述假定是对生物神经元信息处理过程的简化和概括,它清晰地述了生物神经元信息处理的点,而且便于进行形式化表上述假定,可用图2.2中的神元模型示意图进行图解表示。 .y图2.2 神经元模型示意图 图2.2表明,如生物神

25、经元有许多激励输入一样,人工神经元也应该有许多的输入信号(图中每个输入的大小用确定数值xi表示),它们同时输人神经元k。生物神经元具有不同的突触性质和突触强度,其对输入的影响是使有些输入在神经元产生脉冲输出过程中所起的作用比另外一些输入更为重要。基本单元的神经元模型包括三个基本要素:一组求和函数(对应于生物神经元的突触)连接强度由各连接上的权值表示,权值为正表示启动,为负表示抑制;一个求和单元用于求取各输入信号的加权和(线性组合);一个非线性启动函数起非线性映射作用并将神经元输出幅度限制在一定范围内(一般限制在(0,l)或(-1,+l)之间)。此外还有一个阈值k(或偏置),见图2.3。图2.3

26、 基本神经元模型以上作用可分别以数学表达式表达出来:式中:为输入信号,为神经元k的权值,为线性组合结果,为阈值,f(.)为启动函数,为神经元k的输出。若把输入的维数增加一维,增加一个新的连接,输入为x。=-1(或+1),权值为= (或-),则可把阈值包括进去。例如启动函数f ()可以有以下几种形式:阈值型变换函数(图2.4),单极性函数用下式定义:(2.1) 具有这一作用方式的神经元称为阈值型神经元,是神经元模型中最简单的一种,经典的m-p模型就属于这一类。11-100f(x)f(x)xx图2.4 阈值型变换函数(2)非线性变换函数 非线性变换函数为实数域r到0,l闭集的非减连续函数,代表了状

27、态连续型神经元模型。最常用的非线性变换函数是单极性的sigmoid函数曲线,简称s型函数(图2.5),其特点是函数本身及其导数都是连续的,因而在处理上十分方便。单极性s型函数定义如下: (2.2) 有时也常采用双极性s型函数等形式(2.3) (3)非线性变换函数 该函数的特点是神经元的输入与输出在一定区间内满足线性关系。由于具有分段线性的特点,因而在实现上比较简单。这类函数也称为伪线性函数,单极性分段线性变换函数的表达式如下:(2.4)式中,c为线段的斜率,如图2.6。f(x) x图2.5 s型变换函数0f(x)x图2.6 分段线性变换函数(4)概率型变换函数采用概率型变换函数的神经元模型其输

28、入与输出之间的关系是不确定的,需要一个随机函数来描述其输出状态为1或为0的概率。设神经元输出为1的概率为: (2.5) 式中,t称为温度参数。由于采用该变换函数的神经元输出状态分布与热力学中的玻尔兹曼分布相类似。2.3 人工神经网络模型神经细胞是构筑神经系统和人脑的基本单元,它既具有结构和功能的动态特性,又具有时间和空间的动态特性,其简单有序的编排构成了复杂的大脑。神经细胞之间的通信是通过其具有可塑性的突触祸合实现的,这使它们成为一个的整体。人工神经网络就是通过对人脑的神经细胞一一的建模和连接,来探索模拟人脑神经系统功能的模型,其任务是具有学习、联想、记忆和模式识别等信息处理功能的系统。在各种

29、智能信息处理模型中,人工神经网络是最具有大脑风格的智能信息处理模型,许多网络都能反映人脑功能的若干基本特性,但并非生物系统的逼真描述,只是对其局部电路的某种模仿、简化和抽象。大量神经元组成庞大的神经网络,才能实现对复杂信息的处理与存储,并表现出各种优越的特性。神经网络的强大功能与其大规模并行互连、非线性处理以及互连结构的可塑性密切相关。必须按一定规则将神经元连接成神经网络,并使网络中各神经元的连接权按一定规则变化。生物神经网络由数以亿计的生物神经元连接而戒,而人工神经网络限于物理实现的困难和为了计算简便,是由相对少量的神经元按一定规律构成的网络。人工神经网络中的神经元常称为节点或处理单元,每个

30、节点均具有相同的结构,其动作在时间和空间上均同步。人工神经网络的模型有很多种,可以按照不同的方法分类。其中常见的两种分类方法是:按网络连接的拓扑结构和按网络内部的信息流向分类。(1)网络拓扑结构类型神经元之间的连接方式不同,网络的拓扑结构也不同。根据神经元之间连接方式,可将神经网络结构分为层次型结构(图2.7)、互连型结构(图2.8)两大类。(2)根据神经网络内部信息的传递方向,可分为前馈型、反馈型网络两种类型。图2.7 层次结构示意图图2.8 互联结构示意图2.4 人工神经网络的学习学习定义为:根据与环境的相互作用而发生的行为改变,其结果导致对外界刺激产生反应的新模式的建立。学习的过程离不开

31、训练,学习的过程就是一种经过训练而使个体在行为上产生较为持久改变的过程。学习效果随着训练量的增加而提高,这就是通过学习获得的进步。关于学习的神经机制,涉及神经元如何分布、处理和存储信息。这样的问题单用行为研究是不能回答的,必须把研究深入到细胞和分子水平。在大脑中,要建立功能性的神经元连接,突触形成是关键。神经元之间的突触联系,其基本部分是先天就有的,但其他部分是由于学习过程中频繁地给予刺激而成长起来的。突触的形成、稳定与修饰均与刺激有关,随着外界给予的刺激性质不同,能形成和改变神经元间的突触联系。人工神经网络的功能特性由其连接的拓扑结构和突触连接强度,即连接权值决定。神经网络全体连接权值的可用

32、一个矩阵w表示,它的整体反映了神经网络对于所解决问题的知识存储。神经网络能够通过对样本的学习训练,不断改变网络的连接权值以及拓扑结构,以使网络的输出不断地接近期望的输出。这一过程称为神经网络的学习或训练,其本质是可变权值的动态调整。当大量处理单元集体进行权值调整时,网络就呈现出“智能”特性。其中有意义的信息就分布地存储在调节后的权值矩阵中。神经网络的学习算法可以归纳为三类:一是有导师学习:学习模式采用的是纠错规则,学习训练过程中需要不断地给网络成对提供一个输入模式和一个期望网络正确输出的模式,将神经网络的实际输出同期望输出进行比较,并按一定的规则调整权值。另类是无导师学习:学习过程中,需要不断

33、地给网络提供动态输入信息。网络能根据特有的内部结构和学习规则,在输入信息流中发现任何可能存在的模式和规律,同时能根据网络的功能和输入信息调整权值,使网络能对属于同一类的模式进行自动分类。第三类是灌输式学习:将网络设计成能记忆特别的例子,以后当给定有关该例子的输人信息时,例子便被回忆起来。2.5 本章小结本章主要是对神经网络模型建立的基本阐述。是在生物神经细胞的基础上建立起来的。最重要的是神经元得建立,然后是网络模型的确定。现在主要是bp模型,为下面的设计做理论支持。第3章 bp神经网络结构及数学模型3.1 bp神经网络结构目前国外在工程上获得实际应用的神经元模型,大部分是bp网络。这种网络的可

34、靠性及成熟性可以满足工程应用的要求。如图3.1所示。图3.1 bp神经网络结构示意图在人工神经网络发展历史中,很长一段时间里没有找到隐层的连接权值调整问题的有效算法。直到误差反向传播算法(bp算法)的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。 bp (back propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神

35、经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。 bp神经网络模型bp网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。3.2 bp神经元图2.2给出了第j个基本bp神经元(节点),它只模仿了生物神经元所具有的三个最基本也是最重要的功能

36、:加权、求和与转移。其中x1、x2xixn分别代表来自神经元1、2in的输入;wj1、wj2wjiwjn则分别表示神经元1、2in与第j个神经元的连接强度,即权值;bj为阈值;f(.)为传递函数;yj为第j个神经元的输出。第j个神经元的净输入值sj为:(3.1) 图3.2 bp神经元其中:,若视,即令及包括及,则,于是节点j的净输入sj可表示为:(3.2) 净输入sj通过传递函数(transfer function)f()后,便得到第j个神经元的输出yi: (3.3) 式中是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。3.3 bp网络bp算法由数据流的前向

37、计算(正向传播)和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层隐层输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权矢量空间执行误差函数梯度下降策略,动态迭代搜索一组权矢量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。3.3.1 正向传播 . .wvj.qmn图3.3 三层神经网络的拓扑结构设bp网络的输入层有n个节点,隐层有q个节点,输出层有m个节点,输入层与隐层之间的权值为,隐层与输出层之间的权值为,如图3.3所示。隐层的传递函数为f1(),输出层的传递函数为f2(),则隐层节点的输

38、出为(将阈值写入求和项中): k=1,2, q (3.4)输出层节点的输出为: j=1,2,m (3.5)至此b-p网络就完成了n维空间矢量对m维空间的近似映射。3.3.2 反向传播(1)定义误差函数输入p个学习样本,用x1,x2.xp来表示。第p个样本输入到网络后得到输出(j=1,2,m)。采用平方型误差函数,于是得到第p个样本的误差ep: (3.6)式中:为期望输出。对于p个样本,全局误差为: (3.7)(2)输出层权值的变化 采用累计误差bp算法调整,使全局误差e变小,即: (3.8)式中:学习率定义误差信号为: (3.9)其中第一项: (3.10)第二项: (3.11)是输出层传递函数

39、的偏微分。于是: (3.12) (3.13)于是输出层各神经元的权值调整公式为: (3.14)(3)隐层权值的变化 (3.15)定义误差信号为: (3.16)其中第一项: (3.17)依链定理有: (3.18)第二项: (3.19) 是隐层传递函数的偏微分。于是: (3.20)由链定理得: (3.21)从而得到隐层各神经元的权值调整公式为: (3.22)3.4 本章小结 本章主要是对bp神经网络的结构和数学模型进行设计,bp神经网络是现在应用最广泛,也是现在最成熟的神经网络,它有学习的能力。主要是对数据的正向传播和误差数据的反向传播。查阅相关资料得出数学模型。第4章 bp网络的自学习与预测编程

40、4.1 bp网络的学习与预测神经编程bp网是一种具有三层以上的多层神经元网络,它的左、右各层之间各个神经元实现全连接,即左层的每一个神经元与右层的每个神经元都有连接,而上下层各神经元之间无连接。bp网络按有教师学习方式进行训练,当一对学习模式提供给网络后,其神经元的启动值将从输入层经各中间层向输出层传播,在输出层的各神经元输出对应于输入模式的网络相应。然后,将减少希望输出与实际输出误差的原则,从输出层经各中间层、最后回到输入层逐层修正各连接权。由于这种修正过程是从输出到输入层逐层进行的,所以称它为“误差逆传播算法”。随着这种误差逆传播训练的不断 ,网络对输入模式回应的正确率也不断提高。由于bp

41、网络有处于中间位置的隐含层,并有相应的学习规则可循,可训练这种网络,使其具有对非线性模式的识别能力。特别是它的数学意义明确、步骤分明的学习算法,更使其具有广泛的应用前景。bp网络的学习过程主要由四部分组成:(1) 输入模式顺传播(输入模式由输入层经中间层向输出层传播计算);(2) 输出误差逆传播(输出的误差由输出层经中间层传向输入层);(3) 循环记忆训练(模式顺传播与误差逆传播的计算过程反复交替循环进行);(4) 学习结果判别(判定全局误差是否趋向极小值)。4.2 输入模式顺传播这一过程主要是利用输入模式求出它所对应的实际输出。设输入模式矢量为 (=1,2,;学习模式对数,n输入层单元个数)

42、。与输入模式相对应的希望输出为 (输出层单元数)。根据m-p神经元模型原理,计算中间层各神经元的启动值:(=1,2,) (4.1)式中:输入层至中间层的连接权; 中间层单元的阈值; 中间层单元数。启动函数采用s型函数,即 (4.2)这里之所以选用s型函数作为bp网络神经元的启动函数是因为它是连续可分的,而且更接近于生物神经元的信号输出形式。将上面的启动值代入启动函数中可以得到中间层j 单元的输出值为: (4.3)同理,可求出输出端的启动值和输出值:设输出层第t个单元的启动值为,则 (4.4)设输出层t个单元的实际输出值为,则 (t=1,2,q)式中:中间层至输出层连接权; 输出层单元阈值; s

43、型启动函数。利用以上各式就可以计算出一个输入模式的顺传播过程。void wforward()int j,i;float sum;for (i=0;iwhn;i+)sum=0.0;for (j=0;jwin;j+) sum+=wwji*wivj;sum=sum-wsthi;whvi=(float)(1.0f/(1.0f+exp(-sum);for (i=0;iwon;i+)sum=0.0;for (j=0;jwhn;j+) sum+=wvji*whvj;sum=sum-wstoi;wovi=(float)(1.0f/(1.0f+exp(-sum);4.3 输出误差的逆传播 在第一步的模式顺传播计

44、算中得到了网络的实际输出值,当这些实际的输出值与希望的输出值不一样或者说其误差大于所限定的数值时,就要对网络进行校正。 这里的校正是从后向前进行的,所以叫作误差逆传播,计算时是从输出层到中间层,再从中间层到输入层。输出层的校正误差为: (4.5)式中:=1,2, 希望输出; 实际输出; 对输出层函数的导数。中间层各单元的校正误差为: (=1,2, =1,2,)对于输出层至中间层连接权和输出层阈值的校正量为 (4.6) (4.7)其中,中间层单元的输出; 输出层的误差校正。=1,2, =1,2, =1,2,中间层至输入层的校正量为 (4.8) (4.9)式中:中间层单元的校正误差。=1,2, 0

45、1(学习系数)。从这里可以得出程序:void wbackward()int j,i;float sum;for (i=0;iwon;i+)wdtoi=(wdi-wovi)*wovi*(1.0f-wovi);for (i=0;iwhn;i+)sum=0.0;for (j=0;jwon;j+) sum+=wdtoj*wvij;wdthi=sum*whvi*(1.0f-whvi);for (j=0;jwon;j+)for (i=0;iwhn;i+)sum=wdtoj*whvi;wdvij=(float)(weta*sum+walpha*wdv1ij);wvij+=wdvij;wdv1ij=wdvij

46、;wdstoj=(float)(-weta*wdtoj+walpha*wdsto1j);wstoj+=wdstoj;wdsto1j=wdstoj; for (j=0;jwhn;j+)for (i=0;iwin;i+)sum=wdthj*wivi;wdwij=(float)(weta*sum+walpha*wdw1ij);wwij+=wdwij; wdw1ij=wdwij;wdsthj=(float)(-weta*wdthj+walpha*wdsth1j);wsthj+=wdsthj;wdsth1j=wdsthj;4.4 循环记忆训练为使网络的输出误差趋于极小值,对bp网络输入的每一组训练模式,

47、一般要经过数百次甚至上万次的循环记忆训练,才能使网络记住这一模式。连接权及阈值初始化计算中间层各单元的输入、输出全部模式训练完是学习模式提供给网络计算输出层各单元的输入、输出计算输出层各单元的校正误差计算中间层各单元的校正误差调整中间层至输出层之间的连接权及输出层各单元的输出阈值调整输入层至中间层之间的连接权及输出层各单元的输出阈值更新学习输入模式更新学习次数误差或学习次数n学习结束开 始 这种循环记忆训练实际上就是反复重复上面介绍的输入模式顺传播和输出误差逆传播过程。流程图如下: 图4.1 循环流程图由此流程图得出程序如下:void wtrain()int k,j,i,ct=0;float

48、errwon;printf(n);printf(n);printf(it is time to training-!n);printf(n);printf(n);printf(this calculation needs about two minutes,n);printf(n);printf(n);printf(please wait patiently!n);winitwt();winput();do for(i=0;iwon;i+) erri=0.0;for (k=0;kwpn;k+) for (i=0;iwin;i+) wivi=wipik;for (i=0;iwon;i+) wdi=wdpik;wforward();for (i=0;iwo

温馨提示

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

评论

0/150

提交评论