王體迎,時鵬超,劉蔣瓊,劉博藝,時天昊
(1. 海南大學 機電工程學院,海南 ???570228; 2. 海南大學 熱帶農林學院,海南 ???570228; 3. 海南大學 信息科學技術學院,海南 海口 570228; 4. 山東科技大學 交通學院,山東 青島 266590)
隨著社會經濟的高速發展,城市交通擁堵問題越來越嚴重,交通管理遇到了前所未有的挑戰。經驗證明,單一的路網改造和傳統的交通管理模式已經不能有效地解決交通擁堵問題。為了緩解交通網絡所面臨的巨大壓力,智能交通系統(intelligent transportation systems, ITS)受到了前所未有的重視,得到了快速發展。其被認為是治理汽車尾氣排放污染、緩解交通擁堵的核心技術,也是減少交通事故發生的有效方法。而有效、準確的交通流量預測是確保智能交通系統成功部署的關鍵要素,得到了越來越多的關注[1],其一方面能夠為出行者提供實時的交通信息,從而幫助他們更好地規劃路徑,另一方面為管理者提供了交通數據,以便更好地做出決策,進行適時交通誘導,緩解道路擁堵,實現高效、節能、環保、安全、舒適的交通運行環境[2]。
自20世紀80年代以來,人們為了提高改善交通運行效率,提高預測效果,開發了許多交通流量預測模型[3]。大體來說,可以分為兩類:一類是以數理統計和微積分等傳統數學和物理方法為基礎的預測模型[4];另一類是以現代科技為研究手段而形成的預測模型。第1類模型追求周密嚴謹上的數學推導和通俗易懂的物理意義。時間序列模型(time-series model)[5]是第1類中的典型代表,如被廣泛使用的自回歸模型(autoregressive model, AR),自回歸積分滑動平均模型(autoregressive integrated moving average model, ARIMA)[6],這類模型技術成熟,但容易受隨機因素的影響,需要大量不間斷數據。如卡爾曼濾波模型(kalman filtering model)[7],精度較高,魯棒性較好,但需要大量矩陣計算;歷史平均模型(history average model)[8],算法簡單,可解決部分簡單場景下的交通流量預測問題,但不能有效地應對具有非線性特性的動態交通流量以及突發事件;第2類模型側重于對真實情況的擬合效果。如非參數回歸模型(nonparametric regressive model)[9],其不需要先驗知識,只需有足夠的歷史數據,但復雜度較大;許巖巖等[10]應用于交通流量預測的分類回歸樹,預測結果較好,可解釋性強,但參數調整需要一定的技巧性;小波神經網絡模型[11]比普通神經網絡具有更快的收斂速度和更高的預測精度,但是需要有足夠的經驗才能選擇合適的小波基函數;支持向量機[12]可以克服過擬合的缺陷,但是對大規模訓練樣本難以實施;高斯過程回歸[13]不僅可以預測交通流量值,還可以獲得預測方差的估計值,但需要先對數據進行平穩化處理,不利于實時預測。
雖然目前已經有了很多交通流量預測模型,但是大部分都是比較簡單的模型,且并不總是穩定。這就啟示我們要基于大量交通數據并從數據挖掘層次來重新思考交通流量預測問題[1]。
最近,機器學習中的深度學習獲得了舉世矚目的成功,得到了學術界和工業界的廣泛關注[14]。其已經成功的應用于分類任務、自然語言處理、降維、目標檢測、運動建模等[15-18]。深度學習是一種多層描述的表征學習,在輸入數據后,深度學習算法從低級到高級、逐級地獲取隱藏于數據內部的特征[1]。實際上,交通流量過程是復雜的時間序列,深度學習算法中的門限遞歸單元(gated recurrent unit, GRU)[19]循環神經網絡(recurrent neural networks, RNN),能夠不依靠先驗知識,對交通流量建模并進行很好的預測。
門限遞歸單元是長短期記憶單元(long-short term memory unit, LSTM)[20]的一個改變較大的變體,而長短期記憶單元則又是循環神經網絡里一種特殊的神經層。
RNN網絡是包含循環的網絡,其具有“記憶性”。與傳統的神經網絡和最近大受歡迎的卷積神經網絡(CNN)[21]不同的是,RNN可以利用“序列信息”。在結構上表現為,隱藏層的輸入不但像普通神經網絡一樣包括上一層的輸出,還包含上一時刻隱藏層的輸出,即隱藏層節點之間也是具有連接的,從而完成了對前面信息的記憶,并使之影響當前的輸出。從理論上講,其能夠利用的序列信息可以為任意長度的。
不過傳統的RNN在訓練長期依賴(long-term dependencies)的時候會遇到很多困難,最常見的就是梯度消失(vanish gradient)問題。期間有很多解決方案被提出,大致可分為3類:第1類是以新的方法改善傳統的權重隨機初始化,使用一個有關聯的矩陣初始化;第2類是使用新的激活函數,如修正線性單元(rectified linear unit,ReLU)[22]替代傳統的sigmoid函數;第3類是使用設計更精妙的循環單元,如LSTM,GRU等。
1997年,S. HOCHREITER等[20]提出了LSTM,其改進了普通RNN的隱藏層,經過3個不同的門來接合前面的狀態、當前的輸入和當前的記憶,然后使用了不同的函數來計算隱藏層的狀態。實踐證明,LSTM對長期依賴問題非常有效。2014年,K. CHO等[23]對LSTM進行了改進,提出了更易于計算和實現的GRU。
設rt是GRU在時刻t的重置門(reset gate),計算公式如下:
rt=σg(Wrxt+Urht-1)
(1)

