謝鵬 顧和明
摘要:針對初始參數(shù)的有效性直接影響B(tài)P神經(jīng)網(wǎng)絡(luò)對短時交通流量預(yù)測的準(zhǔn)確性這一問題,該文提出了基于CS(Cuckoo Search)算法與BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)相結(jié)合的啟發(fā)式算法來進(jìn)行短時交通流量預(yù)測。該算法首先用相空間重構(gòu)理論對訓(xùn)練序列進(jìn)行重構(gòu),接著把重構(gòu)后的序列作為BP神經(jīng)網(wǎng)絡(luò)的輸入序列,同時采用CS算法來進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)閥值與初始連接權(quán)值的尋找,最后就得到了所需要的預(yù)測模型。仿真表明,本文所提算法在短時間內(nèi)能夠準(zhǔn)確地預(yù)測交通流量的變化趨勢,從而大大增加了所預(yù)測流量的可信度。
關(guān)鍵詞:BP神經(jīng)網(wǎng)絡(luò);短時交通流量;CS算法
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)23-5513-03
1 概述
隨著城市人口不斷增加,我國城市道路的建設(shè)進(jìn)度難以跟上車輛數(shù)目的增長速度,從而使得交通擁堵問題日益嚴(yán)重,因此在現(xiàn)有道路條件下,如何對交通的進(jìn)行高效的管理與調(diào)度以提升道路的通行能力,從而最大限度地緩解交通擁堵問題成為了一個十分重要的研究課題。而ITS(Intelligent Transport System,智能交通系統(tǒng))[1]是目前最有效的解決辦法之一。ITS把網(wǎng)絡(luò)技術(shù)、信息技術(shù)、控制技術(shù)等先進(jìn)的現(xiàn)代化技術(shù)運(yùn)用到交通管理中,從而構(gòu)建了一個覆蓋全城的、全方位的、準(zhǔn)確、實時、高效的智能系統(tǒng)。其中的交通流量預(yù)測是ITS的一項重要功能。這是因為ITS是根據(jù)未來的交通流量來制定相應(yīng)的交通管理策略。因此,預(yù)測的準(zhǔn)確性直接關(guān)系到交通管理測率的有效性。而短時交通流量預(yù)測為流量預(yù)測的重要組成部分。
經(jīng)過多年的研究,人們在短時交通流量預(yù)測方面取得了豐碩的成果,提出許多的預(yù)測算法[2]。根據(jù)算法的理論依據(jù),這些預(yù)測算法可以分成基于確定理論的預(yù)測算法與基于混沌理論的預(yù)測算法。常用的基于確定理論的預(yù)測算法有:Kalman濾波法、時間序列法、線性回歸法等。這些算法都假設(shè)交通流量的變化是一個線性過程,但是在實際生活中,交通流量的變化是一個非線性時變的過程,因此這些基于確定理論的預(yù)測算法的預(yù)測準(zhǔn)確度并不理想,其所得到的預(yù)測結(jié)果與實際情況相差會比較大,從而影響了交通管理策略的制定與調(diào)整。而常用的基于混沌理論的預(yù)測算法有:基于神經(jīng)網(wǎng)絡(luò)的預(yù)測法、基于遺傳算法的預(yù)測法、基于向量機(jī)的預(yù)測法等。這些算法能夠?qū)Ψ蔷€性環(huán)境進(jìn)行預(yù)測,從而能取得較高的預(yù)測精度。而該類算法的工作流程通常分為三個步驟:相空間的重構(gòu)、預(yù)測算法的選擇和參數(shù)優(yōu)化、預(yù)測模型的生成。對訓(xùn)練序列進(jìn)行相空間重構(gòu)的目的是為了發(fā)掘訓(xùn)練序列背后所隱藏的內(nèi)在規(guī)律。而預(yù)測算法是用來對從訓(xùn)練數(shù)據(jù)中提取預(yù)測模型,從而用于對未來進(jìn)行預(yù)測。由于基于BP神經(jīng)網(wǎng)絡(luò)的短時交通流量預(yù)測算法能夠?qū)崿F(xiàn)自我學(xué)習(xí)并且具備預(yù)測可行度高等優(yōu)點(diǎn),因此本文選擇該算法作為預(yù)測算法。但是,BP神經(jīng)網(wǎng)絡(luò)的閥值與初始連接權(quán)值直接影響該算法的預(yù)測可信度,如果參數(shù)設(shè)置不合理,該算法的收斂速度不僅會變慢而且所得到的預(yù)測模型也可能只是局部最優(yōu)。針對這個問題,蟻群算法、遺傳算法、退火算法等分別被用于BP神經(jīng)網(wǎng)路的參數(shù)優(yōu)化。但是,參數(shù)經(jīng)過優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測可行度還有有待提升。
而智能啟發(fā)算法CS算法通過利用鳥類的飛行搜索原理,使得群體內(nèi)的信息交流增多,從而實現(xiàn)了較快的收斂速度,這為參數(shù)優(yōu)化問題提供了新的研究思路。在本文中,為了提高預(yù)測的可行度與精度,提出了基于CS(Cuckoo Search)算法與BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)相結(jié)合的啟發(fā)式算法(簡稱CS-BP算法)來進(jìn)行短時交通流量的預(yù)測。
2 相關(guān)理論介紹
2.1 相空間重構(gòu)
Packard等人在二十世紀(jì)九十年代第一次對相空間重構(gòu)進(jìn)行了定義[3]。而進(jìn)行重構(gòu)的目的是為了從某一非線性系統(tǒng)的實測的時間序列中發(fā)掘其在相空間中的幾何特性,以便能夠?qū)Ω呔S的相空間中吸引子進(jìn)行重構(gòu)。在本文中,短時交通流量的一維實測時間序列為[x(i)],i=1,2,…,n,然后使用延遲坐標(biāo)法對實測的時間序列進(jìn)行重構(gòu),那么重構(gòu)后的[m]維向量為:
[X(i)=x(i-(m-1)τ,…,x(i-τ),x(i)] (1)
其中,m與[τ]分別為維數(shù)和時延。
從公式(1)可以看出,[m]與[τ]的值直接影響重構(gòu)后的[m]維向量的性能。因此,在本文中,[m]與[τ]將使用關(guān)聯(lián)維長算法與互信息法來計算。
2.2 基于BP神經(jīng)網(wǎng)絡(luò)的交通流量預(yù)測算法
該算法的輸入?yún)?shù)為實測的流量序列[X(i)=x(i-(m-1)τ),…,x(i-τ),x(i)]、節(jié)點(diǎn)數(shù)m與隱層p,經(jīng)過預(yù)測后所期望的輸出為[y(i)=x(i+1)],那么就得到了函數(shù)映其中,[γ]與[vj]分別為該層的閥值和從隱層到輸出層的連接權(quán)值。
在基于BP神經(jīng)網(wǎng)絡(luò)[4]的預(yù)測算法中,連接權(quán)值與閥值是隨機(jī)產(chǎn)生的,從而會造成收斂速度以及預(yù)測結(jié)果都不是很理想,因此,采用CS算法對連接權(quán)值與閥值進(jìn)行優(yōu)化,從而提升BP神經(jīng)網(wǎng)絡(luò)的收斂速度與預(yù)測可行度。
2.3 CS算法
Yang等人在2009年的時候根據(jù)布谷鳥在后代繁衍中所使用的寄生策略,提出CS算法[5]。該算法遵守三個原則:
a)布谷鳥每次隨機(jī)地在一個其它鳥的鳥巢中產(chǎn)一枚蛋;
b)放有優(yōu)質(zhì)蛋的鳥巢將會被保留;
c)一旦寄主鳥發(fā)現(xiàn)其巢中有布谷鳥的蛋,其要么放棄鳥巢,要么就把該蛋清出鳥巢。
令第t代中的第i個鳥巢的位置為[x(t)i],搜索路徑為[L(λ)],那么在第t+1代中的第i個鳥巢的位置為:
[x(t+1)i=x(t)i+α⊕L(λ),(i=1,2,…,n)] (5)
其中,[α]為步長因子。
為了解決CS算法收斂速度慢等缺點(diǎn),利用高斯擾動來加快收斂速度,實現(xiàn)方法為:第t代中的第i個鳥巢的位置[x(t)i]進(jìn)行繞到擾動,從而實現(xiàn)對[x(t)i]的更進(jìn)一步的搜索。
令[pt=x(t)1,x(t)2,…,x(t)nT],則引入高斯擾動后的[p`t]:
[p`t=pt+β⊕ε] (6)
其中,[β]與[ε]分別為常量,擾動矩陣(矩陣大小與[pt]相同)。
從公式(6)可以看出,通過[β]與[ε]的使用,使得鳥巢的位置變化更靈活,從而實現(xiàn)了算法的快速收斂。
3 基于啟發(fā)式算法的短時交通流量預(yù)測的實現(xiàn)
上一節(jié)分別對本文所提算法用到的相關(guān)理論進(jìn)行了介紹,本節(jié)將綜合利用上述理論來實現(xiàn)本文所提算法。算法的實現(xiàn)步驟為:
1)首先通過對交通流量進(jìn)行測量得到短時流量訓(xùn)練序列,然后分別用關(guān)聯(lián)維算法與互信息法來確定維數(shù)[m]與時延[τ],最后利用[m]與[τ]對訓(xùn)練序列進(jìn)行相空間重構(gòu),那么重構(gòu)后的序列被用作神經(jīng)網(wǎng)絡(luò)的訓(xùn)練序列;
2)首先隨機(jī)地生成[n]個鳥巢的位置[p(0)i=x(0)1,x(0)2,…,x(0)nT],而鳥巢的位置是與神經(jīng)網(wǎng)絡(luò)的閥值與連接權(quán)重相對應(yīng)的。然后神經(jīng)網(wǎng)絡(luò)根據(jù)每一個鳥巢位置所對應(yīng)的參數(shù)開始訓(xùn)練,從而得到相應(yīng)的預(yù)測精度,最后找出當(dāng)前訓(xùn)練周期內(nèi)的最優(yōu)鳥巢[x(0)b];
3)首先[x(0)b]保持不變,而其它鳥巢的位置利用公式(5)進(jìn)行變化,接著計算變化了的位置所對應(yīng)的預(yù)測精度,然后把本次所得到的預(yù)測精度與相應(yīng)的上代預(yù)測精度相比較,最后把精度高的鳥巢位置保留下來,從而生成了一組新的鳥巢位置[kt=x(t)1,x(t)2,…,x(t)nT];
4)首先隨機(jī)生成一組[r],接著把[r]與[Pa]進(jìn)行比較,[kt]中的鳥巢位置被發(fā)現(xiàn)概率小的將被保留,其它的經(jīng)隨機(jī)地改變,從而得到一組新的位置,然后計算新位置所對應(yīng)的預(yù)測精度,最后把精度高的位置保留下來,從而成了一組新的鳥巢位置[pt=x(t)1,x(t)2,…,x(t)nT];
5)首先利用公式(6)對[pt]實施擾動,而擾動后的位置為[p't=x(t)'1,x(t)'2,…,x(t)'nT],接著計算[p't]每個位置所對應(yīng)的預(yù)測精度,最后把精度高的位置保留下來,從而成了一組新的鳥巢位置[p''t=x(t)''1,x(t)''2,…,x(t)''nT],并令把[pt]=[p''t];
6)首先跳出[pt]中預(yù)測精度最高的鳥巢[x(t)b],接著判斷該預(yù)測精度是否能夠達(dá)到要求,如果達(dá)到,把[x(t)b]作為神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置,調(diào)到(7),否則的話,跳到(3);
7)首先[x(t)b]所對應(yīng)閥值與初始權(quán)值送入神經(jīng)網(wǎng)絡(luò),然后神經(jīng)網(wǎng)絡(luò)開始用訓(xùn)練序列進(jìn)行訓(xùn)練,從而得到預(yù)測模型,最后用預(yù)測模型進(jìn)行預(yù)測。
4 仿真分析
對某市的某一道路交通流量進(jìn)行連續(xù)10天的觀測,時間從8:00到12:00,每隔5分鐘記錄一次,總共得到480個觀測值,組成的序列為[X=x1,x2,…,x480]。480個觀測值中的前380個被用作訓(xùn)練序列用于生成預(yù)測模型,剩下的100個觀測值被用于進(jìn)行預(yù)測模型準(zhǔn)確性的驗證。圖1給出所得到的測量值。
為了驗證本文所提算法(簡稱CS-BP)的性能,將對基于PSO的BP神經(jīng)網(wǎng)絡(luò)的預(yù)測算法(簡稱PSO-BP)和基于GA的BP神經(jīng)網(wǎng)絡(luò)的預(yù)測算法(簡稱GA-BP)與CS-BP三者的預(yù)測誤差進(jìn)行分析。
GA-BP的參數(shù)為:變異與交叉概率分別為0.12,0.73,種群規(guī)則與最大進(jìn)化次數(shù)分別為30和300。PSO-BP的參數(shù)為:[c1=c2=3],其它參數(shù)與GA-BP相同。而CS-BP的參數(shù)為:鳥巢數(shù)為30,[Pa=0.25],最大進(jìn)化次數(shù)不超過300。
三種預(yù)測算法根據(jù)[X]的前380個數(shù)據(jù)來生成預(yù)測模型,并使用預(yù)測模型來預(yù)測后100個數(shù)據(jù),圖2給出了三種算法預(yù)測的結(jié)果。
5 小結(jié)
本文針對交通流量預(yù)測中的短時交通流量預(yù)測問題,提出了基于CS Search)算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的啟發(fā)式算法。并且仿真表明,本文所提算法在短時間內(nèi)能夠準(zhǔn)確地預(yù)測交通流量的變化趨勢,從而大大增加了所預(yù)測流量的可信度,為智能交通管理提供了重要的依據(jù)。
參考文獻(xiàn):
[1] Liu X, Fang Z. An agent-based intelligent transport system[M]//Computer Supported Cooperative Work in Design IV. Springer Berlin Heidelberg, 2008: 304-315.
[2] 沈國江, 王嘯虎, 孔祥杰. 短時交通流量智能組合預(yù)測模型及應(yīng)用[J]. 系統(tǒng)工程理論與實踐, 2011, 31(3): 561-568.