王體迎,時鵬超,劉蔣瓊,劉博藝,時天昊
(1. 海南大學(xué) 機電工程學(xué)院,海南 海口 570228; 2. 海南大學(xué) 熱帶農(nóng)林學(xué)院,海南 海口 570228; 3. 海南大學(xué) 信息科學(xué)技術(shù)學(xué)院,海南 海口 570228; 4. 山東科技大學(xué) 交通學(xué)院,山東 青島 266590)
隨著社會經(jīng)濟(jì)的高速發(fā)展,城市交通擁堵問題越來越嚴(yán)重,交通管理遇到了前所未有的挑戰(zhàn)。經(jīng)驗證明,單一的路網(wǎng)改造和傳統(tǒng)的交通管理模式已經(jīng)不能有效地解決交通擁堵問題。為了緩解交通網(wǎng)絡(luò)所面臨的巨大壓力,智能交通系統(tǒng)(intelligent transportation systems, ITS)受到了前所未有的重視,得到了快速發(fā)展。其被認(rèn)為是治理汽車尾氣排放污染、緩解交通擁堵的核心技術(shù),也是減少交通事故發(fā)生的有效方法。而有效、準(zhǔn)確的交通流量預(yù)測是確保智能交通系統(tǒng)成功部署的關(guān)鍵要素,得到了越來越多的關(guān)注[1],其一方面能夠為出行者提供實時的交通信息,從而幫助他們更好地規(guī)劃路徑,另一方面為管理者提供了交通數(shù)據(jù),以便更好地做出決策,進(jìn)行適時交通誘導(dǎo),緩解道路擁堵,實現(xiàn)高效、節(jié)能、環(huán)保、安全、舒適的交通運行環(huán)境[2]。
自20世紀(jì)80年代以來,人們?yōu)榱颂岣吒纳平煌ㄟ\行效率,提高預(yù)測效果,開發(fā)了許多交通流量預(yù)測模型[3]。大體來說,可以分為兩類:一類是以數(shù)理統(tǒng)計和微積分等傳統(tǒng)數(shù)學(xué)和物理方法為基礎(chǔ)的預(yù)測模型[4];另一類是以現(xiàn)代科技為研究手段而形成的預(yù)測模型。第1類模型追求周密嚴(yán)謹(jǐn)上的數(shù)學(xué)推導(dǎo)和通俗易懂的物理意義。時間序列模型(time-series model)[5]是第1類中的典型代表,如被廣泛使用的自回歸模型(autoregressive model, AR),自回歸積分滑動平均模型(autoregressive integrated moving average model, ARIMA)[6],這類模型技術(shù)成熟,但容易受隨機因素的影響,需要大量不間斷數(shù)據(jù)。如卡爾曼濾波模型(kalman filtering model)[7],精度較高,魯棒性較好,但需要大量矩陣計算;歷史平均模型(history average model)[8],算法簡單,可解決部分簡單場景下的交通流量預(yù)測問題,但不能有效地應(yīng)對具有非線性特性的動態(tài)交通流量以及突發(fā)事件;第2類模型側(cè)重于對真實情況的擬合效果。如非參數(shù)回歸模型(nonparametric regressive model)[9],其不需要先驗知識,只需有足夠的歷史數(shù)據(jù),但復(fù)雜度較大;許巖巖等[10]應(yīng)用于交通流量預(yù)測的分類回歸樹,預(yù)測結(jié)果較好,可解釋性強,但參數(shù)調(diào)整需要一定的技巧性;小波神經(jīng)網(wǎng)絡(luò)模型[11]比普通神經(jīng)網(wǎng)絡(luò)具有更快的收斂速度和更高的預(yù)測精度,但是需要有足夠的經(jīng)驗才能選擇合適的小波基函數(shù);支持向量機[12]可以克服過擬合的缺陷,但是對大規(guī)模訓(xùn)練樣本難以實施;高斯過程回歸[13]不僅可以預(yù)測交通流量值,還可以獲得預(yù)測方差的估計值,但需要先對數(shù)據(jù)進(jìn)行平穩(wěn)化處理,不利于實時預(yù)測。
雖然目前已經(jīng)有了很多交通流量預(yù)測模型,但是大部分都是比較簡單的模型,且并不總是穩(wěn)定。這就啟示我們要基于大量交通數(shù)據(jù)并從數(shù)據(jù)挖掘?qū)哟蝸碇匦滤伎冀煌髁款A(yù)測問題[1]。
最近,機器學(xué)習(xí)中的深度學(xué)習(xí)獲得了舉世矚目的成功,得到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注[14]。其已經(jīng)成功的應(yīng)用于分類任務(wù)、自然語言處理、降維、目標(biāo)檢測、運動建模等[15-18]。深度學(xué)習(xí)是一種多層描述的表征學(xué)習(xí),在輸入數(shù)據(jù)后,深度學(xué)習(xí)算法從低級到高級、逐級地獲取隱藏于數(shù)據(jù)內(nèi)部的特征[1]。實際上,交通流量過程是復(fù)雜的時間序列,深度學(xué)習(xí)算法中的門限遞歸單元(gated recurrent unit, GRU)[19]循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNN),能夠不依靠先驗知識,對交通流量建模并進(jìn)行很好的預(yù)測。
門限遞歸單元是長短期記憶單元(long-short term memory unit, LSTM)[20]的一個改變較大的變體,而長短期記憶單元則又是循環(huán)神經(jīng)網(wǎng)絡(luò)里一種特殊的神經(jīng)層。
RNN網(wǎng)絡(luò)是包含循環(huán)的網(wǎng)絡(luò),其具有“記憶性”。與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)和最近大受歡迎的卷積神經(jīng)網(wǎng)絡(luò)(CNN)[21]不同的是,RNN可以利用“序列信息”。在結(jié)構(gòu)上表現(xiàn)為,隱藏層的輸入不但像普通神經(jīng)網(wǎng)絡(luò)一樣包括上一層的輸出,還包含上一時刻隱藏層的輸出,即隱藏層節(jié)點之間也是具有連接的,從而完成了對前面信息的記憶,并使之影響當(dāng)前的輸出。從理論上講,其能夠利用的序列信息可以為任意長度的。
不過傳統(tǒng)的RNN在訓(xùn)練長期依賴(long-term dependencies)的時候會遇到很多困難,最常見的就是梯度消失(vanish gradient)問題。期間有很多解決方案被提出,大致可分為3類:第1類是以新的方法改善傳統(tǒng)的權(quán)重隨機初始化,使用一個有關(guān)聯(lián)的矩陣初始化;第2類是使用新的激活函數(shù),如修正線性單元(rectified linear unit,ReLU)[22]替代傳統(tǒng)的sigmoid函數(shù);第3類是使用設(shè)計更精妙的循環(huán)單元,如LSTM,GRU等。
1997年,S. HOCHREITER等[20]提出了LSTM,其改進(jìn)了普通RNN的隱藏層,經(jīng)過3個不同的門來接合前面的狀態(tài)、當(dāng)前的輸入和當(dāng)前的記憶,然后使用了不同的函數(shù)來計算隱藏層的狀態(tài)。實踐證明,LSTM對長期依賴問題非常有效。2014年,K. CHO等[23]對LSTM進(jìn)行了改進(jìn),提出了更易于計算和實現(xiàn)的GRU。
設(shè)rt是GRU在時刻t的重置門(reset gate),計算公式如下:
rt=σg(Wrxt+Urht-1)
(1)
同理,設(shè)zt是GRU在時刻t的更新門(update gate):
zt=σg(Wzxt+Uzht-1)
(2)
(3)
(4)
另一方面,更新門zt控制有多少ht-1中的信息可以傳遞到當(dāng)前ht中。這一點是該單元結(jié)果的設(shè)計關(guān)鍵,其作用與LSTM中的記憶單元(memory cell)相似,可以幫助RNN記憶長期信息。
每個GRU都會學(xué)習(xí)獲取不同時間尺度的依賴信息。更新門zt的值較大的GRU會獲取較為長期的依賴信息,而重置門rt的值較大的GRU則相反,會獲取較為短期的依賴信息。
圖1為GRU的結(jié)構(gòu)簡圖,顯示了GRU結(jié)構(gòu)中各個門之間的關(guān)系。圖2為GRU神經(jīng)網(wǎng)絡(luò)在時間維度上的展開,顯示了相鄰時刻的GRU神經(jīng)網(wǎng)絡(luò)之間的相互作用。
圖1 GRU的結(jié)構(gòu)Fig. 1 GRU architecture
圖2 GRU神經(jīng)網(wǎng)絡(luò)的展開Fig. 2 An unroll GRU neural network
模型的輸入量可用x=(x1,x2,x3,…,xT)表示,模型的輸出可用y表示。在交通流量預(yù)測問題中,可將x定義為當(dāng)前和歷史時刻的數(shù)據(jù),其可包含多個數(shù)據(jù)維度,如交通流量、車流速度、交通事故、天氣狀況、節(jié)假日等。筆者只選取交通流量進(jìn)行研究,所以x=qt-N,qt-(N-1),…,qt。模型將基于輸入的數(shù)據(jù)x以及GRU的歷史輸入信息輸出預(yù)測結(jié)果y,即下一時刻的交通流量qt+1。
具體步驟如下所述:
Step1:將交通流量整理為合適的輸入格式并進(jìn)行預(yù)處理,使用最小最大標(biāo)準(zhǔn)化(min-max standardization)技術(shù)將其映射到[0,1]之間;
Step2:確定GRU神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),如GRU層數(shù),每層神經(jīng)元數(shù)目;
Step3:選擇合適的激活函數(shù)和恰當(dāng)?shù)膬?yōu)化算法;
Step4:采用訓(xùn)練集數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練優(yōu)化,得到預(yù)測模型;
Step5:使用驗證數(shù)據(jù)集驗證模型預(yù)測效果。如效果良好,繼續(xù)預(yù)測則進(jìn)入Step 5,否則返回Step 2;
Step6:利用預(yù)測效果良好的模型和測試數(shù)據(jù)預(yù)測得到對應(yīng)的交通流量預(yù)測值。
通過以上6個步驟可實現(xiàn)使用GRU神經(jīng)網(wǎng)絡(luò)對交通流量的預(yù)測。
為了測試GRU對交通流量的預(yù)測效果,筆者采用了加拿大大不列顛哥倫比亞省所公開的交通流量數(shù)據(jù)集來測試。選取了16-032E觀測點和16-032W觀測點所采集到的數(shù)據(jù),兩點只是監(jiān)測車流方向不同,但位置相同,都位于大溫哥華地區(qū)的列治文市,測點部署位置如圖3。
圖3 觀測點的部署位置Fig. 3 The location of the observation point
對所采集到的數(shù)據(jù)資料中有極少部分缺失或異常的現(xiàn)象進(jìn)行如下處理:對于異常的數(shù)據(jù),如交通流量過低的數(shù)據(jù),將其從數(shù)據(jù)集中清除;對于缺失的數(shù)據(jù),使用缺失數(shù)據(jù)之前的數(shù)據(jù)進(jìn)行填充,以保證數(shù)據(jù)集的連續(xù)性和有效性。數(shù)據(jù)采集時間間隔為1 h,采集時間從2001年1月1日到2003年12月31日。為了驗證模型的預(yù)測效果和更公正的對比不同模型的準(zhǔn)確性,數(shù)據(jù)集被分為兩個部分,從2001年1月1日到2002年12月31日,共730天,作為訓(xùn)練集,用來確定模型的參數(shù):從2003年1月1日到2003年12月31日,共365天,作為測試集。方便起見,筆者的GRU模型基于python下的Keras包實現(xiàn),運行環(huán)境為Ubuntu 16.04,64位操作系統(tǒng),Intel i5 4200M 2核心4線程CPU,8G內(nèi)存,GeForce 840M GPU。
圖4展示了兩個觀測點中訓(xùn)練集的一周交通流量。由圖4可以看出,交通流量很明顯具有以天為周期的模式。周一至周五的流量模式大致相同,說明交通流量具有一定的規(guī)律性。而不同觀測點觀測到的交通流量之間呈現(xiàn)出不同的數(shù)據(jù)特性,如16-032E的工作日流量模式含有兩個流量高峰,其中第2個高峰遠(yuǎn)遠(yuǎn)高于第1個高峰,16-032W的工作日流量模式雖然也含有兩個流量高峰,但是第1個流量高峰大于第2個流量高峰,表現(xiàn)出了兩個觀測點的方向性。不同觀測點的相異的交通流量模式要求我們針對不同觀測點訓(xùn)練不同的模型,以適應(yīng)其模式變化。
圖4 觀測點一周的交通流量Fig. 4 Weekly traffic flow of observation point
筆者將實驗結(jié)果與傳統(tǒng)交通流量預(yù)測方法進(jìn)行對比:用差分自回歸移動平均模型(ARIMA)和支持向量回歸(SVR)預(yù)測模型對同樣的測試序列進(jìn)行預(yù)測。對于神經(jīng)網(wǎng)絡(luò),筆者使用Adam[24]作為參數(shù)優(yōu)化方法。對于SVR模型,筆者選擇使用徑向基函數(shù)(radial basis function, RBF)作為核函數(shù),使用交叉驗證(cross-validation)和網(wǎng)格搜索(grid search)相結(jié)合的辦法選取模型參數(shù):懲罰參數(shù)C(cost),徑向基的寬度參數(shù)γ(gamma),不敏感參數(shù)ε(epsilon)。根據(jù)赤池信息量準(zhǔn)則(akaike information criterion, AIC),選擇最佳的ARIMA模型的p,d,q參數(shù)。
為了更好的對比不同模型的預(yù)測效果,筆者將基于不同滯后時間(time-lag)的輸入數(shù)據(jù)進(jìn)行測試,如24個滯后時間(過去24 h的交通流量)、18個滯后時間(過去18 h的交通流量)、12個滯后時間(過去12 h的交通流量)以及6個滯后時間(過去6 h的交通流量)。
為了評價預(yù)測效果,采用了兩種誤差評測方法,均方誤差(MSE)和平方絕對百分比誤差(MAPE),其定義公式如下:
(5)
(6)
表1表示了不同模型在不同觀測點位置,以不同滯后時間輸入數(shù)據(jù)下不同評價標(biāo)準(zhǔn)的預(yù)測性能指標(biāo)。
表1 使用MAPE和MSE對不同模型在各觀測點的預(yù)測性能比較Table 1 Prediction performance comparison of the MAPE and the MSE for different model
根據(jù)仿真的實驗結(jié)果可以發(fā)現(xiàn),一般來講,輸入的滯后時間越長,模型越能獲得更好的預(yù)測效果。在16-032E觀測點的數(shù)據(jù)集上,GRU在24個滯后時間的輸入數(shù)據(jù)上取得的預(yù)測結(jié)果比在6個滯后時間上取得的預(yù)測結(jié)果在MAPE方面下降了16.77%,而MSE方面則下降了47.81%。SVR模型也有類似的效果。
從表1中可以看出,基于GRU的神經(jīng)網(wǎng)絡(luò)能夠取得比SVR和ARIMA更高的預(yù)測精度。對于16-032E觀測點的數(shù)據(jù)集的4個不同滯后時間的預(yù)測任務(wù),GRU模型預(yù)測效果穩(wěn)定,取得了10.07%的平均MAPE值,相對于ARIMA的37.61%的平均MAPE值和SVR的11.76%的平均MAPE值,分別降低了73.22%和14.37%。而對于16-032W的數(shù)據(jù)集的4個預(yù)測任務(wù),GRU的平均MAPE則比相對應(yīng)的ARIMA的平均MAPE值和SVR的平均MAPE值,分別降低了76.22%和9.93%,即使是在下降最低的18個滯后時間上,也相對于ARIMA至少下降了61.46%。而在平均MSE值方面,則分別下降了89.85%和20.77%。
作為神經(jīng)網(wǎng)絡(luò)的主要競爭者,SVR模型表現(xiàn)良好,甚至在某些特定情況下,預(yù)測效果超過了GRU模型。然而在尋找最優(yōu)滯后時間方面SVR模型表現(xiàn)并不是太理想。ARIMA模型假設(shè)交通是個靜態(tài)狀況,而這一點在現(xiàn)實生活中往往并不能成立。
圖5、圖6分別展示了GRU模型在不同滯后時間輸入數(shù)據(jù)下,對兩個觀測點工作日和休息日條件下兩種交通流量模式的實際預(yù)測效果。因為周三受到周末的交通影響最小,筆者選取周三作為工作日交通流量模式的典型代表進(jìn)行展示。又由于周日不像周六那樣容易受周五交通流量影響,故而選取周日作為休息日交通流量模式的典型代表進(jìn)行展示。圖5表明GRU模型可以很好的應(yīng)對16-032E觀測點觀測到的周三和周日兩種交通流量模式,預(yù)測的交通流量和實際交通流量誤差較小,可以很好的抓住交通流量的基本規(guī)律。不論是早高峰還是晚高峰,模型都能很好的預(yù)測出其出現(xiàn)時間和峰值。圖6表明的是16-032W觀測點周三和周日交通流量的預(yù)測效果。由于16-032E和16-32W是為了測量同一條道路不同方向交通流量而設(shè)置的兩個對稱觀測點,故而16-032W和16-032E觀測到的周三交通流量具有呈對稱性的方向不均勻性。而兩觀測點觀測到的周日交通流量都具有相似的波峰、波谷變化趨勢。通過對圖5、圖6的分析,可以獲知:隨著輸入數(shù)據(jù)滯后時間的增加,預(yù)測的流量曲線與實際流量曲線的吻合度也在不斷增加,但是增加速率緩慢,即在不同滯后時間輸入數(shù)據(jù)下,GRU模型仍能保持對流量的準(zhǔn)確預(yù)測,表明模型具有較高的預(yù)測穩(wěn)定性,不易受到輸入數(shù)據(jù)滯后時間大小的影響。
圖5 對16-032E觀測點周三和周日交通流量的預(yù)測比較Fig. 5 Prediction performance comparison for 16-032E in Wednesday and Sunday
圖6 對16-032W觀測點周三和周日交通流量的預(yù)測比較Fig. 6 Prediction performance comparison for 16-032W in Wednesday and Sunday
筆者提出了基于GRU神經(jīng)網(wǎng)絡(luò)的道路交通流量預(yù)測方法。GRU神經(jīng)網(wǎng)絡(luò)能夠挖掘利用時間序列的長期信息,其特征適用于常規(guī)交通流量預(yù)測問題。為了驗證模型的有效性,筆者使用了加拿大大不列顛哥倫比亞省的交通流量數(shù)據(jù)進(jìn)行了驗證,并與經(jīng)典的交通流量預(yù)測方法ARIMA和SVR進(jìn)行了對比,最終實驗結(jié)果表明,該模型在預(yù)測交通流量方面其誤差和其他預(yù)測方法相比有顯著降低,如在MAPE評價指標(biāo)方面,比SVR降低了12.15%,能夠有效提高對交通流量預(yù)測的準(zhǔn)確性。
盡管基于GRU神經(jīng)網(wǎng)絡(luò)的模型在道路交通流量預(yù)測上取得了不錯的效果,但目前筆者只使用了交通流量作為輸入數(shù)據(jù),并沒有將天氣狀況,交通事故和其他的交通狀況(密度或速度)等考慮在內(nèi),相信在考慮更多變量后,預(yù)測結(jié)果會有進(jìn)一步的提高。另一方面筆者模型主要針對常規(guī)交通流量預(yù)測,對于非常發(fā)性和非重復(fù)性的交通流量預(yù)測將是未來深化研究的方向。