盧生巧,黃中祥
(長(zhǎng)沙理工大學(xué) 交通運(yùn)輸工程學(xué)院,湖南 長(zhǎng)沙 410004)
交通流預(yù)測(cè)是城市智能交通系統(tǒng)(Intelligent Transport System,簡(jiǎn)稱(chēng)為ITS)的重要組成部分。精確的短時(shí)交通流預(yù)測(cè),可為道路使用者提供實(shí)時(shí)的、有價(jià)值的參考信息,幫助其選擇更優(yōu)的出行路徑,也可預(yù)測(cè)道路擁堵的地點(diǎn)和時(shí)間。運(yùn)輸從業(yè)者可以提前選擇優(yōu)化路徑,減少道路擁堵[1]。短時(shí)交通流預(yù)測(cè)有助于ITS 的道路交通控制和交通誘導(dǎo),提高道路安全性[2?3]。
目前,短時(shí)交通流預(yù)測(cè)方法有基于模型算法和數(shù)據(jù)驅(qū)動(dòng)的方法。其中,基于模型算法包括:卡爾曼濾波器[4]、梯度增強(qiáng)樹(shù)回歸、時(shí)間序列的自回歸統(tǒng)計(jì)及貝葉斯網(wǎng)絡(luò)等經(jīng)典的淺層學(xué)習(xí)算法。Hamed[5]等人利用Box-Jenkins 技術(shù),建立ARIMA模型,實(shí)現(xiàn)了交通量的短期預(yù)測(cè)。張濤[6]等人應(yīng)用基于K 近鄰的非參數(shù)回歸預(yù)測(cè)模型,利用K 值構(gòu)造的預(yù)測(cè)區(qū)間,進(jìn)行特殊路況的預(yù)測(cè),獲得了較高的預(yù)測(cè)精度。Hu[7]等人利用粒子群算法,優(yōu)化支持向量機(jī)(Support Vector Machine,簡(jiǎn)稱(chēng)為SVR)參數(shù),進(jìn)行預(yù)測(cè)。
這些淺層結(jié)構(gòu)的預(yù)測(cè)模型,處理小樣本數(shù)據(jù)時(shí),簡(jiǎn)單高效。處理大樣本數(shù)據(jù)和復(fù)雜非線(xiàn)性函數(shù)時(shí),存在局限性。深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的組合不斷應(yīng)用于交通流短期預(yù)測(cè)的深層結(jié)構(gòu)模型中,推動(dòng)了基于數(shù)據(jù)驅(qū)動(dòng)方法的神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)[8?9]等迅速發(fā)展,提供了更準(zhǔn)確的交通流預(yù)測(cè)工具。其中,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,簡(jiǎn)稱(chēng)為RNN)為變體的長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,簡(jiǎn)稱(chēng)為L(zhǎng)STM),可提取數(shù)據(jù)的長(zhǎng)期依賴(lài)特征[10]。Polson[11]等人使用 Math Container 方法,結(jié)合tanh 層的深度學(xué)習(xí)模型,成功預(yù)測(cè)特殊條件下急劇變化的交通量。Yu[12]等人利用深度卷積神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)相結(jié)合的深度結(jié)構(gòu),捕獲交通網(wǎng)絡(luò)路徑的時(shí)空相關(guān)性,驗(yàn)證了卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network,簡(jiǎn)稱(chēng)為CNN)和LSTM 結(jié)合的可行性。劉明宇[13]等利用門(mén)控循環(huán)單元神經(jīng)網(wǎng)絡(luò) (Gated Recurrent Unit,簡(jiǎn)稱(chēng)為GRU)進(jìn)行短時(shí)交通流預(yù)測(cè),取得較高的預(yù)測(cè)精度。作者基于時(shí)空關(guān)聯(lián)矩陣,擬利用深度神經(jīng)網(wǎng)絡(luò)挖掘短時(shí)交通流數(shù)據(jù)的時(shí)空特征。采用Python 軟件,將CNN 和GRU 兩者結(jié)合起來(lái),構(gòu)建一種混合神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,并以加州交通局績(jī)效評(píng)估系統(tǒng)PeMS(Performance Measurement System,簡(jiǎn)稱(chēng)為PeMS)的實(shí)例數(shù)據(jù)為依托,對(duì)該模型進(jìn)行訓(xùn)練和預(yù)測(cè)。
交通流在空間域和時(shí)間域上具有明顯的特征。在空間域中,某些位置上的交通流,可能與附近地區(qū)有更強(qiáng)的依賴(lài)性(拓?fù)渚植啃?。在時(shí)間域中,部分歷史交通流,會(huì)對(duì)未來(lái)的交通流產(chǎn)生長(zhǎng)期影響。
根據(jù)經(jīng)驗(yàn)和實(shí)驗(yàn)數(shù)據(jù),模型選擇CNN 層作為數(shù)據(jù)輸入層,預(yù)測(cè)效果更好。因此,選擇使用一維CNN 結(jié)構(gòu),挖掘交通流數(shù)據(jù)中的空間特征。CNN是一種深度神經(jīng)網(wǎng)絡(luò),能夠捕獲交通流數(shù)據(jù)的空間特征。CNN 層通過(guò)卷積和池化的操作,進(jìn)行局部趨勢(shì)學(xué)習(xí),有效保留交通流的空間特征。神經(jīng)網(wǎng)絡(luò)模型層數(shù)越多,網(wǎng)絡(luò)表現(xiàn)能力則越強(qiáng)。當(dāng)訓(xùn)練數(shù)據(jù)不足時(shí),更容易發(fā)生過(guò)擬合。為平衡模型的計(jì)算成本,模型的一維CNN 層是深度為2 的完整卷積神經(jīng)網(wǎng)絡(luò)。在深度卷積神經(jīng)網(wǎng)絡(luò)中,線(xiàn)性整流層的激活單元用于非線(xiàn)性激活。線(xiàn)性整流函數(shù)(Rectified Linear Unit,簡(jiǎn)稱(chēng)為ReLu),是一種常用的激活函數(shù)。不僅可以解決“梯度消失”的問(wèn)題,而且可使深層神經(jīng)網(wǎng)絡(luò)快速收斂[14]。交通流數(shù)據(jù)具有非線(xiàn)性特征,所以選擇ReLu 作為整流層激活函數(shù),提高網(wǎng)絡(luò)非線(xiàn)性特征的學(xué)習(xí)能力。
由于交通流的動(dòng)態(tài)性,交通流的時(shí)間特征不斷變化,使得短時(shí)交通流表現(xiàn)出更強(qiáng)的相關(guān)性[15]。由于交通流還存在長(zhǎng)期依賴(lài)性特征,如:上游交通流在擁堵?tīng)顟B(tài)下,需要很長(zhǎng)時(shí)間,才能到達(dá)下游。因此,交通流的時(shí)間特征建模時(shí),需要考慮這種長(zhǎng)期依賴(lài)性。因?yàn)長(zhǎng)STM 可用于模擬交通流的時(shí)間特征[16],通過(guò)輸入門(mén)、遺忘門(mén)及輸出門(mén)3 個(gè)門(mén)控機(jī)制,去除或者增加信息,到LSTM 單元中,解決了RNN存在的長(zhǎng)期依賴(lài),所以可選擇更簡(jiǎn)單的RNN-GRU模型。與LSTM 相比,GRU 的神經(jīng)元更少,而且能實(shí)現(xiàn)與LSTM 相同或者更好的性能[17]。
GRU 只有更新門(mén)和重置門(mén)2 個(gè)門(mén)控機(jī)制。更新門(mén)的作用是決定當(dāng)前輸入信息(Xt)有多少是需要保留的;重置門(mén)的作用是將Xt和前面?zhèn)鬟f的信息(ht?1)相結(jié)合。這2 個(gè)門(mén)控機(jī)制使得GRU 具有交通流的長(zhǎng)期依賴(lài)特征。
GRU 的計(jì)算步驟:
1) 在時(shí)間步t,Xt和ht?1,經(jīng)過(guò)線(xiàn)性變換,進(jìn)入更新門(mén)的Sigmoid 層,輸出激活值Zt。重置門(mén)與輸出門(mén)的表達(dá)式一樣,但權(quán)重矩陣不同,同樣輸出一個(gè)激活值rt、zt和rt的值域均為[0,1]。其中,0 代表完全遺忘信息,1 代表完全保留信息。
式中:W和U為權(quán)重矩陣;Xt為t時(shí)刻的輸入向量;ht?1為時(shí)間步t?1 保存的信息。
2) 由tanh 函數(shù)計(jì)算當(dāng)前記憶信息。時(shí)間步t的最終記憶信息ht,由、ht?1和更新門(mén)激活值z(mì)t加權(quán)得出。
圖1 GRU 結(jié)構(gòu)展開(kāi)Fig. 1 GRU expanded structure view
式中:?代表Hadamard 乘積。
CNN-GRU 模型利用卷積結(jié)構(gòu),提取交通流數(shù)據(jù)中的空間特征,門(mén)控循環(huán)單元捕獲交通流數(shù)據(jù)的時(shí)間特征。在訓(xùn)練階段時(shí),神經(jīng)網(wǎng)絡(luò)從歷史數(shù)據(jù)中學(xué)習(xí)交通流的時(shí)空特征,對(duì)交通流的狀態(tài)和特征進(jìn)行識(shí)別和記憶,得到各個(gè)網(wǎng)絡(luò)層的權(quán)重值和偏置量。在預(yù)測(cè)階段,將處理好的數(shù)據(jù),輸入已訓(xùn)練好的模型,得到交通流的預(yù)測(cè)值。
在考慮計(jì)算量和模型深度基礎(chǔ)上,選擇卷積神經(jīng)網(wǎng)絡(luò)層數(shù)為2 層,2 層之間包含一個(gè)池化層。模型使用ReLu 函數(shù),激活2 個(gè)一維卷積層(Conv1D),提取交通流數(shù)據(jù)的空間特征。ReLu 函數(shù)能保證交通流數(shù)據(jù)的非負(fù)性,并且易于收斂。CNN 每層卷積核數(shù)目為150,卷積核時(shí)域窗長(zhǎng)度為1×10。交通流數(shù)據(jù)經(jīng)過(guò)卷積層后,使用2 層GRU 來(lái)提取時(shí)間特征,其神經(jīng)元個(gè)數(shù)分別為64 和32,平衡計(jì)算成本和預(yù)測(cè)精度。Dropout 層設(shè)定隨機(jī)斷開(kāi)50%的神經(jīng)元,可有效緩解模型過(guò)擬合現(xiàn)象[18]。最終的CNN-GRU 模型結(jié)構(gòu)如圖2 所示。
圖2 CNN-GRU 模型結(jié)構(gòu)示意Fig. 2 An illustration of structure in CNN-GRU
采用的交通流數(shù)據(jù)來(lái)自2018 年9 月-10 月,圣地亞哥區(qū)域內(nèi)標(biāo)號(hào)為I5-N 高速公路,將其中連續(xù)16 個(gè)探測(cè)器記錄的單向車(chē)流量數(shù)據(jù),作為樣本數(shù)據(jù),監(jiān)測(cè)點(diǎn)距離見(jiàn)表1,空間位置如圖2 所示。數(shù)據(jù)采集間隔為30 s,交通量匯總為5 min。由于采集數(shù)據(jù)在工作日和周末均表現(xiàn)出較強(qiáng)且不同的周期性模式。因此,本研究只對(duì)工作日的交通流量進(jìn)行預(yù)測(cè)。選擇9 月1 日-10 月9 日期間的工作日所對(duì)應(yīng)的數(shù)據(jù)作為模型訓(xùn)練集,合計(jì)9 791 個(gè)。10 月22 日-31 日期間的工作日所對(duì)應(yīng)的數(shù)據(jù),作為模型測(cè)試集,合計(jì)2 303 個(gè)。
表1 監(jiān)測(cè)點(diǎn)間距Table 1 Distance between monitoring points
受外界因素干擾,原始的交通流數(shù)據(jù),會(huì)出現(xiàn)缺失、異常等狀況。本研究利用交通流理論的篩選法,剔除原始數(shù)據(jù)的異常值。根據(jù)交通流在時(shí)間上的形似性,對(duì)于某一時(shí)段缺失的數(shù)據(jù),采用前1 d或后1 d 的歷史數(shù)據(jù)替代,將交通流數(shù)據(jù)歸一化到[0,1]區(qū)間,訓(xùn)練所有模型。
交通流預(yù)測(cè)實(shí)質(zhì)是一個(gè)時(shí)間序列的預(yù)測(cè),可以依據(jù)過(guò)去時(shí)段的交通流信息,預(yù)測(cè)未來(lái)時(shí)段的交通流狀況。交通流遵循一定的規(guī)律,呈連續(xù)流狀態(tài),連續(xù)流道路的相關(guān)斷面相互影響,使得斷面觀測(cè)到的交通流,具有時(shí)間和空間特征,需要將交通流量的數(shù)據(jù),處理成帶有時(shí)間和空間特征的輸入矩陣A。假定交通流數(shù)據(jù)的采樣間隔為Δt,選擇的監(jiān)測(cè)點(diǎn)總數(shù)為p,采集數(shù)據(jù)的總量為n,則所有監(jiān)測(cè)點(diǎn)組成的一組交通流量數(shù)據(jù)為:
綜合考慮各個(gè)監(jiān)測(cè)點(diǎn)在時(shí)間與空間維度上的相關(guān)性,設(shè)預(yù)測(cè)模型的交通流量輸入為X,則有:
任意監(jiān)測(cè)點(diǎn)下一時(shí)刻的交通流量,由該監(jiān)測(cè)點(diǎn)和各個(gè)監(jiān)測(cè)點(diǎn)的當(dāng)前時(shí)刻及前一個(gè)或多個(gè)時(shí)刻的交通流量數(shù)據(jù)來(lái)預(yù)測(cè)。訓(xùn)練時(shí),利用枚舉試算的方法,確定模型預(yù)測(cè)的時(shí)間滯后,設(shè)置為6,以實(shí)現(xiàn)模型的最低錯(cuò)誤率。即:使用所有監(jiān)測(cè)點(diǎn)前30 min的交通流量,作為定期輸入,預(yù)測(cè)下一時(shí)刻5 min的交通流量。
利用交叉驗(yàn)證法訓(xùn)練模型,選擇最佳的層數(shù)和超參數(shù)。訓(xùn)練過(guò)程中,利用損失函數(shù)之均方誤差(Mean Squared Error,簡(jiǎn)稱(chēng)為MSE)、Relu 激活函數(shù)及Adam 優(yōu)化器。Adam 是一種特殊的隨機(jī)梯度下降(Stochastic Gradient Descent,簡(jiǎn)稱(chēng)為SGD)方法,通過(guò)動(dòng)態(tài)調(diào)整參數(shù),充分提取數(shù)據(jù)的空間特征,達(dá)到快速收斂,正確學(xué)習(xí)目標(biāo)。采用MSE 作為模型的目標(biāo)函數(shù),對(duì)比不同超參數(shù)的模型誤差,選擇最佳方案。其中,混合模型、CNN、LSTM 及GRU模型的Batchsize 參數(shù)為全數(shù)據(jù)集288,能充分學(xué)習(xí)數(shù)據(jù)的本質(zhì)特征,加快收斂速度,并且滿(mǎn)足預(yù)測(cè)精度要求。模型交通量的預(yù)測(cè)時(shí)間步長(zhǎng)為3,6,9。3 項(xiàng)評(píng)價(jià)指標(biāo)都很小,步長(zhǎng)為6 時(shí),平均精度最高。自回歸移動(dòng)平均模型(Autoregressive Integrated Moving Average Model,簡(jiǎn)稱(chēng)為ARIMA)超參數(shù)選擇(1,1,1)。
在Python 語(yǔ)言開(kāi)發(fā)環(huán)境下,所有神經(jīng)網(wǎng)絡(luò)都基于Keras 框架,進(jìn)行搭建和訓(xùn)練。基于Keras,可將訓(xùn)練模型保存到本地,在預(yù)測(cè)階段可直接調(diào)用進(jìn)行預(yù)測(cè)實(shí)驗(yàn)。根據(jù)預(yù)測(cè)精度自適應(yīng)調(diào)整模型參數(shù),具備可移植性和靈活性。
基于訓(xùn)練好的混合模型和對(duì)照模型,隨機(jī)選取10 月31 日編號(hào)為4 的監(jiān)測(cè)點(diǎn)數(shù)據(jù)作為預(yù)測(cè)樣本,模型預(yù)測(cè)結(jié)果如圖3 所示。
從圖3 可以看出,CNN-GRU 模型預(yù)測(cè)結(jié)果最好,能更好的預(yù)測(cè)出實(shí)際交通流的變化趨勢(shì),預(yù)測(cè)值和實(shí)際值的誤差較小,平均誤差低至1 veh/5 min。其中,交通流在凌晨(0-50 時(shí)段)比較平穩(wěn)時(shí),平均誤差為0。但在早晚高峰(50-220 時(shí)段)時(shí),交通流變化劇烈,預(yù)測(cè)誤差會(huì)相應(yīng)出現(xiàn)波動(dòng),特別是交通流峰值處,最大誤差達(dá)到了5 veh/5 min。從圖4 中還可以看出,CNN 模型對(duì)于交通流的峰值預(yù)測(cè)效果偏低,GRU 和LSTM 模型對(duì)于交通流變化趨勢(shì)的預(yù)測(cè)效果較差?;旌夏P椭?,利用CNN 和GRU 的優(yōu)點(diǎn),識(shí)別了短時(shí)交通流數(shù)據(jù)的空間局部特征,并且保留了挖掘時(shí)間特征的能力,該模型有效提高了預(yù)測(cè)精度。
為了更好地分析預(yù)測(cè)結(jié)果,選取均方根誤差eRMSE、平均絕對(duì)誤差eMAE和平均絕對(duì)百分比誤差eMAPE作為評(píng)價(jià)指標(biāo)衡量模型的性能,其中,MAPE是比較不同預(yù)測(cè)模型準(zhǔn)確性的常見(jiàn)評(píng)價(jià)指標(biāo)之一。RMSE、MAE 和MAPE 三者定義如下:
圖3 模型的預(yù)測(cè)結(jié)果和誤差對(duì)比Fig. 3 Prediction results and error comparison of models
式中:yi為實(shí)際交通流量;為預(yù)測(cè)交通流量;n為樣本數(shù)量。
4 號(hào)監(jiān)測(cè)點(diǎn)的預(yù)測(cè)結(jié)果評(píng)價(jià)見(jiàn)表2。CNN-GRU模型與其他模型相比,在3 個(gè)評(píng)價(jià)指標(biāo)中,均為最低值,預(yù)測(cè)精度最高。通過(guò)神經(jīng)網(wǎng)絡(luò)各模型的評(píng)價(jià)指標(biāo)對(duì)比,CNN-GRU、GRU 和LSTM 3 種神經(jīng)網(wǎng)絡(luò)模型評(píng)價(jià)指標(biāo),基本處于同一水準(zhǔn)。而ARIMA 模型的MAPE,高達(dá)11.13%,相比其他神經(jīng)網(wǎng)絡(luò)模型性能最差??梢?jiàn)神經(jīng)網(wǎng)絡(luò)的多隱含層結(jié)構(gòu),能有效提取交通流數(shù)據(jù)的特征。此外,混合模型的3 項(xiàng)指標(biāo)最低,MAPE 相比LSTM 模型減小了19.7%,預(yù)測(cè)精度大幅提升。
表2 四種模型在4 號(hào)監(jiān)測(cè)點(diǎn)對(duì)比RMSE、MAE 和MAPE 評(píng)價(jià)指標(biāo)Table 2 The comparison of RMSE, MAE and MAPE of four models at No. 4 monitoring point
為了驗(yàn)證CNN-GRU 預(yù)測(cè)模型的適用性,選取10 月31 日16 個(gè)監(jiān)測(cè)點(diǎn)的數(shù)據(jù),作為預(yù)測(cè)樣本,模型預(yù)測(cè)結(jié)果如圖4 所示。從圖4 可以看出,路段交通流隨時(shí)間變化的情況。圖4(b)預(yù)測(cè)交通量與圖4(a)實(shí)際交通量的變化趨勢(shì)一致,所提出的模型在整條實(shí)驗(yàn)路段上適用性較好。
圖4 CNN-GRU 模型全天的預(yù)測(cè)結(jié)果Fig. 4 Forecast results of all day in CNN-GRU model
為了進(jìn)一步驗(yàn)證CNN-GRU 模型的預(yù)測(cè)精度,本試驗(yàn)構(gòu)建3 個(gè)對(duì)比模型:CNN、GRU 和LSTM模型。2018 年9 月-10 月16 個(gè)采樣點(diǎn)的預(yù)測(cè)評(píng)價(jià)結(jié)果,見(jiàn)表3。從表3 可以看出,CNN-GRU 模型與GRU、LSTM 及CNN 3 種神經(jīng)網(wǎng)絡(luò)模型的eMAPE相比,CNN-GRU 模型的精度指標(biāo)最高,均優(yōu)于其他預(yù)測(cè)模型。其中,相比GRU 模型,MAPE 減少了12%;相比LSTM 模型,MAPE 減少了13%;相比CNN 模型,MAPE 減少了23%。表明:本研究所提出的CNN-GRU 模型,預(yù)測(cè)精度最好。CNN 的預(yù)測(cè)精度比GRU 更好,也進(jìn)一步驗(yàn)證了CNN 提取短時(shí)交通流空間特征的強(qiáng)大能力。如果與其它體系結(jié)構(gòu)相結(jié)合使用,其實(shí)用性更強(qiáng)。
表3 全路段預(yù)測(cè)結(jié)果評(píng)價(jià)Table 3 Evaluation of all road segment prediction results
基于深度神經(jīng)網(wǎng)絡(luò)理論,提出一種卷積神經(jīng)網(wǎng)絡(luò)和門(mén)控循環(huán)單元神經(jīng)網(wǎng)絡(luò)相結(jié)合的CNN-GRN 預(yù)測(cè)模型,對(duì)該模型進(jìn)行訓(xùn)練與預(yù)測(cè),得到的結(jié)論為:
1) 利用Python 語(yǔ)言,完成CNN-GRU 模型的逐層構(gòu)建和參數(shù)調(diào)優(yōu),實(shí)現(xiàn)基于CNN-GRU 模型的短時(shí)交通量的精確預(yù)測(cè)。
2) 利用PeMS 的交通量數(shù)據(jù)訓(xùn)練模型,并進(jìn)行對(duì)比測(cè)試單個(gè)監(jiān)測(cè)點(diǎn)和全路段的預(yù)測(cè)結(jié)果表明:CNN-GRU 模型能夠?qū)煌鞯臓顟B(tài)和特征進(jìn)行識(shí)別和記憶,充分提取交通流數(shù)據(jù)的時(shí)間和空間特征,提高模型的預(yù)測(cè)精度。
3) CNN-GRN 與CNN、GRN 及LSTM 3 種模型相比,3 項(xiàng)評(píng)價(jià)指標(biāo)均為最低,預(yù)測(cè)精度最高,具備較好的適用性。
4) 實(shí)例數(shù)據(jù)證明,CNN-GRU 模型能更精確預(yù)測(cè)交通流的短時(shí)變化,可為交通管理與控制提供有效依據(jù)。
本實(shí)驗(yàn)僅僅是針對(duì)某個(gè)路段,未來(lái)應(yīng)該擴(kuò)展到城市路網(wǎng)中,如此更符合城市交通智能化需要。