蔣 杰,張江鑫
(浙江工業(yè)大學信息工程學院,浙江 杭州 310014)
隨著城市交通系統的快速發(fā)展,移動互聯、車路協同、主動安全、自主高效的新一代合作智能交通系統(C-ITS)已經成為未來道路交通管理系統的關鍵推動者[1]。其中,短時交通流量預測是智能交通系統研究的核心問題。
關于預測,早期的預測模型有移動平均模型(MA)、歷史平均模型(HA)、自回歸模型(AR)、自回歸移動平均模型(ARIMA)等,這些模型的理論基礎多數是線性估計模型[2],然而實際的交通是一個復雜、隨機性干擾、非線性系統,所以這些模型的預測效果難以保證。相比之下,神經網絡能夠作為多維非線性函數的通用模型,不用受非線性模型的約束,又能通過學習以任意精度逼近復雜的非線性映射,其學習算法在工程上容易實現,因此神經網絡模型更適合用于不確定性與非線性的交通流預測[3-4]。其中,BP 神經網絡是最常使用的預測模型,但該模型在解決此類問題時自身存在一些不足之處,如收斂速度緩慢,且易陷入局部最優(yōu)解[5],對于BP神經網絡存在的缺點,文獻[6]是通過采用加動量項來提高收斂速度,同時在BP神經網絡算法迭代的過程中,使步長進行自適應調整,但BP神經網絡算法的初始權閾值是隨機生成的,因此這種改進方法并不能保證每次預測結果都較為準確。文獻[7-8]是根據遺傳算法的原理,將BP神經網絡的初始權閾值作為變量引入到遺傳算法中,通過選擇、交叉、變異等一系列操作后得出最優(yōu)解,但其算法的參數較多,而且參數的選擇大部分是根據經驗,并且不能夠及時利用網絡的反饋信息,搜索速度比較慢,要得要較精確的解需要較多的訓練時間,算法對初始種群的選擇有一定的依賴性,因此預測效果也不能保證。文獻[9-10]是根據粒子群算法收斂速度快,設置的參數少等優(yōu)點,對BP神經網絡的初始權閾值進行計算,但其局部尋優(yōu)能力較差,后期多樣性的丟失導致算法容易過早收斂。
針對上述不足之處,本文提出了采用改進蟻群算法的方法優(yōu)化BP神經網絡來進行短時交通流量預測。主要思路是采用蟻群算法確定BP神經網絡的初始權閾值,同時考慮到蟻群算法也易出現停滯現象,因此對蟻群算法進行改進,從而提高預測性能。
神經網絡與傳統的計算系統不同,它的學習能力使其可以解決諸如預測交通流量一類的復雜問題。反饋式神經網絡(BP)是一種按信號向前傳輸、誤差反向傳輸的多層前饋神經網絡,已廣泛應用于交通預測[11]。用BP神經網絡進行短時交通流預測大致可分為兩個階段:BP神經網絡的訓練階段和短時交通流量預測階段。
BP神經網絡短時交通流量預測模型框圖如圖1所示。
圖1 BP神經網絡短時交通流量預測框圖
其步驟可總結如下:
1)對歷史交通流數據進行預處理。
2)建立BP神經網絡,并確定神經網絡的輸入層節(jié)點個數和輸出層節(jié)點個數。
3)生成樣本數據庫,并劃分訓練數據和測試數據的比例。
4)確定BP神經網絡的隱層數及各隱層的節(jié)點數。
5)改進蟻群算法確定BP神經網絡的權閾值。
6)輸入測試數據,進行短時交通流量預測。
蟻群算法的基本思路如下:螞蟻在已通過的路上釋放一定量的信息素,后面的螞蟻,通過識別前一個螞蟻所遺留在道路上的信息素,會朝著信息素濃度較大的路徑上行進,并且同時自身也釋放信息素,這樣,大量的螞蟻的移動狀態(tài)能形成一個信息素的正反饋機制,信息素積累小的路徑會隨著逐漸由于螞蟻的減少和信息素的消散,最終減少甚至是選擇為零,最終通過不斷的搜尋和影響,整個蟻群能找到一條最短的路徑[12]。
在尋找解的過程中,螞蟻是通過感知道路上信息素量的大小來決定走哪條路,濃度越高,選擇的幾率越大,反之亦然,但信息素會不斷揮發(fā)的,本文采用信息素自適應揮發(fā)參數來代替固定的值。在一次迭代結束后,全部螞蟻會更新信息素,本文采用精英保留策略,將符合要求的種群留下,不符合要求的加入變異因子,然后重新迭代循環(huán)。
在使用蟻群算法構建解的過程中,構建自適應揮發(fā)系數ρ的思想來確定 BP 神經網絡的權閾值,基本蟻群算法的揮發(fā)系數ρ,在初始化時給一個初始值,在之后的迭代中不再使用固定不變的值,而是每次更新迭代的同時進行自適應的改變,揮發(fā)系數公式如下
(1)
其中,NC表示循環(huán)次數,NCmax表示最大循 環(huán)次數,ρstart表示初始化是給定的初始值。
如果揮發(fā)系數過大,可能直接導致振蕩現象的出現,如果揮發(fā)系數過小,使得收斂的速度比較緩慢,所以采用自適應的揮發(fā)系數,前期可以增強收斂能力,后期揮發(fā)系數越大,也就越能避免振蕩現象的出現。
在全局信息素更新過后,需要根據需求對種群進行選擇,對蟻群個體適應度也就是信息素濃度的判斷,如果適應度大于平均值,則繼續(xù)更新迭代,小于平均值的部分,加入變異因子α,使新的種群加入循環(huán),繼續(xù)迭代尋優(yōu)。其中判斷適應度的公式如下
(2)
(3)
其中,公式中P0=(最好適應度-最差適應度)/螞蟻個數,fitness為適應度,用來評判當前螞蟻種群的好壞標準,fitness(i)是當前螞蟻i信息濃度的值。pop(i,α) 表示當前蟻群種群中加入變異因子,i表示當前的螞蟻序號,rand是隨機值,α是變異因子。
使用精英選擇策略可以使螞蟻系統快速找出最優(yōu)解,如果螞蟻數量過多,搜索便會迅速地聚集在極優(yōu)值的附近,從而導致搜索早熟收斂,所以,選擇合適的精英螞蟻數量有利于避免算法在迭代中陷入極值。
根據2.3節(jié)的思想,針對計算結果較差的種群,加入變異因子,增加變量的多樣性,為后期尋找解提供更多的可能性,其中加入變異因子α的公式如下
α=5×rands(1,1)
(4)
其中,rands表示產生隨機數組的函數。
在蟻群算法迭代到后期,很容易陷入局部極值,加入變異因子主要是為了增加多樣性,為尋找解提供更多的可能性。
當建立好一個BP神經網絡之后,就可將數據樣本輸入網絡對其進行訓練并實現對短時交通流的預測。通常情況下,BP神經網絡的初始權值是隨機產生值,此外,由于BP算法是一種梯度最速下降算法,因此其不可避免地容易陷入局部極小值。蟻群算法是一種具有較好全局優(yōu)化能力的智能算法,故可將蟻群算法與BP神經網絡進行結合,利用蟻群算法的全局尋優(yōu)特性克服BP算法存在的不足[13]。
改進蟻群算法確定BP神經網絡權閾值的流程圖如圖2所示。
圖2 改進ACO確定BP神經網絡的權閾值流程圖
權閾值確定的步驟如下:
Step2:所有螞蟻從第一個集合開始依次從128個集合中分別選取一個隨機數,當全部螞蟻都完成了在某一集合中的數據選擇后,才跳到下一集合,直到結束。其中,第k只螞蟻選擇集合I中的第j個元素的概率公式為
(5)
其中,τj(I)表示集合I的第j個元素信息素值。
Step3:在該次迭代中,m只螞蟻得出的解作為BP神經網絡的權閾值,輸入訓練數據,并計算該次訓練的均方誤差(MSE),公式如下
(6)
將128只螞蟻計算得到的最小的均方誤差即最優(yōu)解(MSEbest)記錄下來。
Step4:在一次迭代完成后,進行全局信息素更新,任一個集合I所有元素更新的公式如下
(7)
Δτ=1/MSEbest
(8)
其中,ρ是信息素揮發(fā)系數,τ表示信息素值。
Step5:在全局信息素更新過后,對信息素值進行精英選擇策略,如果信息素值大于平均值,則繼續(xù)迭代,反之,則加入變異因子,然后加入迭代,其中判斷公式如3.3節(jié)所示。
Step6:加入變異因子,其中公式如3.4節(jié)所示。
Step7:重復Step2~Step6,直到循環(huán)結束,退出循環(huán)。
實驗是在Intel(R)Core(TM)i5-3230M CPU @ 2.60GHz 2.20GHz,內存為6.00GB,操作系統為Window10中文版 64位,采用Matlab 2016a進行仿真。
本文采用的是雙隱層的BP神經網絡,輸入節(jié)點數為7,隱層1節(jié)點數為11,隱層2節(jié)點數為3,輸出層節(jié)點數為1。訓練輸入數據共6720(7×960)個,訓練輸出數據共96(1×96)個,測試輸入數據共672(7×96)個,測試輸出數據共96(1×96)個。
選取四川南充公路的西河南路與西門壩街十字交通路口北向南方向作為測試對象,預測的是3月28號的流量,選取的路口如圖3所示,根據采集的三個月的交通流量數據,分別用遺傳優(yōu)化BP神經網絡算法,粒子群優(yōu)化BP神經網絡算法,魚群優(yōu)化BP神經網絡算法,本文算法進行仿真,實驗結果如圖4所示,其中圖(a)、(b)、(c)、(d)分別是遺傳優(yōu)化BP神經網絡算法、粒子群優(yōu)化BP神經網絡算法、魚群優(yōu)化BP神經網絡算法和本文算法。
圖3 南充市西河南路與西門壩街十字路口
圖4 各種算法預測流量與誤差
作為對短時交通流預測結果好壞的評估,本文也引入了常用的誤差指標,即均等系數EC、平均相對誤差MRE和平均絕對誤差MAE作為交通流預測誤差的衡量指標。
通常情況下,當EC 值大于0.9 時,就可認為是較好的預測結果[14]。MAE、MRE,反應預測誤差的大小,數值越小,預測效果越好。
根據實際的交通情況,城市道路車流量在不同時間段內有較大差別,比如每天上班時間的早晚高峰,以及夜間流量較少等情況,本文按0點到7點、7點至17點、17點至20點、20點至24點分成4段,實驗路口幾種算法的質量評價如表1、2、3、4所示,全天評價指標為表5。
表1 0點至7點各算法質量評價
表2 7點至17點各算法質量評價
表3 17點至20點各算法質量評價
表4 20點至24點各算法質量評價
表5 0點至24點各算法質量評價
如表1所示,在0點至7點之間,車流量較小,本文算法的EC值均優(yōu)于其它算法,比相對最好的遺傳算法高了0.0043415。
在絕對誤差MRE上,本文算法比相對最優(yōu)的遺傳算法低了14.88%。在相對誤差MAE上,本文算法比相對最優(yōu)的遺傳算法降低了3.93%。
從表1和圖4(d)本文算法在0點到7點之間不論是預測效果還是誤差方面均為最優(yōu)。
如表2所示,在7點至17點之間,本文算法的EC值比相對最優(yōu)的遺傳算法高了0.0059181。在絕對誤差MRE上,本文算法比魚群算法低了16.15%,在相對誤差MAE上,本文算法比較好的魚群算法低了15.33%。
從評價指標來看,本文預測的結果相對較好,與其它算法誤差相對較小,且EC值大于0.9,可認為是較好的預測結果。
從表2和圖4(d)可以看出,車流量處于白天高峰時段,從評價指標可以看出,本文算法最優(yōu),可認為預測效果較好。
如表3所示,17點到20點之間出現了流量高峰,本文算法的EC值比最優(yōu)的遺傳算法高了0.000219。在絕對誤差MRE上,本文算法比魚群算法低了2.95%。在相對誤差MAE上,本文算法比粒子群低了1.31%。
從表3和圖4(d)可以看出,本文算法對流量高峰的趨勢預測更準確,相較于其余幾種算法在高峰時段內的預測結果更優(yōu)。在EC值和誤差指標上,本文算法均為最優(yōu)。
如表4所示,本文算法的EC值均優(yōu)于其它算法,比相對較優(yōu)的粒子群算法高了0.0094。在絕對誤差MRE上,本文算法比遺傳算法低了11.59%。在相對誤差MAE上,本文算法比魚群算法低了10.78%。
從表4和圖4(d)可以看出,20點過后,車流量逐漸減少,本文算法相較于其余幾種算法在該時段內的預測結果更優(yōu)。在EC值和誤差指標上,本文算法均為最優(yōu)。
如表5所示,本文算法的EC值均優(yōu)于其它算法,比相對較好的遺傳算法高了0.0029657。在絕對誤差MRE上,本文算法比相對較好的遺傳算法低了8.16%。在相對誤差MAE上,本文算法比遺傳算法低了4.43%。
從表5和圖4(d)可以看出,在全天范圍內,本文算法比其它算法在三個指標上更好,實際的預測效果也更好。
本文利用改進蟻群算法的全局搜索能力來優(yōu)化 BP 神經網絡的初始權閾值,既可以很好地避免其陷入局部最優(yōu)值,又能一定程度地縮短收斂時間,與未優(yōu)化的 BP 神經網絡相比,大大提高了預測精度且處于合理范圍內。相較于其它幾類的優(yōu)化算法,預測的流量也更好地擬合出交通流的各種變化規(guī)律,從而使其較準確地反映出未來路面交通狀況,為人們的出行提供便利,方便交通管理部門掌握流量情況,及時進行引導和分流,有一定的實用價值。