李曉霞,石瑩潔,祁昌平,林和
1. 河西學院 信息技術(shù)與傳媒學院,甘肅 張掖 734000
2. 河海大學 水文水資源學院,江蘇 南京 210098
3. 蘭州大學 信息科學與工程學院,甘肅 蘭州 730000
交通流量預測是該領(lǐng)域的熱門研究課題,其研究在智能交通系統(tǒng)中具有重要意義[1]。交通流預測主要通過歷史交通流時間序列數(shù)據(jù)預判路網(wǎng)未來的交通狀況[2-3],其結(jié)果可以為交通信息系統(tǒng)提供流量控制策略的基礎(chǔ)數(shù)據(jù),也可以直接用于先進交通管理系統(tǒng)的信息發(fā)布,為出行者提供實時有效的引導信息并幫助相關(guān)部門優(yōu)化路徑選擇,是智能交通領(lǐng)域的關(guān)鍵性技術(shù)。因此,準確可靠的交通預測信息和交通流狀態(tài)是路線引導系統(tǒng)的基礎(chǔ)。
目前,交通流預測研究較多,主要集中于交通流序列的特征提取、預測模型的建立等領(lǐng)域。常用的預測方法包括平均、自回歸滑動平均(autoregressive and moving average,ARMA)、線性回歸、非參數(shù)回歸[4-5]等方法。傳統(tǒng)的統(tǒng)計模型如整合移動平均自回歸(auto-regressive integrated moving average,ARIMA)模型[6]可以從交通數(shù)據(jù)中提取趨勢特征,但是,ARIMA 等傳統(tǒng)模型難以提取隱藏在交通數(shù)據(jù)中的非線性特征;而機器學習方法例如K 近鄰(K-nearest neighbor,KNN)算法[7]和支持向量機(support vector machines,SVM)算法[8]雖然可以對更為復雜的數(shù)據(jù)進行建模,但是它們需要對特征進行工程處理,這意味著需要將原始數(shù)據(jù)轉(zhuǎn)換為更適合模型使用的特征,即需要選擇合適的特征集進行特征縮放和歸一化等操作。因此,傳統(tǒng)的統(tǒng)計模型的預測精度通常不能滿足實際需求。
由于深度學習在語音識別和圖像處理方面取得了突破,越來越多的研究人員將深度學習應(yīng)用于時空數(shù)據(jù)預測,其可以結(jié)合非線性的模塊來形成原始輸入數(shù)據(jù)的多層次深度表示[9]。文獻[10-11]也驗證了深度學習優(yōu)越的特征提取能力。大量研究發(fā)現(xiàn),遞歸神經(jīng)網(wǎng)絡(luò)(recursive neural network,RNN)比反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)更能學習時間序列特征[12],例如Sun 等[13]提出了一種新的基于門控遞歸單元的交通量預測模型,建立了一個優(yōu)于其他遞歸神經(jīng)網(wǎng)絡(luò)的良好的城市交通量預測模型??偟膩碚f,雖然上述深度學習算法提供了優(yōu)秀的交通量建模能力,但對于關(guān)鍵信息的聚焦能力較弱。
為有效聚合多個節(jié)點的特征信息,提高模型對關(guān)鍵信息的聚焦能力以及分析和預測的效率,學者們將各個模型的優(yōu)點結(jié)合在一起,提高預測性能。例如Li 等[14]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)結(jié)合長短時記憶網(wǎng)絡(luò)(long short term memory,LSTM)的交通流預測新模型。實驗結(jié)果表明,CNN-LSTM 能夠建立良好的交通流預測模型。桂智明等[15]利用卷CNN 結(jié)合門控循環(huán)單元(gate recurrent unit,GRU)以及注意力機制構(gòu)建新模型對交通流的周期性特征進行挖掘,對交通流進行預測,取得不錯的預測效果。張齡允等[16]通過互補集成經(jīng)驗模態(tài)分解減少噪聲對交通流數(shù)據(jù)預測的影響,采用CNN、LSTM 挖掘數(shù)據(jù)特征,預測性能相較于單一模型有較高的提升。Chen 等[17]提出了貝葉斯時間分解(Bayesian temporal factorization,BTF)模型,該模型可以在缺少時空數(shù)據(jù)的情況下預測交通流量。在該模型中,將張量分解和向量自回歸的過程轉(zhuǎn)換為圖形結(jié)構(gòu),以減少數(shù)據(jù)丟失帶來的不確定性,通過對幾個真實時空數(shù)據(jù)集的驗證,證明了BTF 模型優(yōu)于現(xiàn)有方法。Wang 等[18]提出了一種多視圖雙向時空圖網(wǎng)絡(luò),該模型用于預測缺少數(shù)據(jù)的城市交通流量。何鴻杰等[19]提出基于三次指數(shù)平滑法和深度殘差網(wǎng)絡(luò)的組合預測模型來預測交通流量,但模型計算成本較高。邴其春等[20]提出基于變分模態(tài)分解與長短時記憶神經(jīng)網(wǎng)絡(luò)的組合模型來預測短時交通流,預測精度有所提高。鐘祥興等[21]采用了基于變分模態(tài)分解-注意力機制-門控循環(huán)神經(jīng)網(wǎng)絡(luò)的組合預測模型,降低數(shù)據(jù)噪音,提高了預測精度。以上模型雖取得不錯的預測效果,但只關(guān)注于對輸入向量權(quán)重參數(shù)優(yōu)化的情況下,模型預測中仍存在著挖掘特征能力不足的缺點。
因此本文提出一種基于特征強化的短時交通流預測模型——卷積神經(jīng)網(wǎng)絡(luò)-特征增強(feature enhancement,F(xiàn)E)-門控循環(huán)單元(CNN-FE-GRU)神經(jīng)網(wǎng)絡(luò)模型來預測交通網(wǎng)絡(luò)中4 個路口中每個路口的交通流量,分析不同出行高峰例如工作日、周末以及節(jié)假日等交通特征,來解決挖掘特征能力不足的問題。
本文提出的CNN-FE-GRU 交通流預測模型設(shè)計思路如下:
1)利用CNN 對交通流時間序列進行特征提取,以捕捉交通流數(shù)據(jù)中的時空相關(guān)性。CNN 層可以有效地提取數(shù)據(jù)的空間特征,通過滑動窗口的方式對交通流時間序列進行卷積操作,提取出其空間特征。同時,通過池化層對特征進行降維,減少模型參數(shù)和計算量的同時保留數(shù)據(jù)信息。
2)使用FE 模塊為數(shù)據(jù)賦予相應(yīng)的特征權(quán)重值,對關(guān)鍵數(shù)據(jù)信息進行聚焦。FE 模塊可以提高模型對關(guān)鍵數(shù)據(jù)信息的關(guān)注度,從而降低噪聲對模型的影響。FE 模塊可以根據(jù)特定的領(lǐng)域知識或者數(shù)據(jù)分布等特征,為數(shù)據(jù)賦予不同的權(quán)重值,從而使得模型更加關(guān)注與預測相關(guān)的數(shù)據(jù)信息。
3)通過GRU 對輸出的時序數(shù)據(jù)再次提取時序數(shù)據(jù)特征的同時保證模型的效率,提高預測精度。GRU 層可以捕捉交通流數(shù)據(jù)中的時間序列特征,并且通過門控機制有效處理長序列數(shù)據(jù),避免梯度消失和梯度爆炸問題。GRU 層可以將前一時刻的狀態(tài)信息和當前時間步的輸入信息結(jié)合起來,從而對時序數(shù)據(jù)進行建模和預測。
時間序列數(shù)據(jù)預測需要對關(guān)鍵數(shù)據(jù)信息進行聚焦,如果對于數(shù)據(jù)信息沒有側(cè)重點那么會導致模型學習效果降低。本文所提出的特征增強模塊為不同的數(shù)據(jù)賦予不同的權(quán)重,旨在加強學習與目標有關(guān)數(shù)據(jù)的特征,降低對目標無關(guān)的數(shù)據(jù)特征,增強特征挖掘能力。
對于交通流預測問題,當給定交通流的時間序列數(shù)據(jù)S時,GRU 神經(jīng)網(wǎng)絡(luò)輸出預測值Y。S由影響交通流的時間序列組成:
式中xt為t時刻的網(wǎng)絡(luò)輸入。
Y為需要預測的交通流量:
CNN 負責對輸入的時間序列之間的潛在聯(lián)系進行挖掘,GRU 負責對輸出的時序數(shù)據(jù)進行選擇性遺忘并保證模型的效率。C為含有權(quán)重的中間數(shù)據(jù)信息,計算方式為
式中:Wi為可學習的權(quán)重,hi為編碼器隱含層輸出。
當使用CNN 對時間序列的潛在特征進行提取后,本文利用FE 模塊對處理后的數(shù)據(jù)賦予相應(yīng)的權(quán)重,這樣便進一步加強了模型的聚焦能力,因此特征增強模塊需要對CNN 處理后的數(shù)據(jù)信息賦予不同的權(quán)重才能精準預測交通流。特征增強模塊的權(quán)重計算時首先將輸入的時間序列數(shù)據(jù)與經(jīng)過CNN 處理后的數(shù)據(jù)進行對齊運算,得到對齊值si,對齊運算方式為
通過歸一化指數(shù)函數(shù)softmax 將對齊值si進行特征增強得到增強后的權(quán)重 αt:
特征增強模塊計算流程見圖1。
圖1 FE 模塊計算流程
交通流會隨著時間在道路中不斷地變化,本文提出的CNN-FE-GRU 模型采用CNN 神經(jīng)網(wǎng)絡(luò)對交通流進行預測。特征增強模塊將CNN 的輸出xt與隱含層狀態(tài)ht進行對齊運算,然后通過softmax 函數(shù)將對齊后的結(jié)果映射至(0,1),得到αt。最終使用CNN 的輸出xt與αt相乘,使得數(shù)據(jù)獲得相應(yīng)的權(quán)重。GRU 神經(jīng)網(wǎng)絡(luò)將處理含有特征權(quán)重的中間信息數(shù)據(jù),其中,GRU 神經(jīng)網(wǎng)絡(luò)的復位門控制上一時刻隱藏層輸出和當前時刻時間序列數(shù)據(jù)的輸入,更新門控制上一時刻信息對當前時刻的影響程度,最后在GRU 神經(jīng)網(wǎng)絡(luò)和含有一個神經(jīng)單元的全連接層作用下輸出交通流數(shù)據(jù)。通過以上流程,整體提高了交通流預測性能,特征提取能力得到進一步的加強。模型整體結(jié)構(gòu)見圖2。
圖2 CNN-FE-GRU 預測模型結(jié)構(gòu)
文獻[22]的研究表明采用CNN 作為數(shù)據(jù)的輸入層的預測模型效果更好。在預測應(yīng)用中,可將CNN 分為輸入部分、特征提取部分以及預測輸出部分。CNN 層通過卷積操作進行局部趨勢學習,對交通流的時間特征進行有效保留[23]。
CNN 利用卷積核對輸入矩陣進行濾波,實現(xiàn)卷積運算。卷積層函數(shù)利用卷積核提取輸入矩陣的特征信息:
式中:f為激活函數(shù),為l層(i,j)位置的卷積濾波器對應(yīng)的權(quán)重,為偏置,為前一層的特征映射,Mj為特征映射集,為當前層的特征映射。由于交通流數(shù)據(jù)具有非線性特征,所以選擇ReLu 為激活函數(shù),提高網(wǎng)絡(luò)非線性特征學習能力。
在交通流預測中歷史交通流可能會對未來交通流量產(chǎn)生長期影響,存在長期依賴性特征,因此對交通流時間特征進行建模時,需對其長期依賴性進行考慮,CNN 可以解決RNN 中的長期依賴問題[24]。
GRU 中的更新門和重置門使其具有處理交通流的長期依賴特征的能力,因此對輸出的時序數(shù)據(jù)進行再次特征提取的同時保證模型的效率,提高了預測精度。GRU 各門控計算過程如下:
式中:rt為復位門,zt為更新門,W為權(quán)重參數(shù),為新的輸入,為候選隱藏狀態(tài)值,xt為t時刻的輸入,ht-1為上一個時刻的隱藏狀態(tài),[ ]表示2 個狀態(tài)值的組合,σ(·)為sigmoid 函數(shù),tanh 為取值范圍在[-1,1]的激活函數(shù), ?代表矩陣元素的哈達瑪積。
以時間序列數(shù)據(jù)為輸入,基于本文提出的CNN-FE-GRU 模型的實驗流程如圖3 所示。
圖3 CNN-FE-GRU 預測模型流程
1)數(shù)據(jù)收集及整理。對來源于INRIX 數(shù)據(jù)集收集的4 個路口的交通流量數(shù)據(jù)以及來源于PeMSD4 數(shù)據(jù)集的數(shù)據(jù)以時間序列形式整理,生成時間序列數(shù)據(jù)池。
2)數(shù)據(jù)處理。采用標準化的方式對數(shù)據(jù)進行去量綱化處理。
3)建立CNN-FE-GRU 模型。首先使用一維卷積神經(jīng)網(wǎng)絡(luò)挖掘路口、時間段與車流量的潛在聯(lián)系,接下來使用特征增強模塊增加模型聚焦能力,最后使用GRU 對輸出的時序數(shù)據(jù)進行進一步的特征提取,完成對交通流量的預測。
4)模型預測誤差計算。以平均絕對誤差(mean absolute error,MAE)eMA、均方誤差(meansquare error,MSE)eMS和均方根誤差(root mean square error,RMSE)eRMS等誤差函數(shù)對CNN-FEGRU 模型誤差進行計算,通過訓練使得模型能夠更新網(wǎng)絡(luò)層之間的參數(shù),使得模型達到最優(yōu)效果,當達到訓練次數(shù)后模型停止訓練。
5)真實數(shù)據(jù)模擬。為進一步展現(xiàn)CNN-FEGRU 模型預測性能,隨機選取15 條真實數(shù)據(jù)并將真實數(shù)據(jù)特征值送入訓練好的模型,將得到的預測值與真實數(shù)據(jù)中目標值進行對比,探究模型對于真實數(shù)據(jù)的模擬能力。
本文選取了2 個數(shù)據(jù)集:一個數(shù)據(jù)集來源于INRIX,其為一家領(lǐng)先的網(wǎng)聯(lián)汽車服務(wù)和交通分析解決方案提供商。該數(shù)據(jù)集包含了4 個路口數(shù)據(jù),前3 個路口的數(shù)據(jù)為2015 年11 月1 日0 點—2017 年6 月30 日23 點的43 777 組逐時數(shù)據(jù),第4 個路口的數(shù)據(jù)包含了2017 年1 月1 日0 點—2017 年6 月30 日23 點的4 344 組逐時數(shù)據(jù)。另一個數(shù)據(jù)集使用的是加利福尼亞州的高速公路交通數(shù)據(jù)集PeMSD4[25],PeMSD4 數(shù)據(jù)集時間跨度為2018 年1—2 月,包含29 條道路上的3 848 個檢測器。經(jīng)過對數(shù)據(jù)清洗、篩選后去掉冗余探測器,確保相鄰探測器距離大于5.6 km,最后剩余307 個探測器即307 個節(jié)點。
對模型訓練時要對數(shù)據(jù)進行預處理,因為數(shù)據(jù)的類型不同,會有不同的單位及量綱,這樣會影響交通流預測的精度,因此需通過數(shù)據(jù)標準化處理消除變量間存在的量綱關(guān)系。標準化公式為
式中:Vs為初始數(shù)據(jù)集值;Vmean為平均值;Vstd為標準差;V為標準化處理后的數(shù)據(jù),用于輸入到神經(jīng)網(wǎng)絡(luò)及其他模型中。
為了比較不同模型的預測結(jié)果以及定量評價模型的預測性能,采用MAE、MSE 和RMSE 這3 個評價指標對實驗模型真實值和預測值誤差進行計算,誤差函數(shù)具體計算方式為
式中:y?(t)為預測值,y(t)為實際值,n為樣本數(shù)。最終得到的誤差指標值越小,代表預測的結(jié)果越準確,預測效果越好。
為了驗證本文模型的有效性,進行了2 組實驗。實驗1 選取了4 個路口的數(shù)據(jù),分為2015—2017 年的逐時數(shù)據(jù)和2017 年的逐時數(shù)據(jù)2 部分;實驗2 選取了加利福尼亞州的高速公路交通數(shù)據(jù)集PeMSD4。
為了進行對比驗證,實驗1 的對照組模型包括了GRU 模型、CNN 模型、LSTM 模型和CNNGRU 模型。實驗2 的對照組模型選取了歷史平均方法(historical averaging,HA)、差分自回歸滑動平均(autoregressive integrated moving average model,ARIMA)、向量自回歸(vector autoregression,VAR)、圖注意力網(wǎng)絡(luò)(graph attention network,GAT)模型以及GAT-GRU 模型,并在此基礎(chǔ)上添加了STGCN[26]和GeoMAN[27]模型。本文使用谷歌Tensorflow 開源平臺搭建神經(jīng)網(wǎng)絡(luò)模型,并在搭載K80 顯卡的Kaggle 平臺進行模型訓練。
實驗1 和實驗2 的基本參數(shù)設(shè)定大體相同,但是實驗2 中批處理大小(batch size)設(shè)置為64,圖注意力網(wǎng)絡(luò)多頭注意力頭數(shù)為K=8,與文獻[25]保持一致。具體來說,本文提出的CNN-FEGRU 模型參數(shù)設(shè)置如下:CNN 層的網(wǎng)絡(luò)深度為32,卷積核大小均為2×2;全連接層的神經(jīng)元個數(shù)為1,激活函數(shù)為Relu 函數(shù);批處理大小為32。神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)參數(shù)如表1 所示。此外,文中還設(shè)置了學習率(learning rate,LR)RL來優(yōu)化模型的訓練效果。
表1 實驗基礎(chǔ)參數(shù)表
實驗1 首先對4 個路口數(shù)據(jù)進行預測實驗以評估CNN-FE-GRU 模型在交通流預測中的適用性,目的在于證明在數(shù)據(jù)量不同的情況下模型的預測精度是否仍然較高。模型的預測對比選取0—14 時逐時數(shù)據(jù)進行預測驗證,如圖4~圖7所示,各模型的預測誤差見表2。在路口1 的實驗中,可以發(fā)現(xiàn)CNN-FE-GRU 模型相較于CNN模型、GRU 模型、LSTM 模型以及CNN-GRU 模型,MAE 分別下降了0.008 5、0.008、0.006 1、0.004 5,MSE 分別下降了0.005 9、0.004 4、0.004、0.003 1,RMSE 分別下降了0.113、0.010 7、0.008 8、0.005 4。而其他3 個路口的CNN-FE-GRU 模型相較于其他模型的誤差值也是降低的。CNN-FE-GRU 模型在MAE、MSE 和RMSE 評價指標上的平均值分別為0.229、0.130 8、0.338 8。
表2 4 個路口的性能指標對比
圖4 路口1 預測
圖5 路口2 預測
圖6 路口3 預測
圖7 路口4 預測
實驗2 采用傳統(tǒng)預測模型方法與本文提出的CNN-FE-GRU 模型進行橫向的平均性能比較實驗,為第4 個路口數(shù)據(jù)。實驗結(jié)果如表3 所示,本文提出的CNN-FE-GRU 模型在MAE 和RMSE 評價指標上均有較為明顯的下降。MAE 和RMSE分別為0.221 1 和0.351 7。在實驗2 中,進一步驗證了CNN-FE-GRU 模型在預測任務(wù)中的有效性,其預測誤差也是最小的。
表3 第4 個路口性能指標對比
使用CNN-FE-GRU 模型進行交通流預測,在4 個不同路口的交通流預測任務(wù)中,CNN-FEGRU 模型在MAE、MSE 和RMSE 等指標上表現(xiàn)更優(yōu)秀,比其他模型具有更高的預測精度。CNNFE-GRU 模型優(yōu)越性在于其能夠提取數(shù)據(jù)特征并聚焦關(guān)鍵數(shù)據(jù)信息,從而提高建模非線性和復雜的交通數(shù)據(jù)方面的能力,進而提高預測性能。實驗結(jié)果表明CNN-FE-GRU 模型在數(shù)據(jù)量較大和較小的情況下都具有較高的預測精度和適應(yīng)性。實驗2 通過對傳統(tǒng)預測模型的比對進一步證明CNN-FE-GRU 模型的優(yōu)越性,表明其在面對不同交通流數(shù)據(jù)變化時模型預測穩(wěn)定性更好,適用于復雜交通流預測的情形。
綜上,CNN-FE-GRU 模型的優(yōu)越性在于其能夠發(fā)揮CNN 和GRU 這2 種模型的優(yōu)點,并通過FE 模塊提高建模能力,從而顯著提高預測性能。
1)本文結(jié)合CNN、FE 及GRU 的特點,提出了CNN-FE-GRU 模型。該模型在提取時間序列數(shù)據(jù)特征方面展現(xiàn)了較大的優(yōu)越性,通過分析不同的出行高峰,有效提取不同的時間序列信息,減少數(shù)據(jù)冗余性,提高交通流量預測能力。
2)提出FE 方法,為不同時間下的特征賦予相應(yīng)的權(quán)重,聚焦于對當前任務(wù)更為關(guān)鍵的信息,加強學習與目標有關(guān)數(shù)據(jù)的特征,降低對目標無關(guān)的數(shù)據(jù)特征。
3)使用INRIX 公司發(fā)布的4 個路口的真實數(shù)據(jù)集及加利福尼亞州的高速公路交通數(shù)據(jù)集PeMSD4 進行模擬實驗,實驗結(jié)果表明,與其他經(jīng)典模型相比,添加了FE 模塊的新算法在RMSE、MAE 等多種評價指標下,誤差值與對比模型相比存在明顯下降,說明了新算法的有效性。