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

基于C语言的BP神经网络预测程序开发.pdf 免费下载

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

文档简介

摘 要人工神经网络理论是新近发展起来的交叉学科,采用物理器件或计算机软硬件模拟生物体中神经细胞的某些结构与功能,进而将其应用于工程领域,尤其适合高度复杂的非线性动力学系统仿真。人工神经网络已经在组合优化、模式识别、图象处理、自动控制、信号处理、机器人和人工智能等领域得到广泛应用,尤其在工程领域逐渐受到广泛重视。人工神经网络用于非线性动力学系统研究,近来在汽车动力学建模与仿真领域也引起了极大关注。许多工业生产过程存在时滞和大时间常数, 控制难度较大, 传统的控制策略对此类控制问题很难取得满意的效果。为了解决这类问题, 预测控制应运而生。预测控制是一种基于模型的控制策略。反向传播(神经网络是当前应用最为广泛的一种神经网络, 它结构简单, 工作状态稳定, 并且已有大量提高网络训练速度的改进算法。关键字:用;车保有量;预测is or of of in in to in in on to In to of at is a is it is in a of 摘要. 人工神经网络的发展历史. 人工神经网络的特性. . 生物神经元模型. 人工神经元模型. 人工神经网络模型. 人工神经网络的学习. 本章小结.向传播.向传播. 本章小结. 输入模式顺传播. 输出误差的逆传播. 循环记忆训练. 学习结果的判别. 对数据的预测程序编写. 本章小结.汽车保有量预测的意义.基于. 本章小结. 工神经网络的发展历史人工神经网络早期的研究工作应追溯至本世纪40年代。下面以时间顺序,以著名的人物或某一方面突出的研究成果为线索,简要介绍人工神经网络的发展历史。1943年,心理学家W结神经元基本特性的基础上首先提出神经元的数学模型。此模型沿用至今,并且直接影响着这一领域研究的进展。因而,他们两人可称为人工神经网络研究的先驱。1945年冯诺依曼领导的设计小组试制成功存储程序式电子计算机,标志着电子计算机时代的开始。1948年,他在研究工作中比较了人脑结构与存储程序式计算机的根本区别,提出了以简单神经元构成的再生自动机网络结构。但是,由于指令存储式计算机技术的发展非常迅速,迫使他放弃了神经网络研究的新途径,继续投身于指令存储式计算机技术的研究,并在此领域作出了巨大贡献。虽然,冯诺依曼的名字是与普通计算机联系在一起的,但他也是人工神经网络研究的先驱之一。50年代末,F知机”,它是一种多层的神经网络。这项工作首次把人工神经网络的研究从理论探讨付诸工程实践。当时,世界上许多实验室仿效制作感知机,分别应用于文字识别、声音识别、声纳信号识别以及学习记忆问题的研究。然而,这次人工神经网络的研究高潮未能持续很久,许多人陆续放弃了这方面的研究工作,这是因为当时数字计算机的发展处于全盛时期,许多人误以为数字计算机可以解决人工智能、模式识别、专家系统等方面的一切问题,使感知机的工作得不到重视;其次,当时的电子技术工艺水平比较落后,主要的元件是电子管或晶体管,利用它们制作的神经网络体积庞大,价格昂贵,要制作在规模上与真实的神经网络相似是完全不可能的;另外,在1968年一本名为感知机的著作中指出线性感知机功能是有限的,它不能解决如异或这样的基本问题,而且多层网络还不能找到有效的计算方法,这些论点促使大批研究人员对于人工神经网络的前景失去信心。60年代末期,人工神经网络的研究进入了低潮。另外,在60年代初期,是一种连续取值的线性加权求和阈值网络。后来,在此基础上发展了非线性多层自适应网络。当时,这些工作虽未标出神经网络的名称,而实际上就是一种人工神经网络模型。随着人们对感知机兴趣的衰退,神经网络的研究沉寂了相当长的时间。80年代初期,模拟与数字混合的超大规模集成电路制作技术提高到新的水平,完全付诸实用化,此外,数字计算机的发展在若干应用领域遇到困难。这一背景预示,向人工神经网络寻求出路的时机已经成熟。美国的物理学家起了巨大的反响。人们重新认识到神经网络的威力以及付诸应用的现实性。随即,一大批学者和研究人员围绕着 成了80年代中期以来人工神经网络的研究热潮。工神经网络的特性思维学普遍认为,人类大脑的思维分为抽象(逻辑)思维、形象(直观)思维和灵感(顿悟)思维三种基本方式。逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理;这一过程可以写成串行的指令,让计算机执行。然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。这种思维方式的根本之点在于以下两点:1信息是通过神经元上的兴奋模式分布储在网络上;2信息处理是通过神经元之间同时相互作用的动态过程来完成的。人工神经网络具有初步的自适应与自组织能力。在学习或训练过程中改变突触权重值,以适应周围环境的要求。同一网络因学习方式及内容不同可具有不同的功能。人工神经网络是一个具有学习能力的系统,可以发展知识,以致超过设计者原有的知识水平。通常,它的学习训练方式可分为两种,一种是有监督或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督学习或称无导师学习,这时,只规定学习方式或某些规则,则具体的学习内容随系统所处环境(即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似人脑的功能。神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。目前,主要的研究工作集中在以下几个方面:1生物原型研究。从生理学、心理学、解剖学、脑科学、病理学等生物科学方面研究神经细胞、神经网络、神经系统的生物原型结构及其功能机理。2建立理论模型。根据生物原型的研究,建立神经元、神经网络的理论模型。其中包括概念模型、知识模型、物理化学模型、数学模型等。3网络模型与算法研究。在理论模型研究的基础上构作具体的神经网络模型,以实现计算机馍拟或准备制作硬件,包括网络学习算法的研究。这方面的工作也称为技术模型研究。4人工神经网络应用系统。在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能、构作专家系统、制成机器人等等。纵观当代新兴科学技术的发展历史,人类在征服宇宙空间、基本粒子,生命起源等科学技术领域的进程中历经了崎岖不平的道路。我们也会看到,探索人脑功能和神经网络的研究将伴随着重重困难的克服而日新月异。长一段时间里没有找到隐层的连接权值调整问题的有效算法。直到误差反向传播算法(提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。首先,由于学习速率是固定的,因此网络的收敛速度慢,需要较长的训练时间。对于一些复杂问题,主要是由于学习速率太小造成的,可采用变化的学习速率或自适应的学习速率加以改进。其次,并不保证其为误差平面的全局最小值,这是因为采用梯度下降法可能产生一个局部最小值。对于这个问题,可以采用附加动量法来解决。再次,网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。最后,网络的学习和记忆具有不稳定性。也就是说,如果增加了学习样本,训练好的网络就需要从头开始训练,对于以前的权值和阈值是没有记忆的。第2章 了学习和研究人工神经网络,了解生物神经网络的基本原理是很必要的。人脑神经系统的基本单元是神经细胞,即生物神经元。人脑神经系统约由 1110 个神经元构成,每个神经元与约 410个其他神经元连接。神经细胞与人体中其他细胞的关键区别在于,神经网络具有产生、处理和传递信号的能力。要包括细胞体、树突和轴突。物神经元示意图细胞体是由细胞核、细胞质、细胞膜等组成。在高等动物的神经细胞,除了特殊的无“轴突”神经元外,一般每个神经元从细胞体伸出一根粗细均匀、表面光滑的突起,长度从几微米到1为轴突,它的功能是传出从细胞体来的神经信息。从细胞体延伸出像树枝一样向四处分散开来的许多突起,称之为树突,其作用是感受其他神经元的传递信号。轴突末端有许多细的分枝,称之为神经末梢,每一根神经末梢可以与其他神经元连接,其连接的末端称之为突触。神经元之间的连接是靠突触实现的,主要有:轴突与树突、轴突与细胞体、轴突与轴突、树突与树突等连接形式。神经细胞单元的信息是宽度和幅度都相同的脉冲串,若某个神经细胞兴奋,其轴突输出的脉冲串的频率就高;若某个神经细胞抑制,其轴突输出的脉冲串的频率就低,甚至无脉冲发出。根据突触对下一个神经细胞的功能活动的影响,突触又可分为兴奋性的和抑制性的两种。兴奋性的突触可能引起下一个神经细胞兴奋,抑制性的突触使下一个神经细胞抑制。神经细胞的细胞膜将细胞体内外分开,从而使细胞体内外有不同的电位,一般内部电位比外部低,其内外电位差称之为膜电位。突触使神经细胞的膜电位发生变化,且电位的变化是可以累加的,该神经细胞膜电位是它所有突触产生的电位总和,当该神经细胞的膜电位升高到超过一个阈值时,会产生一个脉冲,从而总和的膜电位直接影响该神经细胞兴奋发放的脉冲数。突触传递信息需要一定的延迟,对温血动物,般每个神经细胞的轴突大约连接1001000个其他神经细胞。神经细胞的信息就这样从一个神经细胞传到另一个神经细胞,且这种传播是正向的,不允许逆向传播。映人脑某些特性的一种计算结构。它不是人脑神经系统的真实描写,而只是它的某种抽象、简化和模拟。根据前面对生物神经网络的介绍可知,神经元及其突触是神经网络的基本器件。因此,模拟生物神经网络应首先模拟生物神经元。在人工神经网络中,神经元常被称为“处理单元”,有时从网络的观点出发常把它称为“节点”。人工神经元是对生物神经元的一种形式化描述,它对生物神经元的信息处理过程进行抽象,并用数学语言予以描述;对生物神经元的结构和功能进行模拟,并用模型图予以表达。目前人们提出的神经元模型己有很多,其中最早提出且影响最大的,是1943年心理学和数学家在分析总结神经元基本特性的基础上首先提出的模型经过不断改进后,形成目前广泛应用的神经元模型形式。关于神经元的信息处理机制,该模型在简化的基础上提出以下6点假定进行描述:1每个神经元都是一个多输入单输出的信息处理单元;2神经元输入分兴奋性输入和抑制性输入两种类型;3神经元具有空间整合特性和阂值特性;4神经元输入与输出间有固定的时滞,主要取决于突触延搁;5忽略时间整合作用和不应期;6神经元本身是非时变的,即其突触时延和突触强度均为常数。显然,上述假定是对生物神经元信息处理过程的简化和概括,它清晰地述了生物神经元信息处理的点,而且便于进行形式化表上述假定,. 生物神经元有许多激励输入一样,人工神经元也应该有许多的输入信号(图中每个输入的大小用确定数值它们同时输人神经元k。生物神经元具有不同的突触性质和突触强度,其对输入的影响是使有些输入在神经元产生脉冲输出过程中所起的作用比另外一些输入更为重要。基本单元的神经元模型包括三个基本要素:一组求和函数(对应于生物神经元的突触)连接强度由各连接上的权值表示,权值为正表示启动,为负表示抑制;一个求和单元用于求取各输入信号的加权和(线性组合);一个非线性启动函数起非线性映射作用并将神经元输出幅度限制在一定范围内(一般限制在(0,l)或(l)之间)。此外还有一个阈值k(或偏置), 本神经元模型以上作用可分别以数学表达式表达出来:1 , , )pk ij j k k k k w x v u y v (式中:1 2 px x x, ,., 为输入信号, k1 k2 w w, ,., 为神经元(线性组合结果, k 为阈值,f(.)为启动函数,为神经元把输入的维数增加一维,增加一个新的连接,输入为x。=+1),权值为 0 k (或- k ),则可把阈值 k 包括进去。例如0 , ( )pk kj j k w x y v 启动函数f()可以有以下几种形式:阈值型变换函数(单极性函数用下式定义:1( 0)( ) 0( 0)xf x x 具有这一作用方式的神经元称为阈值型神经元,是神经元模型中最简单的一种,经典的 1F(x) F(x) 值型变换函数(2)非线性变换函数非线性变换函数为实数域,l闭集的非减连续函数,代表了状态连续型神经元模型。最常用的非线性变换函数是单极性的称其特点是函数本身及其导数都是连续的,因而在处理上十分方便。单极性1( ) 1 xf x e 有时也常采用双极性 1( ) 11 1 xx x e e (3)非线性变换函数该函数的特点是神经元的输入与输出在一定区间内满足线性关系。由于具有分段线性的特点,因而在实现上比较简单。这类函数也称为伪线性函数,单极性分段线性变换函数的表达式如下: 式中,图2.6。型变换函数0F(x) 段线性变换函数(4)概率型变换函数采用概率型变换函数的神经元模型其输入与输出之间的关系是不确定的,需要一个随机函数来描述其输出状态为1或为0的概率。设神经元输出为1的概率为:((x)/1(1) 1 x TP e 式中,于采用该变换函数的神经元输出状态分布与热力学中的玻尔兹曼分布相类似。既具有结构和功能的动态特性,又具有时间和空间的动态特性,其简单有序的编排构成了复杂的大脑。神经细胞之间的通信是通过其具有可塑性的突触祸合实现的,这使它们成为一个的整体。人工神经网络就是通过对人脑的神经细胞一一的建模和连接,来探索模拟人脑神经系统功能的模型,其任务是具有学习、联想、记忆和模式识别等信息处理功能的系统。在各种智能信息处理模型中,人工神经网络是最具有大脑风格的智能信息处理模型,许多网络都能反映人脑功能的若干基本特性,但并非生物系统的逼真描述,只是对其局部电路的某种模仿、简化和抽象。大量神经元组成庞大的神经网络,才能实现对复杂信息的处理与存储,并表现出各种优越的特性。神经网络的强大功能与其大规模并行互连、非线性处理以及互连结构的可塑性密切相关。必须按一定规则将神经元连接成神经网络,并使网络中各神经元的连接权按一定规则变化。生物神经网络由数以亿计的生物神经元连接而戒,而人工神经网络限于物理实现的困难和为了计算简便,是由相对少量的神经元按一定规律构成的网络。人工神经网络中的神经元常称为节点或处理单元,每个节点均具有相同的结构,其动作在时间和空间上均同步。人工神经网络的模型有很多种,可以按照不同的方法分类。其中常见的两种分类方法是:按网络连接的拓扑结构和按网络内部的信息流向分类。(1)网络拓扑结构类型神经元之间的连接方式不同,网络的拓扑结构也不同。根据神经元之间连接方式,可将神经网络结构分为层次型结构(互连型结构(大类。(2)根据神经网络内部信息的传递方向,可分为前馈型、反馈型网络两种类型。(据与环境的相互作用而发生的行为改变,其结果导致对外界刺激产生反应的新模式的建立。学习的过程离不开训练,学习的过程就是一种经过训练而使个体在行为上产生较为持久改变的过程。学习效果随着训练量的增加而提高,这就是通过学习获得的进步。关于学习的神经机制,涉及神经元如何分布、处理和存储信息。这样的问题单用行为研究是不能回答的,必须把研究深入到细胞和分子水平。在大脑中,要建立功能性的神经元连接,突触形成是关键。神经元之间的突触联系,其基本部分是先天就有的,但其他部分是由于学习过程中频繁地给予刺激而成长起来的。突触的形成、稳定与修饰均与刺激有关,随着外界给予的刺激性质不同,能形成和改变神经元间的突触联系。人工神经网络的功能特性由其连接的拓扑结构和突触连接强度,即连接权值决定。神经网络全体连接权值的可用一个矩阵的整体反映了神经网络对于所解决问题的知识存储。神经网络能够通过对样本的学习训练,不断改变网络的连接权值以及拓扑结构,以使网络的输出不断地接近期望的输出。这一过程称为神经网络的学习或训练,其本质是可变权值的动态调整。当大量处理单元集体进行权值调整时,网络就呈现出“智能”特性。其中有意义的信息就分布地存储在调节后的权值矩阵中。神经网络的学习算法可以归纳为三类:一是有导师学习:学习模式采用的是纠错规则,学习训练过程中需要不断地给网络成对提供一个输入模式和一个期望网络正确输出的模式,将神经网络的实际输出同期望输出进行比较,并按一定的规则调整权值。另类是无导师学习:学习过程中,需要不断地给网络提供动态输入信息。网络能根据特有的内部结构和学习规则,在输入信息流中发现任何可能存在的模式和规律,同时能根据网络的功能和输入信息调整权值,使网络能对属于同一类的模式进行自动分类。第三类是灌输式学习:将网络设计成能记忆特别的例子,以后当给定有关该例子的输人信息时,例子便被回忆起来。章小结本章主要是对神经网络模型建立的基本阐述。是在生物神经细胞的基础上建立起来的。最重要的是神经元得建立,然后是网络模型的确定。现在主要是下面的设计做理论支持。第3章 部分是种网络的可靠性及成熟性可以满足工程应用的要求。长一段时间里没有找到隐层的连接权值调整问题的有效算法。直到误差反向传播算法(提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。用函数模型、误差计算模型和自学习模型。点),它只模仿了生物神经元所具有的三个最基本也是最重要的功能:加权、求和与转移。其中x1、x2xiii权值;f(.)为传递函数; . 21 , . 21 若视 1 , jj 0 ,即令x及 括 0则. 210 , . 210 于是节点 0净输入f()后,便得到第)()()( 0 ( )(jb js 中是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。向传播)和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层隐层输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权矢量空间执行误差函数梯度下降策略,动态迭代搜索一组权矢量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。层神经网络的拓扑结构设层有出层有入层与隐层之间的权值为 隐层与输出层之间的权值为 层的传递函数为),输出层的传递函数为),则隐层节点的输出为(将阈值写入求和项中):)( 01 k=1,2,q (出层节点的输出为:)( j=1,2,m (x. . nx n q m 1. 反向传播(1)定义误差函数输入x1,j=1,2,m)。采用平方型误差函数,于是得到第1 )(21 (中: 期望输出。对于局误差为:1121 )( (2)输出层权值的变化采用累计误差 法调整 使全局误差 E 变小,即: pp )( (中:学习率定义误差信号为: (中第一项: mj 2121 )()( (二项:)(2 (输出层传递函数的偏微分。于是:)()( 21yj ( 1 )(2)( (是输出层各神经元的权值调整公式为:(s)(w 211 (3)隐层权值的变化 )()( EE 义误差信号为:(中第一项: )()(21z 121链定理有:(j (二项:)(1zk kk (隐层传递函数的偏微分。于是: )()()( 12 (链定理得:()()(21 (而得到隐层各神经元的权值调整公式为:ij ()()( 121 (是现在最成熟的神经网络,它有学习的能力。主要是对数据的正向传播和误差数据的反向传播。查阅相关资料得出数学模型。第4章 的左、右各层之间各个神经元实现全连接,即左层的每一个神经元与右层的每个神经元都有连接,而上下层各神经元之间无连接。一对学习模式提供给网络后,其神经元的启动值将从输入层经各中间层向输出层传播,在输出层的各神经元输出对应于输入模式的网络相应。然后,将减少希望输出与实际输出误差的原则,从输出层经各中间层、最后回到输入层逐层修正各连接权。由于这种修正过程是从输出到输入层逐层进行的,所以称它为“误差逆传播算法”。随着这种误差逆传播训练的不断,网络对输入模式回应的正确率也不断提高。由于有相应的学习规则可循,可训练这种网络,使其具有对非线性模式的识别能力。特别是它的数学意义明确、步骤分明的学习算法,更使其具有广泛的应用前景。1)输入模式顺传播(输入模式由输入层经中间层向输出层传播计算);(2)输出误差逆传播(输出的误差由输出层经中间层传向输入层);(3)循环记忆训练(模式顺传播与误差逆传播的计算过程反复交替循环进行);(4)学习结果判别(判定全局误差是否趋向极小值)。入模式顺传播这一过程主要是利用输入模式求出它所对应的实际输出。设输入模式矢量为 1 2A k k nk na a a , ,., (k=1,2,m;m学习模式对数,n输入层单元个数)。与输入模式相对应的希望输出为 1 2 k k kk qY y y y , ,., (q输出层单元数)。根据算中间层各神经元的启动值:1 ij i a (j=1,2,p) (中: 输入层至中间层的连接权;中间层单元的阈值;P中间层单元数。启动函数采用1( ) 1 )f x x (里之所以选用且更接近于生物

温馨提示

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

评论

0/150

提交评论