




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要进入21世纪以来,人们的社会生活水平逐渐提高,随着车辆在大多数城市居民中的普及,城市交通拥堵问题恶化迅速。为切实地解决这个问题,合理地安排交通运行,提高交通设施的使用效率,必须进行交通流的合理分配以及信号灯的优化配置,准确的短时交通流量预测是解决这些问题的重要依据。近年来BP神经网络被广泛应用于预测研究。本文设计了三层BP神经网络用于短时交通流量预测。将预测日前三天同时段的交通量作为输入信号,预测当日某时段的交通量。文中用江门市区小时交通量数据进行了仿真实验,结果表明该用方法进行短时交通流量预测是可行的。最后,对预测结果的准确性进行分析和讨论。关键词 短时交通流量;BP神经网络;改进;仿真;预测AbstractSince twenty-first Century, the social life level of people is increasing gradually, along with the vehicle in most city residents in the popular, city traffic congestion problem deteriorated rapidly. In order to solve this problem, arrange the transportation operation rationally, improve the efficiency of the use of transportation facilities, optimize the allocation of a reasonable allocation to traffic flow and signal lamp, accurate traffic flow forecasting is an important basis for solving these problems.In recent years, the BP neural network has been widely used in the prediction of. This paper designs the short-term traffic flow forecasting for the three layer BP neural network. The prediction of traffic volume in three days time recently as the input signal, the traffic volume forecast at a time. With Jiangmen urban traffic volume data based on the simulation results, the results show that the method for short-term traffic flow forecasting is feasible. Finally, the accuracy of the prediction results are analyzed and discussed.Key words Short-term traffic flow BP neural network Improve Simulation Forecast目 录摘 要IAbstractII第1章 绪论11.1 课题背景11.2 研究目的和意义11.3 本文研究的主要内容11.4 本文章节安排2第2章 神经网络介绍32.1 神经网络的发展现状32.2 神经网络的结构32.2.1 人工神经元32.2.2 神经网络的结构42.3 神经网络的应用与存在问题62.3.1 神经网络的应用62.3.2 神经网络存在的问题72.4 本章小结7第3章 BP神经网络及其算法83.1 BP神经网络概述83.2 BP神经网络的结构83.3 BP算法93.3.1 BP算法的基本原理93.3.2 BP算法计算步骤133.4 BP神经网络的学习方式143.5 BP神经网络性能分析153.5.1 BP网络优点153.5.2 BP网络的不足153.5.3 BP网络的缺陷与改进153.6 本章小结16第4章 短时交通流量预测网络174.1 BP神经网络的设计与训练174.1.1 BP神经网络的设计方法174.1.2 改进型训练方法184.1.3 MATLAB神经网络工具箱204.2 预测网络的设计214.2.1神经元个数214.2.2激活函数的选择224.3预测网络的训练与测试224.3.1 训练参数设置224.3.2 仿真实验234.4 仿真结果分析284.5 本章小结28结论29参考文献30致谢31附录32第1章 绪论1.1 课题背景众所周知,我国是个人口大国,随着我国社会经济的发展,越来越多的内陆人民和农村居民涌入到东南岸沿海城市谋求更高的收入,再加上沿海城市本身的人口,我国的沿海城市都面临着严峻的交通拥堵问题。尤其是广州、北京等这些一线发达城市,交通问题尤为突出。合理有效的分配交通流,安排合适的行进路线,配置恰当的信号灯时间这些都是有效解决问题的方式,但是这些方法都要有人去做交通调查才可以提出相应的方案。现在对于解决交通拥堵问题,大多数都会涉及到我们熟识的智能交通系统(ITS)。智能交通系统是在较完善的道路基础设施上,将先进的信息技术、通信技术、控制技术、传感器技术以及系统综合技术有效地集成并应用于地面交通系统,从而建立起较大范围内发挥作用,实时、准确、高效的地面交通系统1。我国的智能交通目前正在高速发展中,但是比较一些发达国家还略有欠缺,当前我们一直在努力构建一个高效的城市交通监控指挥平台,但是这一切都要做流量测量。我们解决很多交通问,提出各种各样的方案都要依据测量到的数据进行。1.2 研究目的和意义本次研究我们是通过对已有数据进行训练,得到稳定、小误差的BP网络,然后进行实验预测。得到结果后进行判断交通状况,这样我们就可以为交通控制中心对未来交通疏导、信号灯时差调整等决策提供依据。让交通控制中心发布各样交通信息,为市民出行提供有效的路线、时间安排,也可以合理引导各种车辆前进的路线,解决城市交通中的拥堵问题。本次研究意义:近些年来,交通拥堵给我们带来的很多的不便,交通事故也是频频发生,这给我们的经济、生活造成了很多的损失。要解决这些问题都有一个前提,就是要进行交通流量的测量与预测。特别的,在解决城市交通问题方面更显得重要。通过对各种道路的短时交通流量预测,我们可以更进一步了解城市交通流的规律,能更好的去想出解决问题的办法,为我们的各种决策提供依据,创造出更多的经济效益,使得交通问题不再制约我们的城市发展。1.3 本文研究的主要内容本文的主要内容是通过学习BP神经网络,并通过网络训练,得到我们需要的BP网络,最后使用这个网络进行交通流量的预测。结合我们仿真得到的结果对比真实的状况,验证BP神经网络对于短时交通流量预测的可行性。本次预测是建立在Windows XP系统环境中的MATLAB 7.0软件基础上的BP神经网络仿真。1.4 本文章节安排本文全文分为四章,章节安排如下:第1章 说明了本毕业设计的研究背景、目的、意义,以及本文的主要内容。第2章 介绍了神经网络的发展,它的结构和在各个领域的应用,阐述了神经网络存在的问题。第3章 介绍了BP神经网络的结构,BP算法的基本原理、计算步骤以及BP算法的改进方法。第4章 说明了交通流量预测实验的设计、训练和仿真测试结果,对预测结果进行了分析和讨论。第2章 神经网络介绍2.1 神经网络的发展现状神经网络的科学研究自诞生起至今已发展几十年了,它的研究历程可划分为三个阶段。第一个阶段开始于1950年到1969年之间;第二个阶段在1970年到79年之间;第三个阶段为1980年到至今。三个阶段经历了高潮期低潮期高潮期的发展,如今依然是人们研究的重要话题。第一阶段开创了神经网络理论研究,提出了神经网络的学习算法基础。第二个阶段为神经网络发展的低潮期,不过这一时期人们却提出了更多的神经网络理论和模型。如:Fukushima 提出了神经认知网络理论;Grossberg 提出了自适应共振理论;Anderson提出了BSB模型;Kohenen 提出了自组织映射;Webos 提出了BP理论等。第三个阶段作为神经网络的新一轮高潮期研究,使之焕发出蓬勃生机。从1982年,来自美国的物理学家Hopfield在自己发表的文章中提出Hopfield神经网络模型开始,到Hinton和Sejnowwski提出多层网络的学习算法,然后一直到Rumelhart和McCelland发表文章提出了多层网络的误差反向传播学习算法,即我们所熟知的BP算法,形成迄今为止最实用、最受大众欢迎的BP神经网络。而我国在1990年也在863高技术研究计划中为人工神经网络的研究提供科研基金,为我国神经网络的发展奠定基础2。神经网络发展到今天,由于其有应用面不够广大、精确度不够理想,可信度有待提高等原因,进入深入到认识与应用研究时期。人们期望在现有的模型上对其进行优化,提高其训练速度,还有运行精确度,同时也在理论上探索发掘新的突破点,建立新的专用/通用模型和算法。同时期的专家学者们也在生物神经系统中加大研究投入,期望能够更彻底的了解到更多关于神经系统的知识。2.2 神经网络的结构2.2.1人工神经元神经元是神经系统的基本组成单位。神经元的树突非常丰富,它能充分接受其他神经元传来的兴奋。而轴突很长为兴奋的传导奠定基础,轴突末梢也非常多,能把兴奋传至其他神经元,树突作为输入端,接收信息,然后通过突触传递出去,神经元与神经元之间的连接是靠突触实现的3。它的结构如图2-1所示:图2-1 生物神经元人工神经元可以视为生物神经元的简化以及模拟,它作为网络中的基础级别的处理单元。图2-2表示神经元结构,它拥有多个输入,但仅有单输出,其输入输出关系可以描述为: (2-1) (2-2)其中,xj(j=1,2,.,n)是从输入数据,i为阈值,wij表示从神经元ji的连接权值,成为作用函数。 图2-2 人工神经元结构模型以上可以看出,人工神经元其实就是反映生物神经元的基本功能3。2.2.2 神经网络的结构神经网络拥有由多个处理单元,而神经网络的信息处理功能是通过各个单元之间的互相作用来达到目标的。有多个神经元遵照我们设定的方式连接成网络,并且让网络中每一个神经元提取数据之间的共性,最后实现输入到输出的映射功能,完成网络训练。人工神经网络虽然种类繁多,样式都有各自的特点,但是总体归纳为分层型神经网络和互联型神经网络这两种形式,。分层类型的神经网络,它可以分为三种类型,其结构如图2-3、图2-4、图2-5所示,图2-3 简单前馈网络 图2-4 反馈型前馈网络 图2-5 内层互联前馈网络分层类型的神经网络是将全部的神经元功能分开到若干层之中,通常情况下会有输入、中间以及输出三个层,各层顺序连接,而中间层因为不直接与输入输出层打交道,因此又称为隐层,隐层可以有多层,也可没有4。互联型神经网络的结构图如图2-4所示,它的任意两个神经元都互相连接,形成全互联神经网络,如若非全部神经元相互连接,则形成局部互联网络4。图2-4 互联型神经网络的拓扑结构2.3 神经网络的应用与存在问题2.3.1 神经网络的应用时至今日,神经网络已经在许多个领域中得到应用,其主要的应用领域有:(1)自动控制领域 主要应用于系统模型建设、系统的识别、各类参数的整定、各种极点的配置等。(2)处理最优问题 为人们解决旅行商问题、作业调度问题、最大匹配问题,还有装箱问题。(3)模式识别方面 手写字符、汽车牌照、目标自动识别、目标跟踪、地震信号的鉴别等。(4)图像处理方面 对有需要的目标进行监测分割压缩恢复,实现图像修改美化。(5)机器人控制 用于操作其眼手系统,对机器人的运作轨道控制,另外还可以进行故障发现并且进行排除。2.3.2 神经网络存在的问题人工神经网络的无疑具有非常可观的研究性与应用性,也确实值得人们去研究开发,以创造出足够的价值。但是,就目前而言,神经网络还存在不少缺陷,比如智能水平还不够高,智能化达不到我们理想的要求,在诸多应用方面依然无法达到我们的需求,针对各种各样的应用领域,各类繁杂的问题需要解答时,往往达不到我们预期的效果。另外,网络分析能力不够强,在一些综合性质的理论问题中的处理能力还有待提高。并且源于对训练中稳定性所提出学习率要求很小,所以在学习过程中收敛速度过慢;当我们采用动量法时学习率有所提高,但在实际应用中仍然太慢。在神经网络的学习速率选择中缺乏有效的方法,学习速率不易选择,太快、太慢都不好,需要慢慢调节找到最佳学习速率。最后,类似于BP神经网络中,隐含层神经元数目的选取也没有准确有效的方法。2.4 本章小结本章介绍了神经网络的发展现状,它的结构以及在各个方面的应用,阐述了神经网络仍需要解决的一些问题。第3章 BP神经网络及其算法3.1 BP神经网络概述BP神经网络又被人们称为误差反向传播(error back - propagation)网络,它是一种多层的前馈网络。误差反向传播这一思想最早由Bryson等人在1969年提出,经过多人的研究论证形成了目前最流行的反向传播网络以及它附带产生的反向传播算法。反向传播网络有以下3个突出的特点:网络中的每一个存在的神经元模型拥有一个非线性激活函数,其中非线性是光滑的。网络可以存在一层或存在多层的隐含层,必须说明的是,这个层不是网络的输入或者输出的部分。输入数据中的有用特征会被这些隐含层慢慢地提取,学到存在于输入和输出中的某种关系。网络之间的连接强度通常是由网络中存在的突触决定,网络连接的改变可以通过突触连接数量变化,或通过权值的改变5。3.2 BP神经网络的结构BP神经网络实际上是一个多层感知器,因此它的结构也是典型的前馈型神经网络。如图3-1为一个具有两个隐层和单输出层的多层感知器的结构图。图3-1 多层感知器结构BP神经网络结构图如图3-2所示,它是单隐层网络,各层的节点数为相应神经元数目。x1xixnVWinmq误差反向传播输出层隐含层输入层信息正向传播.jy1yiynznziz1图3-2 BP神经网络结构图设BP神经网络需要接收的输入数据有个,用向量表示: (3-1)网络产生个输入数据,用向量表示: (3-2)则网络将对应有个输入节点,个输出节点,这样就形成了从维输入空间到维输出空间的非线性映射。BP神经网络在学习的时候可以分为两部分:正方向传播和反方向传播。当其向正方向传播信息时,要输入的信息从输入层进入,然后经过单隐层处理后一直传向输出层。要说明的是,每一层次只会到影响下一层变化,而不会影响上一层。如若得不到需要的目标输出,BP网络的信息就会转入反向传播。3.3 BP算法3.3.1 BP算法的基本原理BP算法的基本思想是我们所了解的最小二乘法。它使用了梯度搜索技术,达到网络的实际输出值与期望值的误差均方值达到最小。该算法在神经网络学习过程分两部分组成,一部分是信号的正向传播,利益部分是误差的反向传播。当BP神经网络在正向传播时,输入数据信息从输入层开始进入,经各隐层逐层处理后的数据信息继续传向输出层。若在输出层得到的实际输出值和我们期待的目标输出不相符,网络就会转入误差的反向传播。误差反向传播过程中输出层得到的误差以某种形式经过隐层向输入层逐层反向传播回去,并将传输过来的误差均匀的分摊给各层的所有神经元,使各层神经单元获得误差信号,然后使用这个误差信号作为依据修正各个单元权值。正如图3-2所示,BP神经网络有个输入节点,输出层有个输出点,隐含层有个节点,作为输入层节点和隐含层节点之间的连接权值,是隐含层和输出层节点之间的连接权值;隐含层和输出层节点的输入是前一层节点的输出的加权和,每个节点的激励程度由它的激发函数来决定3。1.BP网络的前馈计算在网络的学习阶段,设有N个训练样本,我们来假设某个固定的训练样本的输入输出模式为和,现在对它对网络进行训练。我们先将公式样本中的记号省略,以方便介绍,例如第个节点的隐含层输入为: (3-1)第个节点的输出为: (3-2)其中,为激发函数 (3-3) 其中,表示阈值,正的作用是让网路本身的激发函数沿水平轴方向右移;可为网络调节函数的输出形状,较小的输出值使函数逼近阶跃函数,较大的输出值使函数变得较为平坦3。对式(3-3)求导,可得: (3-4)那么第个节点的输出量通过加权系数沿着网络一直传播到第个节点,我们计算得到该节点的总输出为: (3-5)其中,是BP神经网络隐层的节点数。那么得到网络输出层第个节点的实际网络输出为: (3-6)当得到的网络输出与目标值不接近时,BP神经网络则会将其误差信号从输出端反向传播回去(如图3-2所示),并在传播过程中对加权系数不断修正。在对样本完成网络加权系数的调整后,然后再把数据信息送进入到另一样本模式对,继续进行学习。2.BP网络加权的调整规则设二次型误差函数(3-7)作为样本的对应误差函数, (3-7) 网络的平均误差函数为, (3-8)其中,作为样本模式的对数,作为输出的节点数。下面为大家介绍在式(3-7)的基础上的一阶梯度法的优化方法,也就是最速下降法。为简便介绍,省略下标,重写式(3-7),则有 (3-9) 1) 输出层权系数的调整权系数的修正公式为, (3-10)其中,为学习速率,。 (3-11)反向传播误差信号为, (3-12)其中, (3-13) (3-14)因此我们得到 (3-15)又因为 (3-16)因此输出层神经元的修正公式为 (3-17) (3-18)2) 隐含层节点权系数调整首先我们计算权函数的变化量如式(3-19ab) (3-19a)式中不可以直接计算,我们可以通过其他间接量进行计算,其计算如下 (3-19b)很显然可以得到 (3-20) 将原来省略的计入公式后,我们得到输出节点为, (3-21)对于隐含层节点有 (3-22)式中,是输出点的输出,是隐含节点的输出,是输入节点的输出。我们从式(3-19)到(3-22)的推导结果分析可得到,BP神经网络连接权值调为: (3-23)式中,表示第步,为平滑因子,。3.3.2 BP算法计算步骤如图3-3所示为BP算法的步骤流程图,过程为:(1)将所有权值初始化。(2)向BP神经网络提供需要训练样本数据。(3)计算各层节点输出值。(4)计算实验样本的期望值和仿真实验得到的值的偏差。(5)使用(3-23)计算输出权值(6)使用(3-23)计算隐含层输出权值(7)重复步骤(2)到(6),直到步骤(4)得到满意的偏差。 初始化给定训练样本计算隐含层和输出层各节点输出计算反向误差 权值学习学习结束? 结束NY 图3-3 BP算法的流程图3.4 BP神经网络的学习方式BP神经网络的学习方式划分具体如下:根据学习组织和管理划分为有监督学习、无监督学习和混合型学习三种。(1)有监督的学习是指网络的输出会和我们赋予的指定的值进行对比,然后才对神经网络的权值进行修改调整。BP网络的学习前后都要以给定的样本做为标准进行监督学习。(2)无监督学习是指网络学习过程没有学习样本指导,网络自己学习输入与输出的映射特征,这种方法使网络拥有较强的自组织自学习能力。(3)混合型学习过程先采用无监督学习,然后再采用有监督学习,前者抽取输入模式的特征,后者在对其进行处理,形成输入输出的某种映射。这样的学习过程把前两种学习学习方式的优点都集中,训练时间比第一种要快,训练精度比第二种要高。 3.5 BP神经网络性能分析3.5.1 BP网络优点(1)BP网络能为我们实现任何一种复杂的非线性映射的功能,可以用于解决内部机制繁杂的问题。(2)BP网络能通过学习带有正确答案的例子得到接近于事物之间的发展规律,它有着自学习能力,能通过学习到的规律预测新的未知答案。(3)BP网络具有泛化能力,能从给定的样本数据中学习知识,抽象出接近真实的规则。3.5.2 BP网络的不足1)BP网络中的BP算法学习速度很慢,其主要原因是:BP算法要优化的目标函数一般比较复杂,这样就会出现“锯齿形现象”,使得该算法效率不高。存在麻痹现象。因为无法求得每一次的迭代步长,就要预先赋予BP网络学习的步长,这导致BP算法效率低。2)网络训练很多时候会失败,特别在处理复杂问题时,其主要原因是:在理论上,BP算法只是一种局部搜索的优化方法,找到我们需要的全局极值不容易,网络自己就有可能陷入局部搜索,造成训练失败。3)BP神经网络的规模在解决应用问题的实例中存在矛盾。其网络规模无法为实例中的规模服务,网络容量的大小可能不足,还有网络是否可行,这导致BP神经网络在处理复杂性问题上不能达到令人满意的结果。4)BP神经网络的结构选择还有待我们去研究,目前为止,我们还没有找到一种有效的可行的方法去准确确定BP网络的结构。目前我们只能以前任的经验为指导。5)BP神经网络的预测能力(泛化能力)一直是我们追求的目的,我们一直希望它能越高越好,但是它又和网络本身的训练能力(逼近能力)相矛盾。它们会呈现正态分布,即在一定范围内,网络的训练能力和预测能力一起增长,但是超过该范围后训练能力继续曾大,预测能力却会下降。3.5.3 BP网络的缺陷与改进尽管BP神经网络已经发展成为目前最流行的神经网络,BP算法也得到人们的广泛应用,但是因为BP网络的本质为梯度下降法,所以总会存在一些不足之处。第一,由于BP算法采用的是非线性优化,比较容易形成局部极小值从而使我们无法得到全局最优值;第二,BP算法寻找最优值的参数比较多,这就导致其收敛速度表较慢;第三,构建神经网络的结构一直到现在也没有找到一个准确的方法,即无法确定隐层和节点的数量;第四,当我们需要在已经学习好的样本中加入新的样本时,会影响到原来的学习。虽然BP算法还无法达到我们满意的程度,但是我们一直在寻找改进BP算法的方法。到目前为止,比较有名的有几个:拟牛顿法、共轭梯度法、Levenberg-Marquardt法、附加动量法。3.6 本章小结在本章节中,简单介绍了BP神经网络,阐述了BP神经网络的BP算法,分析了BP网络及BP算法的优缺点,讲述一些目前在使用的改进BP神经网络方法。第4章 短时交通流量预测网络4.1 BP神经网络的设计与训练BP神经网络的设计主要是涉及到网络本身的几个层以及各个层次之间传递函数的确定。4.1.1 BP神经网络的设计方法(1)网络层数选择设计神经网络一般都会先确定网络的层数,在BP神经网络中我们可以包含不同的隐含层在其中。但是,现在的理论告诉我们,在没有限制隐含层节点数的时候,它可以用于任意非线性样本的映射。一般经验告诉我们,当样本数量比较少的时候,选择两层BP神经网络足以满足我们的需求。而当我们需要训练的样本数量比较多时就需要增加一个隐含层,但是BP神经网络一般情况下也不会拥有超过2层。(2)输入层节点数选择在BP网络中,输入层节点数取决于输入矢量的维数。比如我们要做的是交通流量预测,维数单一,只有一个变量的输入输出;再比如我们通过苍蝇的翅膀、触角、颜色去区分苍蝇的种类,这其中输入到输出的映射关系对应到BP神经网络就是这样:翅膀、触角、颜色三个作为输入,而种类则是输出6。(3)输出层节点数选择在BP网络中,输出层节点数取和输出该型数据的大小这两个因素。我们即将做的交通流量预测只有一个类型的数据,即交通流量。而且我们做的是短时交通流量的预测,所以数据并不会太大,因此我们仅需要一个输出即可6。(4)隐含层的节点数对于BP神经网络中隐含层的节点数,到目前为止还没有准确的理论方法指导,我们没有准确的解析式去确定其节点数,因此我们只能选择前人所积累的经验去选择。现在我们的认知中,隐含层的节点数与神经网络的输出和输入的变量都有关系。另外由于BP网络的局限性,为了不造成过拟合现象,隐含层节点数过多过少都不合适。我们只有在训练网络时谋求在一定的范围内改变隐含层的节点数,尽可能地去找到最优的节点数目,从而进行网络训练。根据前人的经验来看,一般使用两种方法去确定隐含层的节点数。第一,根据经验参照公式(4-1)进行选择: (4-1)式中,为隐含层的节点数,为输入的节点数,为输出的节点数,为1-10之间的常数7。对于选取多少个节点,需要我们根据公式得到的范围去做不同节点数的实验,找到最佳的目标。第二,根据Kolmogorov定理(强大数定理),任一个连续函数可以精确地用一个三层网络实现,即一个输入层,Sigmoid单隐层,一个线性输出层8。而隐含层当中的节点数目根据Kolmogorov定理由式(4-2)得出: (4-2)式中,为隐含层节点数;为输入层节点数。强大数定理只是给定一个比较靠近最佳节点数的值,并不是说该方法求得的节点数就是最佳节点数。比如六个输入时,根据式(4-2)求得的节点数为13,而我们应该选择13以及13附近的数目作为节点数,具体选择多少个隐含层神经元要根据训练情况而定。4.1.2 改进型训练方法由于BP网络本身也存在着一些不足之处,所以很多专家学者一直在对改进BP神经网络进行着一系列的探索和发掘。经过这些年的积累,人们已经找到了很多不错的改进BP神经网络的方法,比较著名的有附加动量法、拟牛顿法、共轭梯度法、自适应学习速率法、弹性BP法、以及Levenberg-Marquardt算法等。我们在这里主要介绍介绍共轭梯度法和Levenberg-Marquardt算法。1)共轭梯度法有鉴于BP网络在使用梯度下降法时,收敛速度慢,而拟牛顿法计算对于我们来说又较为复杂,研究者就开发出了共轭梯度法,从而尽量避免两者的缺点。共轭梯度法的第一步是沿着负梯度方向搜索,然后沿着当前搜索方向的共轭方向进行搜索,这样一来就可以快速达到最优值。当第一次迭代的搜索方向,之后的每一次迭代的搜索方向由式(4-5)决定: (4-5)其中, (4-6)根据所取形式不同,可构成不同的共轭梯度法。 (4-8)其中, (4-9)一般情况下,搜索方向在网络训练迭代过程中会按照一定的周期复位到负梯度方向,这个周期长度为网络所有权值和偏差的总数目。共轭梯度法收敛速度增加很多,而且需要的存储量和计算量并不多。因此我们可以看出,共轭梯度法对于那些权值很多的网络训练是非常有效的。2)Levenberg-Marquardt算法我们要了解的Levenberg-Marquardt算法,实际上可以说是梯度下降法和牛顿法的结合。它的优势在于当前网络权值数目比较少时收敛的速度非常快,它需要迭代的次数比较少,精确度也很高。Levenberg-Marquardt算法的思路是网络的每一次迭代不仅仅会沿着单一的负梯度方向搜索,而且误差还会沿着网络恶化的方向进行搜索,在搜索的同时间内不断在两个算法之间适应调整来优化网络权值,以达到网络可有效地进行收敛的目的。Levenberg-Marquardt优化算法,我们又称为阻尼最小二乘法,它的权值调整公式为: (4-10)其中,为误差向量;为误差对权值微分的雅克比矩阵;为一个标量,且变大时,它会向最速下降法靠近;减少至零时,他靠向高斯-牛顿法。因此,L-M优化算法是在高斯-牛顿法和具有学习率的最速下降法之间的平滑调和。L-M优化算法的迭代步骤可分为四步:第一,把输入量全部送入BP神经网络,并且计算出网络的输出数据。第二,计算误差相对于微分之后的权值的雅克比矩阵J:它首先定义Marquardt的敏感度: (4-11)从式(4-11)知道,敏感度误差函数对层输入的第个元素变化的敏感性,其中,为每一层的网络加权和。敏感度关系式为: (4-12)由是(4-12)可以值得,敏感度可以由网络的最后一层向第一层传播: (4-13)使用(4-13)计算雅克比矩阵的元素: (4-14)第三,使用式(4-10)求得。第四,用重复计算误差平方和。当我们得到的新和小于步骤一种计算的和时,就要用除以,且,转入步骤一;否则,用乘以,转入步骤三,当我们得到的误差平方和减少到某一目标误差是,Levenberg-Marquardt算法就算达到我们的目的了,可以认为算法这时已经收敛9。4.1.3 MATLAB神经网络工具箱在MATLAB神经网络工具箱中,有关BP网络的函数一般包括创建函数、性能函数、传递函数、学习函数、训练函数以及作图像输出的显示函数。创建函数如表4-1所示:表4-1 创建函数函数名功能效用newcf创建级联前向BP网络newff创建一个BP网络传递函数如表4-2:表4-2 传递函数函数名功能效用logsig作为S型的对数函数tansig作为双曲正切S型传递函数Purelin作为线性函数学习函数如表4-3:表4-3 学习函数函数名功能效用learngd通过输入、误差和学习速率来计算权值/阈值的变化率Learngdm利用输入、误差、学习速率以及动量常数来计算权值/阈值的变化率训练函数如表4-4:表4-4 训练函数函数名功能效用trainbrBayes 规范化BP训练函数traincgbPowell-Beale连接梯度BP训练函数traincgfFletcher-Powell连接梯度BP训练函数traingdx 动量及自适应lrBP的梯度递减训练函数trainlm Levenberg-Marquardt BP训练函数trainoss一步正切BP训练函数trainrp 带反弹的BP训练函数trains顺序递增BP训练函数性能函数如表4-5:表4-5 性能函数函数名功能效用mse作为BFGS准牛顿BP算法函数msereg作为梯度下降法BP算法函数显示函数如表4-6:表4-6 显示函数函数名功能效用plotperf绘制网络性能plotes绘制误差曲面Pltep绘制权值以及阈值在误差曲面上的位置4.2预测网络的设计4.2.1神经元个数本次毕业设计采用的是含一个隐含层的三层BP神经网络。这次的数据采集、训练、仿真,这些过程中,我们只有一个变量交通流量。我们采取的3个输入,1个输出的网络设置。我们要预测未来某一时段的交通流量,通过分析所训练的交通流量数据,我们发现同时期的历史数据和要预测的某个时间段的交通流量关系较为密切。比如我们要预测某个时段的交通流量,我们要知道前三天这三个时间段的交通流量。因此我们的输入量为前三天同一时间段的交通流量数据。因为我们要提高网络的准确率,就需要一定的样本数据,本次毕业设计所用交通流量数据来自于江门市交管局指挥大队,数据为江门市龙湾路(西环路龙湾路口)2013-3-25 至 2013-5-01每天小时流量数据。我们使用其中30天数据流量进行网络训练,选择最后4天进行仿真预测。对于隐含层的神经元的选择,我们根据式(4-1)得到网络的初步隐含层神经元数目选择区域为26,36,最后选择的隐含层神经元数目为26、30、34分别训练。4.2.2激活函数的选择S型函数有以下几个特点,首先,S型函数存在非线性的,饱和的;其次,S型函数存在最大、最小值,可以限定权值的上下边界;最后,S型函数是连续且光滑的,即处处可微。本次仿真实验的BP网络要求隐含层激活函数处处可微,因此选择S型函数作为激活函数。其中tansig函数作为隐含层的激活函数;purelin型函数作为输出层函数。4.3预测网络的训练与测试4.3.1 训练参数设置如前文所述,本文采用三层神经网络,网络结构如图4-1所示。分别对三种网络结构进行了仿真实验,各网络神经元个数如下:3-26-1、3-30-1、3-34-1。BP神经网络的训练步长均为5000,设置训练精度为0.01,学习率为0.01,网络的训练函数则选用动量及自适应lrBP的梯度递减训练函数traingdx。第n-3天第n-1天第n-2天第n天输入层隐含层输出层图4-1 预测网络结构图本次仿真是对江门市西环路-龙湾路口2013年3月26日至 2013年5月1日每天的小时交通量数进行仿真实验,根据预测日前三天同时段的交通量预测当天该时段的交通量。4.3.2仿真实验建立BP网络之前,首先要把实验数据归一化,这样的好处有两个:第一,归一化后的数据存在范围基本都被压缩在里中心点较近的地方,这样对于使用S形函数的作为训练函数的网络可以提高训练精度。第二,归一化后的数据都在-1,1这个区域内,数据值小可以加速网络的学习,减少学习时间。具体的归一化MATLAB仿真训练程序如下:for i=1:3 P(i,:)=(P(i,:)-min(P(i,:)/(max(P(i,:)-min(P(i,:);endfor i=1:1 T(i,:)=(T(i,:)-min(T(i,:)/(max(T(i,:)-min(T(i,:);endfor i=1:3 P_test(i,:)=(P_test(i,:)-min(P_test(i,:)/(max(P_test(i,:)-min(P_test(i,:);endfor i=1:1 T_test(i,:)=(T_test(i,:)-min(T_test(i,:)/(max(T_test(i,:)-min(T_test(i,:);end数据初步处理完成后,同时进行3个网络的建立和训练,编写Matlab程序如下:a=26 30 34for i=1:3%建立仿真网络net=newff(minmax(P),a(i),1,tansig,purelin,traingdx);%设置网络最大训练步长net.trainParam.epochs=5000;%设置网络精度net.trainParam.goal=0.01;%设置网络学习率LP.lr=0.01;net=init(net);net=train(net,P,T);Y(i,:)=sim(net,P_test);end本次试验是同时训练三个网络,从中对比找到拥有最优的隐含层神经元数目的BP网络。MATLABA语句a=.for i=1:n.end就是为此准备,a=.语句中,中括号内为我们选取的隐含层神经元数目,可以是多个;for语句中n为对应的网络个数;我们可以任意改变神经元的数目,训练更多的网络进行对比,本次实验根据式(4-1)得到的范围中选取三个进行仿真训练。网络的训练结果如图4-2所示,图4-2 网络训练结果由网络训练图(该图对应网络隐含层神经元个数为34个)可以看出,网络达到稳定并达到实验要求的训练精度只需要500多步,这就证明了本次网络训练步长短,而时间也不会太久,符合我们的实验要求和应用的目的。本文采用2013年3月26日至 2013年4月24日共31天的小时交通量进行网络训练,训练的结果如表4-7所示。表4-7 不同网络训练结果网络结构训练数目(组)迭代次数训练时间(s)(3,26,1)67277913.203(3,30,1)672113618.5(3,34,1)67255711.781由表4-7的数据可以看出,隐含层神经元为34个的神经网络,无论迭代次数还是训练时间都是三个网络中最好的。因此选定预测网络结构为3-34-1。利用训练好的网络对2013年4月28日至 2013年5月1日各时段的小时交通量共96组数据进行预测。MATLAB进行仿真预测得到的真实数据和预测数据进行拟合的输出图型如图4-3所示。图4-3 真实值与预测值拟合图由图4-3可以看得到,所测试的96组数据得到的真实值(蓝色曲线)和预测值(绿色曲线)的拟合度还是令人满意的,这也证明了我们所设计的BP网络的预测能力还是比较好的,能达到仿真预测的目的。值得说明是,由于交通流量数据本身具有随机性,我们可以换用不同的训练函数去训练BP网络,这样也可以得到不同的数据拟合图,可以从中找到最优的训练方法。得到96组预测结果进行反归一化处理后,计算真实值和预测值之间的相对误差,具体情况如表4-8和表4-9所示。表4-8 预测结果(一) (交通量单位:辆/小时)预测日交通量时间段4月28日4月29日实际值预测值相对误差实际值预测值相对误差0:001:00171145-15.20%15419023.38%1:002:00839615.66%11297-13.39%2:003:007671-6.58%138105-23.91%3:004:006652-21.21
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省黄山市普通高中2026届高二化学第一学期期中综合测试试题含解析
- 新刑诉法试题及答案
- 健康银行面试题及答案
- 四川机械联考试题及答案
- 陕西中职试题及答案
- 深圳网约车考试试题技巧及答案
- 康复技术考试题及答案
- 胃癌手术试题及答案
- 学校119消防日活动总结
- 2020-2025年资产评估师之资产评估基础通关题库(附带答案)
- 加强即时检测的临床应用管理
- 《大学》教学讲解课件
- DB32∕T 4108-2021 混凝土复合保温砌块(砖)墙体自保温系统应用技术规程
- 第六章第二节供应过程的核算课件
- 三甲医院医疗退费管理制度
- 数学人教A版(2019)选择性必修第一册2.5.1 直线与圆的位置关系 教案
- J-STD-020D[1].1中文版
- SF∕T 0124-2021 录像过程分析技术规范
- 四讲业主业主大会业主委员会PPT课件
- 永磁涡流传动器的应用示范及产业化20150706
- EPC项目—承包人建议书、承包人实施计划
评论
0/150
提交评论