王川 張寶文



摘 要:為了有效緩解當前交通擁堵問題,結合時下流行的智能交通系統,本文將粒子濾波算法引入短時交通流預測過程中,提出一種基于粒子濾波與神經網絡的預測算法。該系統通過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表明,這些模型的預測結果均反映了實測流量的變化狀況,但粒子濾波-神經網絡模型的預測值與實際測試值最為接近。