同理,設zt是GRU在時刻t的更新門(update gate):
zt=σg(Wzxt+Uzht-1)
(2)

(3)
(4)

另一方面,更新門zt控制有多少ht-1中的信息可以傳遞到當前ht中。這一點是該單元結果的設計關鍵,其作用與LSTM中的記憶單元(memory cell)相似,可以幫助RNN記憶長期信息。
每個GRU都會學習獲取不同時間尺度的依賴信息。更新門zt的值較大的GRU會獲取較為長期的依賴信息,而重置門rt的值較大的GRU則相反,會獲取較為短期的依賴信息。
圖1為GRU的結構簡圖,顯示了GRU結構中各個門之間的關系。圖2為GRU神經網絡在時間維度上的展開,顯示了相鄰時刻的GRU神經網絡之間的相互作用。

圖1 GRU的結構Fig. 1 GRU architecture

圖2 GRU神經網絡的展開Fig. 2 An unroll GRU neural network
模型的輸入量可用x=(x1,x2,x3,…,xT)表示,模型的輸出可用y表示。在交通流量預測問題中,可將x定義為當前和歷史時刻的數據,其可包含多個數據維度,如交通流量、車流速度、交通事故、天氣狀況、節假日等。筆者只選取交通流量進行研究,所以x=qt-N,qt-(N-1),…,qt。模型將基于輸入的數據x以及GRU的歷史輸入信息輸出預測結果y,即下一時刻的交通流量qt+1。
具體步驟如下所述:
Step1:將交通流量整理為合適的輸入格式并進行預處理,使用最小最大標準化(min-max standardization)技術將其映射到[0,1]之間;
Step2:確定GRU神經網絡的結構,如GRU層數,每層神經元數目;
Step3:選擇合適的激活函數和恰當的優化算法;
Step4:采用訓練集數據對神經網絡進行訓練優化,得到預測模型;
Step5:使用驗證數據集驗證模型預測效果。如效果良好,繼續預測則進入Step 5,否則返回Step 2;
Step6:利用預測效果良好的模型和測試數據預測得到對應的交通流量預測值。
通過以上6個步驟可實現使用GRU神經網絡對交通流量的預測。
為了測試GRU對交通流量的預測效果,筆者采用了加拿大大不列顛哥倫比亞省所公開的交通流量數據集來測試。選取了16-032E觀測點和16-032W觀測點所采集到的數據,兩點只是監測車流方向不同,但位置相同,都位于大溫哥華地區的列治文市,測點部署位置如圖3。

