王川 張寶文
摘 要:為了有效緩解當(dāng)前交通擁堵問題,結(jié)合時(shí)下流行的智能交通系統(tǒng),本文將粒子濾波算法引入短時(shí)交通流預(yù)測過程中,提出一種基于粒子濾波與神經(jīng)網(wǎng)絡(luò)的預(yù)測算法。該系統(tǒng)通過BP神經(jīng)網(wǎng)絡(luò)的非線性映射功能,分裂選擇適當(dāng)?shù)臋?quán)值,在多次訓(xùn)練之后能夠提高算法中粒子的多樣性,改善算法濾波的性能,最終達(dá)到提高預(yù)測精度的目的。另外,本文以河南省新鄉(xiāng)市交通局公交和出租車數(shù)據(jù)作為數(shù)據(jù)來源,通過與傳統(tǒng)的粒子濾波算法和BP算法的預(yù)測結(jié)果進(jìn)行對比,發(fā)現(xiàn)本文所提出的方法對短時(shí)交通流預(yù)測具有更好的預(yù)測精度。
關(guān)鍵詞:粒子濾波模型;BP神經(jīng)網(wǎng)絡(luò);短時(shí)交通流預(yù)測;智能交通
中圖分類號:U491.1;TP183 文獻(xiàn)標(biāo)識(shí)碼: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
隨著近年來城市化進(jìn)程不斷推進(jìn),人們的生活水平有了較大程度的提高,城市中汽車的數(shù)量與日俱增,除了公交車和出租車外,私家車早已不計(jì)其數(shù),導(dǎo)致交通環(huán)境嚴(yán)重惡化,交通道路堵塞,交通事故頻發(fā)。隨著汽車數(shù)量的不斷增加,整個(gè)社會(huì)對于交通運(yùn)輸?shù)谋憷踩蕴岢隽烁叩囊?,如何在有限的道路上合理?guī)劃交通,如何在交通擁擠時(shí)段合理配置交通信號,如何最大程度地降低交通事故的發(fā)生率,這些都是擺在交通領(lǐng)域有關(guān)部門面前的一大難題,有效解決城市交通問題是我國乃至全世界亟待解決的重大問題[1]。
鑒于以上問題,智能交通系統(tǒng)開始走入人們的視野。其通過人、車和路三者合理的配合來提高交通運(yùn)輸效率,緩解交通堵塞,有效提高了道路的通行能力,降低了能源消耗,同時(shí)也減輕了環(huán)境污染。而精確、高效的交通流預(yù)測是智能交通系統(tǒng)的重要組成部分。根據(jù)交通流預(yù)測的時(shí)間,通??梢詫⑵鋭澐譃殚L時(shí)預(yù)測與短時(shí)預(yù)測。長時(shí)預(yù)測主要是針對年、月、日的宏觀交通預(yù)測,短時(shí)預(yù)測則主要是針對小于1h的微觀交通觀測,而這正好符合現(xiàn)實(shí)的需要,因此,本文主要的研究對象為短時(shí)交通流預(yù)測[2]。
迄今為止,關(guān)于短時(shí)交通流預(yù)測的方法有很多種,常用的方法有卡爾曼濾波法、神經(jīng)網(wǎng)絡(luò)、小波分析、馬爾科夫預(yù)測、T-S模糊神經(jīng)網(wǎng)絡(luò)模型和歷史平均值法等[3-5]。城市交通流是高度非線性的、復(fù)雜性的時(shí)間序列問題[6]。雖然卡爾曼濾波算法也是交通流預(yù)測中非常重要的方法之一,但由于其是線性模型,當(dāng)預(yù)測間隔小于一定的值,或者交通流變化的隨機(jī)性和非線性再強(qiáng)一點(diǎn)時(shí),該模型的性能可能會(huì)大打折扣。因此,鑒于粒子濾波可以適用于非線性、非高斯噪聲系統(tǒng)模型這一特性,本文采用粒子濾波與神經(jīng)網(wǎng)絡(luò)相結(jié)合的預(yù)測模型來對當(dāng)前城市短時(shí)交通流進(jìn)行預(yù)測。
1 基礎(chǔ)理論
1.1 BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆向傳播算法訓(xùn)練的多層前饋網(wǎng)絡(luò)。其學(xué)習(xí)規(guī)則是使用了最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)一共有3層,分別是輸入層、隱藏層和輸出層。
BP算法是一種有監(jiān)督式的學(xué)習(xí)算法,主要思想是:首先將學(xué)習(xí)樣本輸入其中,接著利用反向傳播算法將網(wǎng)絡(luò)的權(quán)值與偏差進(jìn)行數(shù)次訓(xùn)練,確保輸出值與期望值盡可能接近,當(dāng)網(wǎng)絡(luò)輸出層的誤差平方和小于指定的誤差時(shí)訓(xùn)練完成,保存網(wǎng)絡(luò)的權(quán)值和偏差。具體的步驟如下。一是初始化網(wǎng)絡(luò)參數(shù)。根據(jù)當(dāng)前所要解決的問題和輸入樣本數(shù)量,設(shè)定網(wǎng)絡(luò)層數(shù)、輸入節(jié)點(diǎn)數(shù)及輸出層節(jié)點(diǎn)數(shù),即給定各連接權(quán)值。二是網(wǎng)絡(luò)訓(xùn)練過程。將需要訓(xùn)練的樣本輸入網(wǎng)絡(luò)后,通過輸入層計(jì)算輸出值,同時(shí)計(jì)算訓(xùn)練誤差。三是誤差反向傳播,權(quán)值調(diào)整。將訓(xùn)練得到的輸出值與期望的輸出值進(jìn)行比較,若誤差合理,則滿足程序結(jié)束的條件,可以進(jìn)行下一輪運(yùn)行;若輸出值沒有達(dá)到預(yù)期的結(jié)果,則將差值進(jìn)行反向傳遞,按照設(shè)定調(diào)整權(quán)值,重新進(jìn)行第二輪訓(xùn)練。四是網(wǎng)絡(luò)訓(xùn)練結(jié)束。當(dāng)訓(xùn)練誤差值滿足當(dāng)前訓(xùn)練可以停止的目標(biāo)精度時(shí),神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成,此時(shí)記錄下各節(jié)點(diǎn)的權(quán)值。
1.2 粒子濾波算法
粒子濾波算法是一種解決非線性濾波問題的著名方法。此方法的基本思想是用一組樣本(或稱粒子)來近似表示系統(tǒng)的后驗(yàn)概率分布,然后使用這一近似的表示來估計(jì)非線性系統(tǒng)的狀態(tài)[7]。
假設(shè)描述非線性動(dòng)態(tài)系統(tǒng)的狀態(tài)空間模型為:
xk=fk(xk-1,vk-1)
zk=hk(xk,uk) (1)
式(1)中,xk表示系統(tǒng)在k時(shí)刻所處的狀態(tài),zk表示k時(shí)刻的觀測向量,fk表示系統(tǒng)的狀態(tài)轉(zhuǎn)移函數(shù),hk表示系統(tǒng)測量函數(shù)。vk和uk分別表示系統(tǒng)的過程噪聲及觀測噪聲。假設(shè)系統(tǒng)過程為m階馬爾科夫過程。根據(jù)非線性濾波問題解釋,當(dāng)前的任務(wù)就是根據(jù)帶有噪聲的觀測值。遞歸估計(jì)非線性系統(tǒng)狀態(tài)的后驗(yàn)概率密度p(x0∶k∣z1∶k)。x0∶k表示到k時(shí)刻系統(tǒng)所產(chǎn)生的狀態(tài)序列,z1∶k表示觀測值序列。
粒子濾波算法的實(shí)現(xiàn)原理就是構(gòu)造一個(gè)基于樣本的后驗(yàn)概率密度函數(shù)。但是,在實(shí)際應(yīng)用中,直接從后驗(yàn)概率密度分布中抽取有效的樣本是十分困難的。因此,如何有效地抽取后驗(yàn)分布的樣本,是降低統(tǒng)計(jì)估計(jì)方差、提高粒子濾波算法濾波性能的關(guān)鍵。所以,引入重要性采樣方法可以提高采樣效率。同時(shí),采用一種重要性采樣密度函數(shù)來抽取樣本,就避免了直接從后驗(yàn)概率密度中抽取樣本的難度。
采取合適的重要性采樣密度函數(shù),可以遞歸計(jì)算更新粒子的權(quán)值。后驗(yàn)濾波密度可以近似為[pxk-m+1∶kz1∶k≈i=1Nwikδ(xk-m+1∶k-xik-m+1∶k)]。
2 粒子濾波-神經(jīng)網(wǎng)絡(luò)模型
粒子濾波算法中通常會(huì)存在退化現(xiàn)象。因?yàn)榱W訖?quán)值的方差會(huì)隨著時(shí)間而遞增,所以退化現(xiàn)象是不可避免的。經(jīng)過若干次迭代之后,粒子會(huì)出現(xiàn)重尾分布,也就是除了極少數(shù)粒子之外,其他絕大多數(shù)粒子的權(quán)值會(huì)小到可以忽略的程度。退化就意味著如果繼續(xù)迭代下去,將會(huì)造成很大的時(shí)間復(fù)雜度,并且會(huì)影響最終結(jié)果的精度。雖然利用采樣和重采樣原理可以解決退化現(xiàn)象,改善性能,但會(huì)出現(xiàn)多樣性喪失、具有較高權(quán)值的粒子被多次統(tǒng)計(jì)等新問題。這會(huì)對預(yù)測的交通流結(jié)果產(chǎn)生很大的影響。
所以,本文提出一種新的預(yù)測交通流的方法。將粒子濾波和BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,先增大概率分布尾部粒子權(quán)值,同時(shí)將高權(quán)值的粒子分裂為若干小權(quán)值的粒子,以此來提高粒子樣本的多樣性和減小誤差,最終達(dá)到增加預(yù)測精度的目的。因此,本文提出的粒子濾波-神經(jīng)網(wǎng)絡(luò)算法可以調(diào)節(jié)粒子權(quán)值,并使其進(jìn)入高權(quán)值區(qū)域,從而增加濾波精度,以達(dá)到提高預(yù)測交通流精度的目的。當(dāng)粒子數(shù)目較少時(shí),此算法與傳統(tǒng)的粒子濾波算法相比,可以顯著提高預(yù)測精度。
由1.2部分可知,即使選擇最優(yōu)的密度函數(shù),退化現(xiàn)象依然存在。如果2個(gè)連續(xù)分布qk(x1∶k-1)和qk-1(x1∶k-1)之間相差太大,那么增量權(quán)值的方差也會(huì)很大。因此,為了避免這類缺陷,決定利用BP神經(jīng)網(wǎng)絡(luò),在重采樣的算法上增加2個(gè)步驟。第一步是分裂。在k時(shí)刻,計(jì)算通過重要性采樣密度函數(shù)得到的粒子的權(quán)值,然后將權(quán)值大于某一閾值的粒子分裂為2個(gè)粒子,接著舍掉權(quán)值較小的粒子來保持粒子數(shù)目恒定。第二步是利用神經(jīng)網(wǎng)絡(luò)調(diào)整權(quán)值較小的粒子。
粒子濾波-神經(jīng)網(wǎng)絡(luò)算法的具體步驟如下:
FOR:k=0,1,2,…
Step1:從重要性采樣密度函數(shù)中抽取N個(gè)粒子,得到的粒子用[xi0∶k,1/NNi=1]表示,重要性密度函數(shù)取轉(zhuǎn)移先驗(yàn):
[xik~q(xikxik-1,zk)=pxikxik-1] (2)
Step2:對i=1,…,N計(jì)算重要性權(quán)值:
[wik=wik-1p(zkxik)pxikxik-1q(xikxi1∶k-1,z1∶k)] (3)
在時(shí)刻k時(shí),用式(3)計(jì)算粒子的權(quán)值,記為權(quán)值矩陣[W=wiki=1,2,3,…,N],將權(quán)矩陣中的元素按照降序排列,以閾值wp大小為界,將權(quán)值矩陣W分為高權(quán)值矩陣w1和低權(quán)值矩陣w2。
Step3:權(quán)值分裂。
Step4:權(quán)值調(diào)整:通過權(quán)值分裂步驟之后,原先的權(quán)值矩陣W變?yōu)閇W=Wiki=1,2,3,…,N],[Wik]為已經(jīng)降序排列的粒子權(quán)值。選擇矩陣[W]中由小到大的q個(gè)粒子的權(quán)值,利用BP神經(jīng)網(wǎng)絡(luò)調(diào)整權(quán)值較小的粒子。
Step5:將N個(gè)粒子的權(quán)值進(jìn)行歸一化:
[wik=Wikj=1NWik] (4)
Step6:k=k+1,返回Step1。
3 仿真實(shí)驗(yàn)與分析
3.1 數(shù)據(jù)來源
交通流量(Volume)是指通過某車道、斷面、點(diǎn)的單位時(shí)間內(nèi)的機(jī)動(dòng)車輛數(shù)。交通流量和速度一樣,其數(shù)值可直觀地描述當(dāng)前道路的交通狀況,以及一段時(shí)間內(nèi)的流量變化趨勢及波動(dòng)狀況[2]。因此,本文選用交通流量進(jìn)行分析。
試驗(yàn)數(shù)據(jù)來源于河南省新鄉(xiāng)市交通局提供的公交和出租車數(shù)據(jù)。由于數(shù)據(jù)量巨大,因此選擇了大學(xué)城某路口20個(gè)工作日的數(shù)據(jù)。檢測器每隔5min記錄一次該路口的交通流量。本文選擇工作日的早晚高峰期(06:00—09:00,17:00—20:00)為研究重點(diǎn)。將所提供的20d工作日的數(shù)據(jù)序列分為兩類,其中80%用于對小波-隱馬爾科夫模型的訓(xùn)練,得到各參數(shù),另外20%的數(shù)據(jù)用于驗(yàn)證所預(yù)測的結(jié)果。
3.2 預(yù)測評價(jià)標(biāo)準(zhǔn)
為了評價(jià)交通流量預(yù)測的效果,常用的評價(jià)指標(biāo)有均方誤差(MSE)、平均相對誤差(MRE)。MSE用來反映誤差分布情況,值越小表明誤差分布就越集中,預(yù)測效果越好。MRE可以用來表征預(yù)測值與真實(shí)值偏離的程度,值越小說明預(yù)測值與實(shí)際值之間的偏離越小[8]。這些指標(biāo)的計(jì)算公式如下:
[MSE=1Ni=1N(yi-yi)2] (5)
[MRE=1Ni=1Nyi-yiyi×100%] (6)
式(5)(6)中,yi代表原始的交通流數(shù)據(jù),[yi]代表預(yù)測之后的數(shù)據(jù)。這些指標(biāo)的值越小,說明模型的健壯性越好,預(yù)測的精度也越高。
3.3 預(yù)測性能分析與評價(jià)
根據(jù)所構(gòu)建的交通流預(yù)測模型,試驗(yàn)中的主要參數(shù)設(shè)置為數(shù)據(jù)采集周期T=5min,粒子數(shù)為500。
依據(jù)前文所述算法的具體步驟,使用MATLAB進(jìn)行仿真,得出基于粒子濾波與神經(jīng)網(wǎng)絡(luò)的算法對選擇路段的交通流狀態(tài)預(yù)測結(jié)果。如圖1所示,其中黑色曲線為真實(shí)值曲線,紅色曲線為預(yù)測值曲線。從圖1可以看出,預(yù)測曲線與真實(shí)曲線具有較好的擬合,只是在狀態(tài)急劇變化較大的情況下,預(yù)測點(diǎn)才會(huì)出現(xiàn)一點(diǎn)偏差??傮w來說,粒子濾波-神經(jīng)網(wǎng)絡(luò)對于交通流的預(yù)測具有較好的性能,符合試驗(yàn)預(yù)期。
[原始數(shù)據(jù)][粒子濾波-神經(jīng)網(wǎng)絡(luò)模型預(yù)測數(shù)據(jù)][50
40
30
20
10][交通流量(輛/時(shí)段)][0 15 30 45 60 75][時(shí)段/5min]
圖1 粒子濾波-神經(jīng)網(wǎng)絡(luò)模型預(yù)測結(jié)果圖
然后,為了能更加直觀地表現(xiàn)粒子濾波-神經(jīng)網(wǎng)絡(luò)模型的性能,采用傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型和粒子濾波模型作為對照組,繪制出預(yù)測結(jié)果圖,來對這3種模型的預(yù)測性能進(jìn)行對比分析。圖2表明,這些模型的預(yù)測結(jié)果均反映了實(shí)測流量的變化狀況,但粒子濾波-神經(jīng)網(wǎng)絡(luò)模型的預(yù)測值與實(shí)際測試值最為接近。