基于粒子滤波与BP神经网络的短时交通流预测
2018-09-10王川张宝文
王川 张宝文
摘 要:为了有效缓解当前交通拥堵问题,结合时下流行的智能交通系统,本文将粒子滤波算法引入短时交通流预测过程中,提出一种基于粒子滤波与神经网络的预测算法。该系统通过BP神经网络的非线性映射功能,分裂选择适当的权值,在多次训练之后能够提高算法中粒子的多样性,改善算法滤波的性能,最终达到提高预测精度的目的。另外,本文以河南省新乡市交通局公交和出租车数据作为数据来源,通过与传统的粒子滤波算法和BP算法的预测结果进行对比,发现本文所提出的方法对短时交通流预测具有更好的预测精度。
关键词:粒子滤波模型;BP神经网络;短时交通流预测;智能交通
中图分类号:U491.1;TP183 文献标识码:A 文章编号:1003-5168(2018)02-0035-04
Prediction of Short-time Traffic Condition Based on Particle
Filter and the BP Neural Network
WANG Chuan ZHANG Baowen
(Department of Computer and Information Engineering, Henan Normal University,Xinxiang Henan 453007)
Abstract: In order to effectively alleviate the current traffic congestion problem, a prediction algorithm based on particle filter and neural network was proposed by introducing the particle filter algorithm into the short-term traffic flow prediction process in combination with the popular intelligent traffic system. By using the nonlinear mapping function of BP neural network, the diversity of the particles in the particle filter algorithm was improved by the division, selection and multiple training of the weights, and the filtering performance of the algorithm was improved. Finally, the accuracy of prediction has been improved. In addition, this paper took the data of bus and taxi from the department of transportation in Xinxiang city of Henan province as the experimental data source, the experimental result showed that the proposed method has better performance of predicting short-term traffic flow by comparing with the traditional particle filter algorithm and BP algorithm.
Keywords: particle filter;BP neural network;short-time traffic condition forecast;intelligent transportation
隨着近年来城市化进程不断推进,人们的生活水平有了较大程度的提高,城市中汽车的数量与日俱增,除了公交车和出租车外,私家车早已不计其数,导致交通环境严重恶化,交通道路堵塞,交通事故频发。随着汽车数量的不断增加,整个社会对于交通运输的便利安全性提出了更高的要求,如何在有限的道路上合理规划交通,如何在交通拥挤时段合理配置交通信号,如何最大程度地降低交通事故的发生率,这些都是摆在交通领域有关部门面前的一大难题,有效解决城市交通问题是我国乃至全世界亟待解决的重大问题[1]。
鉴于以上问题,智能交通系统开始走入人们的视野。其通过人、车和路三者合理的配合来提高交通运输效率,缓解交通堵塞,有效提高了道路的通行能力,降低了能源消耗,同时也减轻了环境污染。而精确、高效的交通流预测是智能交通系统的重要组成部分。根据交通流预测的时间,通常可以将其划分为长时预测与短时预测。长时预测主要是针对年、月、日的宏观交通预测,短时预测则主要是针对小于1h的微观交通观测,而这正好符合现实的需要,因此,本文主要的研究对象为短时交通流预测[2]。
迄今为止,关于短时交通流预测的方法有很多种,常用的方法有卡尔曼滤波法、神经网络、小波分析、马尔科夫预测、T-S模糊神经网络模型和历史平均值法等[3-5]。城市交通流是高度非线性的、复杂性的时间序列问题[6]。虽然卡尔曼滤波算法也是交通流预测中非常重要的方法之一,但由于其是线性模型,当预测间隔小于一定的值,或者交通流变化的随机性和非线性再强一点时,该模型的性能可能会大打折扣。因此,鉴于粒子滤波可以适用于非线性、非高斯噪声系统模型这一特性,本文采用粒子滤波与神经网络相结合的预测模型来对当前城市短时交通流进行预测。
1 基础理论
1.1 BP神经网络
BP神经网络是一种按误差逆向传播算法训练的多层前馈网络。其学习规则是使用了最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构一共有3层,分别是输入层、隐藏层和输出层。
BP算法是一种有监督式的学习算法,主要思想是:首先将学习样本输入其中,接着利用反向传播算法将网络的权值与偏差进行数次训练,确保输出值与期望值尽可能接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。具体的步骤如下。一是初始化网络参数。根据当前所要解决的问题和输入样本数量,设定网络层数、输入节点数及输出层节点数,即给定各连接权值。二是网络训练过程。将需要训练的样本输入网络后,通过输入层计算输出值,同时计算训练误差。三是误差反向传播,权值调整。将训练得到的输出值与期望的输出值进行比较,若误差合理,则满足程序结束的条件,可以进行下一轮运行;若输出值没有达到预期的结果,则将差值进行反向传递,按照设定调整权值,重新进行第二轮训练。四是网络训练结束。当训练误差值满足当前训练可以停止的目标精度时,神经网络训练完成,此时记录下各节点的权值。
1.2 粒子滤波算法
粒子滤波算法是一种解决非线性滤波问题的著名方法。此方法的基本思想是用一组样本(或称粒子)来近似表示系统的后验概率分布,然后使用这一近似的表示来估计非线性系统的状态[7]。
假设描述非线性动态系统的状态空间模型为:
xk=fk(xk-1,vk-1)
zk=hk(xk,uk) (1)
式(1)中,xk表示系统在k时刻所处的状态,zk表示k时刻的观测向量,fk表示系统的状态转移函数,hk表示系统测量函数。vk和uk分别表示系统的过程噪声及观测噪声。假设系统过程为m阶马尔科夫过程。根据非线性滤波问题解释,当前的任务就是根据带有噪声的观测值。递归估计非线性系统状态的后验概率密度p(x0∶k∣z1∶k)。x0∶k表示到k时刻系统所产生的状态序列,z1∶k表示观测值序列。
粒子滤波算法的实现原理就是构造一个基于样本的后验概率密度函数。但是,在实际应用中,直接从后验概率密度分布中抽取有效的样本是十分困难的。因此,如何有效地抽取后验分布的样本,是降低统计估计方差、提高粒子滤波算法滤波性能的关键。所以,引入重要性采样方法可以提高采样效率。同时,采用一种重要性采样密度函数来抽取样本,就避免了直接从后验概率密度中抽取样本的难度。
采取合适的重要性采样密度函数,可以递归计算更新粒子的权值。后验滤波密度可以近似为[pxk-m+1∶kz1∶k≈i=1Nwikδ(xk-m+1∶k-xik-m+1∶k)]。
2 粒子滤波-神经网络模型
粒子滤波算法中通常会存在退化现象。因为粒子权值的方差会随着时间而递增,所以退化现象是不可避免的。经过若干次迭代之后,粒子会出现重尾分布,也就是除了极少数粒子之外,其他绝大多数粒子的权值会小到可以忽略的程度。退化就意味着如果继续迭代下去,将会造成很大的时间复杂度,并且会影响最終结果的精度。虽然利用采样和重采样原理可以解决退化现象,改善性能,但会出现多样性丧失、具有较高权值的粒子被多次统计等新问题。这会对预测的交通流结果产生很大的影响。
所以,本文提出一种新的预测交通流的方法。将粒子滤波和BP神经网络相结合,先增大概率分布尾部粒子权值,同时将高权值的粒子分裂为若干小权值的粒子,以此来提高粒子样本的多样性和减小误差,最终达到增加预测精度的目的。因此,本文提出的粒子滤波-神经网络算法可以调节粒子权值,并使其进入高权值区域,从而增加滤波精度,以达到提高预测交通流精度的目的。当粒子数目较少时,此算法与传统的粒子滤波算法相比,可以显著提高预测精度。
由1.2部分可知,即使选择最优的密度函数,退化现象依然存在。如果2个连续分布qk(x1∶k-1)和qk-1(x1∶k-1)之间相差太大,那么增量权值的方差也会很大。因此,为了避免这类缺陷,决定利用BP神经网络,在重采样的算法上增加2个步骤。第一步是分裂。在k时刻,计算通过重要性采样密度函数得到的粒子的权值,然后将权值大于某一阈值的粒子分裂为2个粒子,接着舍掉权值较小的粒子来保持粒子数目恒定。第二步是利用神经网络调整权值较小的粒子。
粒子滤波-神经网络算法的具体步骤如下:
FOR:k=0,1,2,…
Step1:从重要性采样密度函数中抽取N个粒子,得到的粒子用[xi0∶k,1/NNi=1]表示,重要性密度函数取转移先验:
[xik~q(xikxik-1,zk)=pxikxik-1] (2)
Step2:对i=1,…,N计算重要性权值:
[wik=wik-1p(zkxik)pxikxik-1q(xikxi1∶k-1,z1∶k)] (3)
在时刻k时,用式(3)计算粒子的权值,记为权值矩阵[W=wiki=1,2,3,…,N],将权矩阵中的元素按照降序排列,以阈值wp大小为界,将权值矩阵W分为高权值矩阵w1和低权值矩阵w2。
Step3:权值分裂。
Step4:权值调整:通过权值分裂步骤之后,原先的权值矩阵W变为[W=Wiki=1,2,3,…,N],[Wik]为已经降序排列的粒子权值。选择矩阵[W]中由小到大的q个粒子的权值,利用BP神经网络调整权值较小的粒子。
Step5:将N个粒子的权值进行归一化:
[wik=Wikj=1NWik] (4)
Step6:k=k+1,返回Step1。
3 仿真实验与分析
3.1 数据来源
交通流量(Volume)是指通过某车道、断面、点的单位时间内的机动车辆数。交通流量和速度一样,其数值可直观地描述当前道路的交通状况,以及一段时间内的流量变化趋势及波动状况[2]。因此,本文选用交通流量进行分析。
试验数据来源于河南省新乡市交通局提供的公交和出租车数据。由于数据量巨大,因此选择了大学城某路口20个工作日的数据。检测器每隔5min记录一次该路口的交通流量。本文选择工作日的早晚高峰期(06:00—09:00,17:00—20:00)为研究重点。将所提供的20d工作日的数据序列分为两类,其中80%用于对小波-隐马尔科夫模型的训练,得到各参数,另外20%的数据用于验证所预测的结果。
3.2 预测评价标准
为了评价交通流量预测的效果,常用的评价指标有均方误差(MSE)、平均相对误差(MRE)。MSE用来反映误差分布情况,值越小表明误差分布就越集中,预测效果越好。MRE可以用来表征预测值与真实值偏离的程度,值越小说明预测值与实际值之间的偏离越小[8]。这些指标的计算公式如下:
[MSE=1Ni=1N(yi-yi)2] (5)
[MRE=1Ni=1Nyi-yiyi×100%] (6)
式(5)(6)中,yi代表原始的交通流数据,[yi]代表预测之后的数据。这些指标的值越小,说明模型的健壮性越好,预测的精度也越高。
3.3 预测性能分析与评价
根据所构建的交通流预测模型,试验中的主要参数设置为数据采集周期T=5min,粒子数为500。
依据前文所述算法的具体步骤,使用MATLAB进行仿真,得出基于粒子滤波与神经网络的算法对选择路段的交通流状态预测结果。如图1所示,其中黑色曲线为真实值曲线,红色曲线为预测值曲线。从图1可以看出,预测曲线与真实曲线具有较好的拟合,只是在状态急剧变化较大的情况下,预测点才会出现一点偏差。总体来说,粒子滤波-神经网络对于交通流的预测具有较好的性能,符合试验预期。
[原始数据][粒子滤波-神经网络模型预测数据][50
40
30
20
10][交通流量(辆/时段)][0 15 30 45 60 75][时段/5min]
图1 粒子滤波-神经网络模型预测结果图
然后,为了能更加直观地表现粒子滤波-神经网络模型的性能,采用传统的神经网络模型和粒子滤波模型作为对照组,绘制出预测结果图,来对这3种模型的预测性能进行对比分析。图2表明,这些模型的预测结果均反映了实测流量的变化状况,但粒子滤波-神经网络模型的预测值与实际测试值最为接近。