圖3 觀測點的部署位置Fig. 3 The location of the observation point
對所采集到的數據資料中有極少部分缺失或異常的現象進行如下處理:對于異常的數據,如交通流量過低的數據,將其從數據集中清除;對于缺失的數據,使用缺失數據之前的數據進行填充,以保證數據集的連續性和有效性。數據采集時間間隔為1 h,采集時間從2001年1月1日到2003年12月31日。為了驗證模型的預測效果和更公正的對比不同模型的準確性,數據集被分為兩個部分,從2001年1月1日到2002年12月31日,共730天,作為訓練集,用來確定模型的參數:從2003年1月1日到2003年12月31日,共365天,作為測試集。方便起見,筆者的GRU模型基于python下的Keras包實現,運行環境為Ubuntu 16.04,64位操作系統,Intel i5 4200M 2核心4線程CPU,8G內存,GeForce 840M GPU。
圖4展示了兩個觀測點中訓練集的一周交通流量。由圖4可以看出,交通流量很明顯具有以天為周期的模式。周一至周五的流量模式大致相同,說明交通流量具有一定的規律性。而不同觀測點觀測到的交通流量之間呈現出不同的數據特性,如16-032E的工作日流量模式含有兩個流量高峰,其中第2個高峰遠遠高于第1個高峰,16-032W的工作日流量模式雖然也含有兩個流量高峰,但是第1個流量高峰大于第2個流量高峰,表現出了兩個觀測點的方向性。不同觀測點的相異的交通流量模式要求我們針對不同觀測點訓練不同的模型,以適應其模式變化。

圖4 觀測點一周的交通流量Fig. 4 Weekly traffic flow of observation point
筆者將實驗結果與傳統交通流量預測方法進行對比:用差分自回歸移動平均模型(ARIMA)和支持向量回歸(SVR)預測模型對同樣的測試序列進行預測。對于神經網絡,筆者使用Adam[24]作為參數優化方法。對于SVR模型,筆者選擇使用徑向基函數(radial basis function, RBF)作為核函數,使用交叉驗證(cross-validation)和網格搜索(grid search)相結合的辦法選取模型參數:懲罰參數C(cost),徑向基的寬度參數γ(gamma),不敏感參數ε(epsilon)。根據赤池信息量準則(akaike information criterion, AIC),選擇最佳的ARIMA模型的p,d,q參數。
為了更好的對比不同模型的預測效果,筆者將基于不同滯后時間(time-lag)的輸入數據進行測試,如24個滯后時間(過去24 h的交通流量)、18個滯后時間(過去18 h的交通流量)、12個滯后時間(過去12 h的交通流量)以及6個滯后時間(過去6 h的交通流量)。
為了評價預測效果,采用了兩種誤差評測方法,均方誤差(MSE)和平方絕對百分比誤差(MAPE),其定義公式如下:
(5)
(6)

表1表示了不同模型在不同觀測點位置,以不同滯后時間輸入數據下不同評價標準的預測性能指標。

