基于MATLAB的BP神经网络人群流量预测的实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

论文题目MATLAB基础上的BP神经网络人群流量预测学生姓名学号专业1MATLAB基础上的BP神经网络人群流量预测摘要:通过对旅游景点、商业网点等人口密集场所的人群流量进行预测,对于合理控制旅游景点、商业网点等场所的人口数量,预防人群踩踏事故的发生具有非常重要的意义.本文首先介绍了人群流量的BP神经网络预测方法,并建立了四个BP神经网络模型,并结合模型编写了相应的MATLAB运算程序,随后用所建立的网络模型对德州市某路口单向的人群流量进行了预测,最后还分析了不同输入、输出结构、隐含层神经元的个数、以及不同传递函数等因素对BP神经网络性能的影响.关键词:人群流量;BP神经网络;MATLAB1BP神经网络基本原理BP神经网络是一种常见的神经反馈网络,它是一种具有三层或者三层以上神经元的神经网络,其基本的结构包括输入层、隐含层以及输出层.当一个学习样本提供给输入神经元后,该神经元的激活值一般从输入层经过隐含层向输出层进行传播,在输出层的各个神经元获得网络的输入响应后,然后按照减少实际输出样本与网络输出之间误差的方向,从BP神经网络的输出层方向经过各隐含层最后回到输入层,进而达到逐步修正各连接权值的目的,这种算法就是BP算法.这也就是说BP神经网络是通过反向的误差传播,在传播过程中不断修正其权值和阀值,进而使误差达到或者接近其理想水平的一种神经网络.BP神经网络从本质上来说是高精度的数值拟合的一种神经网络方法,它的基本原理就是把激励函数串联起来,通过改变各个激励函数的系数,从而达到减小误差的目的.BP神经网络因为其预测的精度高,网络训练效果好,自适应性强,稳定性好等特点而得到了越来越广泛的使用.BP神经网络作为一种较智能型的网络预测模型,在数学建模以及实际问题的解决中发挥着越来越重要的作用.图一为常见的带一个隐含层的BP神经网络的一般结构,图二为一个基本的BP神经元模型.输入数据输入层隐含层输出层输出数据图1含一个隐含层的BP神经网络PPaf2pp图2基本的神经元模型2BP网络求解过程利用BP神经网络进行的求解过程可以按照以下六个步骤来进行(1)输入原始数据(2)将原始数据归一化处理(3)进行网络训练(4)对原始数据进行仿真(5)将仿真后得到的新数据与已知数据进行比较(6)对得到的新数据再进行仿真.3数据处理与数据拟合对原始数据进行预处理的方法主要有下面几个:(1)对原始数据归一化处理:此方法是将原始数据都变为-1-1之间的数,尽量消除原始数据在收集过程中所带来的一系列对实验结果可能造成的影响,归一化处理所用到的函数主要有mapminmax、postmnmx、tramnmx等函数.当然,也可以利用公式xxxxxkkminmaxmin进行MATLAB编程实现原始数据的归一化.(2)标准化处理:这一方法的目的是将收集到的原始数据都化为均值为0,方差为1的一组新的数据,标准化处理所用到的函数主要有prestd、poststd、trastd等函数.(3)主成分分析法:对原始数据进行正交处理,借此来减少输入的原始数据的维数,这一方法所用到的函数主要有prepca、trapca等函数.(4)相关性分析法和统计学回归分析法:对原始数据进行统计学的回归分析和相关性分析,可以借助有关统计学软件进行,或者借助postrg函数编程实现.本文把收集到的德州市某路口2016年12月15—21日8:00—22:00的单向人群流量数据作为一个样本,每10分钟为一个时间间隔.我们每60分钟的数据作为一组,这样就把原始数据总共分成了14组.一般首先要对原始数据进行归一化处理,以防某些原始数据的特征被忽视.对原始数据进行归一化处理一般采用以下两种公式:xxxxxkkminmaxmin或xxxxxkkminmaxmax.我们知道人群流量越大,发生踩踏事故的概率就越大,因此本文采用公式xxxxxkkminmaxmin进行原始数据归一化处理.归一化后的数据如下表所示:3归一化后2016年12月17日德州某路口单向8:10—22:00人群流量时间流量时间流量时间流量时间流量时间流量时间流量8:100.03579:200.175310:300.587711:400.792212:500.564914:000.56178:200.06499:300.142910:400.649411:500.870113:000.477314:100.47418:300.16239:400.175310:500.642912:000.701313:100.740314:200.45458:400.15919:500.373411:000.73712:100.805213:200.584414:300.46758:500.191610:000.383111:100.792212:201.000113:300.564914:400.38199:000.159110:100.454511:200.73712:300.789113:400.443514:500.33779:100.175310:200.51311:300.76212:400.737113:500.457815:000.301915:100.269516:200.623417:300.701318:400.344219:500.162321:000.097415:200.269516:300.620117:400.584418:500.392220:000.129921:100.029215:300.28916:400.314917:500.600619:000.333820:100.220821:200.042215:400.321416:500.607118:000.340919:100.204520:200.116921:300.019515:500.496817:000.590918:100.396119:200.214320:300.097421:400.084416:000.587717:100.610418:200.246819:300.136420:400.040921:500.011116:100.444817:200.675318:300.207819:400.259720:500.120122:000.0844图3为对8:10到15:00所有人群流量进行的二阶、三阶以及四阶多项式拟合.图38:10-15:00人群流量多项式拟合051015202530354045-0.200.20.40.60.811.2data1quadraticcubic4thdegree4图4为对15:10-22:00所有人群流量进行的二阶、三阶以及四阶多项式拟合.图415:10-22:00人群流量多项式拟合4BP神经网络结构设计本文采用只含有一个隐含层的BP神经网络实现,由于BP神经网络的计算结果可能会受到输入层、隐含层以及输出层神经元个数以及输出层传递函数的影响.因此本文主要从隐含层神经元个数、输出层神经元个数和输出层传递函数等三个方面进行网络结构的设计和调整.由于输入向量有6个元素,所以网络输入层的神经元个数设为6,对于隐含层节点数使用经验公式nmmks来确定,其中m为输入层节点数,其值取为6,n为输出层节点数,其值取为6,k为学习样本个数,其值取为67.根据这一经验公式,代入相关数据,我们计算出的BP神经网络隐含层所含有的节点数为34个.根据另一经验公式nms或nnnmmns12.051.035.077.054.243.0,其中m为输入层节点数,其值取为6,n为输出层节点数,其值取为6,为1—10之间的整数,其值取为9.根据这一经验公式,代入相关数据,我们计算出的BP神经网络隐含层节点数为13个.根据上面两个经验公式我们可以得到隐含层节点数的一个初始值,然后再利用隐含层节点数不断修剪或者逐步增长的方法确定最终神经元的个数.051015202530354045-0.4-0.200.20.40.60.81data1quadraticcubic5thdegree5逐步增长法就是从一个从较简单的BP神经网络开始进行网络训练,若网络训练的结果不符合要求,则逐步增加隐含层神经元个数直到最后的结果符合要求为止.而逐步修剪法则是从一个较复杂的BP神经网络通过逐渐减少隐含层神经元个数直到达到要求为止.BP神经网络的隐含层神经元传递函数一般采用S型正切函数tansig(),输出层神经元传递函数一般采用纯线性函数purelin()或者S型对数函数logsig().本文结合实际情况,将实际网络训练参数进行了以下设定:训练次数15000,训练目标0.0015,由于学习速率参数net.trainparam.lr不能选择的太大,如果选择的太大可能会使算法不收敛;同样学习速率参数net.trainparam.lr也不能选择的太小,如果选择的太小可能会使训练时间过长.而且学习速率参数一般选择0.01—0.1之间的值,本文结合具体要求,将学习速率选为0.1.5利用设计的BP神经网络结构进行人群流量预测本文BP神经网络的输入向量为前一个小时的6个人群流量,目标向量为10分钟后的下一个小时的6个人群流量,即用8:10—9:00的6个人群流量来预测8:20—9:10的6个人群流量......依次迭代下去.因此,此BP神经网络的输入输出向量都是6维向量,将8:10—19:20共67组原始数据作为训练样本代入已经训练好的模型,通过对原始数据进行仿真模拟和对原始数据进行归一化处理,可以得到19:30—22:00人群流量的预测值共10组.图3为输入前9个时间点的人群流量预测出来的人群流量变化趋势图.68101214161820222400.050.10.150.20.250.30.356图5人群流量变化趋势一般我们认为,隐含层中的神经元数目越多,其收敛速度也就越快,但是随着隐含层中神经元数目的增多也很容易造成网络训练过度的不良后果.同时,由于纯线性函数purelin()的输出值可能为任意值,因此BP神经网络训练的收敛速度较慢;S型对数函数logsig()的输出值一般限制在[0,1]范围内,因此BP神经网络的收敛速度较快.通过仿真模拟后的曲线,我们可以发现,以每十分钟为一个时间间隔的预测结果较为理想,且与BP神经网络的结构和传递函数特征相吻合.6预测结果分析通过利用所设计的BP神经网络进行人群流量预测分析后,我们发现,该路口的人群流量在一段时间内比较密集,而在一段时间内人群流量较为稀疏.而且我们还发现不同日期内的人群流量总体趋势是处于波动的状态,我们猜想这可能与上下班高峰期以及与节假日等因素有关.其中在人群流量密集的时间段应该引起我们的注意,因为这个时间段内极易导致人群踩踏事件的发生.通过对人群流量的预测分析,我们发现,所建立的BP神经网络模型可以较好的实现预测的目的,其预测结果在一定程度上可以指导有关部门及时采取措施,避免踩踏事故的发生.7结束语BP神经网络拥有独特的非线性、非凸性、自适应性和处理各种信息的能力,因而BP神经网络在数据的预测中有着广泛的应用.BP神经网络还有对信息并行处理及并行推理的能力,因此可以说BP神经网络从原理上就比传统的数据预测方法要快得多.通过对德州市某路口人群流量的预测分析可知,本文选用的BP神经网络能够很好的进行人群流量预测.但是由于不同时间、不同地点的人群流量波动性较大,因此应该选取合适的时间间隔、及时的进行数据修复、筛选出合理的训练样本,而且还需要结合实际数据进行更加深入的调查研究,才能达到正确进行网络训练,进而达到准确预测的目的.参考文献:7[1]张德丰,等.Matlab神经网络应用设计[M].北京:机械工业出版社,2009[2]魏海坤.神经网络结构设计的理论与方法[M].北京.国防工业出版社.2005[3]韩力群.人工神经网络教程[M].北京:北京邮电大学出版社,2006[4]卓金武,魏永生,秦健,李必文.MATLAB在数学建模中的应用[M].北京:北京航空航天大学出版社,2011.

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功