表1 使用MAPE和MSE對不同模型在各觀測點的預測性能比較Table 1 Prediction performance comparison of the MAPE and the MSE for different model
根據仿真的實驗結果可以發現,一般來講,輸入的滯后時間越長,模型越能獲得更好的預測效果。在16-032E觀測點的數據集上,GRU在24個滯后時間的輸入數據上取得的預測結果比在6個滯后時間上取得的預測結果在MAPE方面下降了16.77%,而MSE方面則下降了47.81%。SVR模型也有類似的效果。
從表1中可以看出,基于GRU的神經網絡能夠取得比SVR和ARIMA更高的預測精度。對于16-032E觀測點的數據集的4個不同滯后時間的預測任務,GRU模型預測效果穩定,取得了10.07%的平均MAPE值,相對于ARIMA的37.61%的平均MAPE值和SVR的11.76%的平均MAPE值,分別降低了73.22%和14.37%。而對于16-032W的數據集的4個預測任務,GRU的平均MAPE則比相對應的ARIMA的平均MAPE值和SVR的平均MAPE值,分別降低了76.22%和9.93%,即使是在下降最低的18個滯后時間上,也相對于ARIMA至少下降了61.46%。而在平均MSE值方面,則分別下降了89.85%和20.77%。
作為神經網絡的主要競爭者,SVR模型表現良好,甚至在某些特定情況下,預測效果超過了GRU模型。然而在尋找最優滯后時間方面SVR模型表現并不是太理想。ARIMA模型假設交通是個靜態狀況,而這一點在現實生活中往往并不能成立。
圖5、圖6分別展示了GRU模型在不同滯后時間輸入數據下,對兩個觀測點工作日和休息日條件下兩種交通流量模式的實際預測效果。因為周三受到周末的交通影響最小,筆者選取周三作為工作日交通流量模式的典型代表進行展示。又由于周日不像周六那樣容易受周五交通流量影響,故而選取周日作為休息日交通流量模式的典型代表進行展示。圖5表明GRU模型可以很好的應對16-032E觀測點觀測到的周三和周日兩種交通流量模式,預測的交通流量和實際交通流量誤差較小,可以很好的抓住交通流量的基本規律。不論是早高峰還是晚高峰,模型都能很好的預測出其出現時間和峰值。圖6表明的是16-032W觀測點周三和周日交通流量的預測效果。由于16-032E和16-32W是為了測量同一條道路不同方向交通流量而設置的兩個對稱觀測點,故而16-032W和16-032E觀測到的周三交通流量具有呈對稱性的方向不均勻性。而兩觀測點觀測到的周日交通流量都具有相似的波峰、波谷變化趨勢。通過對圖5、圖6的分析,可以獲知:隨著輸入數據滯后時間的增加,預測的流量曲線與實際流量曲線的吻合度也在不斷增加,但是增加速率緩慢,即在不同滯后時間輸入數據下,GRU模型仍能保持對流量的準確預測,表明模型具有較高的預測穩定性,不易受到輸入數據滯后時間大小的影響。

圖5 對16-032E觀測點周三和周日交通流量的預測比較Fig. 5 Prediction performance comparison for 16-032E in Wednesday and Sunday

圖6 對16-032W觀測點周三和周日交通流量的預測比較Fig. 6 Prediction performance comparison for 16-032W in Wednesday and Sunday
筆者提出了基于GRU神經網絡的道路交通流量預測方法。GRU神經網絡能夠挖掘利用時間序列的長期信息,其特征適用于常規交通流量預測問題。為了驗證模型的有效性,筆者使用了加拿大大不列顛哥倫比亞省的交通流量數據進行了驗證,并與經典的交通流量預測方法ARIMA和SVR進行了對比,最終實驗結果表明,該模型在預測交通流量方面其誤差和其他預測方法相比有顯著降低,如在MAPE評價指標方面,比SVR降低了12.15%,能夠有效提高對交通流量預測的準確性。
盡管基于GRU神經網絡的模型在道路交通流量預測上取得了不錯的效果,但目前筆者只使用了交通流量作為輸入數據,并沒有將天氣狀況,交通事故和其他的交通狀況(密度或速度)等考慮在內,相信在考慮更多變量后,預測結果會有進一步的提高。另一方面筆者模型主要針對常規交通流量預測,對于非常發性和非重復性的交通流量預測將是未來深化研究的方向。