閆 楊,孫麗珺,朱蘭婷
(青島科技大學 信息科學技術學院,山東 青島 266061)
隨著城市交通系統的快速發展,移動互聯、車路協同、主動安全、自主高效的新一代合作智能交通系統已經成為未來道路交通管理系統的主要推動者[1]。作為新一代智能交通系統的重要一環,準確、快速的短時交通流量預測不僅可以幫助人們規劃出行路線、節省出行時間,從而減少交通擁堵以及不必要的資源浪費,而且也為將來信息感知、深度互聯、協同共享、智能處理、應用開放的智慧城市建設發揮至關重要的作用。
到目前為止,學者們已經提出了許多不同的短時交通流量預測方法,主要有基于時間序列的交通流量預測方法、基于統計概率的短時交通流量預測方法和基于機器學習的短時交通流量預測方法等三大類。
第一類為基于時間序列的交通流量預測方法。文獻[2]提出一種基于季節性差分整合移動平均自回歸模型(ARIMA)的短時交通流量預測方法,該方法針對不同的季節來對交通流量進行預測。然而由于交通流是隨機和非線性的,而ARIMA方法主要處理線性關系,導致了單一的ARIMA模型無法分析非線性的交通流數據。文獻[3]提出一種具有廣義自回歸條件異方差性(ARIMA-GARCH)的方法來預測交通流量,該方法將線性的ARIMA模型和非線性的GARCH模型相結合,以此來捕獲交通流序列的條件均值和條件異方差,從而進行交通流量的預測。文獻[4]提出一種基于時間序列分割與極限學習機相結合的交通流量預測算法,該算法預測速度快并且準確性高。
第二類為基于統計概率的短時交通流量預測方法。文獻[5]提出一種四階高斯過程動態模型(GPDM),四階GPDM中的潛變量是四階馬爾科夫高斯過程,并且加權K最近鄰(K-NN)算法被結合到模型中以對潛變量進行有效預測,然后通過GPDM和K-NN預測結果的平均值來估計未來交通流量。文獻[6]提出一種利用線性條件高斯貝葉斯網絡模型的方法來綜合考慮交通流量的時間、空間維度以及交通流量的速度信息,從而進行短時交通流量預測。
第三類為基于機器學習的短時交通流量預測方法。文獻[7]提出一種基于支持向量機(SVM)的精確多步交通流量預測方法,與傳統的單步預測方法相比[8],該方法能夠對未來某一時期的交通狀態趨勢進行精確預測。文獻[9]提出一種基于時空自適應的多核支持向量機(AMSVM-STC)的預測方法,該方法將高斯核和多項式核雜交成AMSVM,利用粒子群優化算法對參數進行優化,從而能夠根據實時交通流量變化趨勢自適應地調整混合核權重,達到精準預測短時交通流量的效果。文獻[10]提出一種基于堆棧自編碼器(SAE)的預測方法,該方法使用貪婪的分層無監督學習算法進行逐層訓練,從而使預測結果更加快速和準確。
近年來,深度學習的迅速發展為短時交通流量預測提供了更加多樣化的方法。文獻[11]提出一種基于長短期記憶網絡(LSTM)的預測方法,該方法利用LSTM捕獲時間序列數據中的長期依賴性的固有特征,使其能夠對非線性的交通流量做出合適的預測結果。文獻[12]提出一種DeepTrend模型,該模型由可以提取交通流時變趨勢的提取層和使用LSTM網絡能夠對時變趨勢進行計算和輸出的預測層組成,該方法與單一的LSTM模型相比,能夠更加準確地預測短時交通流量數據。文獻[13]提出一種基于殘差長短期記憶網絡的交通流量預測方法,利用集成學習思想將空間分布的數據端到端訓練到殘差LSTM網絡中,同時在每個LSTM單元后引入維度單元,顯示建模特征維度之間的相互依賴關系。文獻[14]提出一種基于門控循環單元(GRU)的預測方法,該方法所使用的模型少一個門控,因此,相比LSTM更加簡單[15],運算速度也更快,并且考慮天氣因素的影響,提高了預測精度。然而,由于LSTM和GRU模型只能處理時間序列,僅使用LSTM或GRU模型并不能全面分析交通流量的時間和空間特征,因此其交通流量的預測精度較低。
文獻[16]提出一種基于深度學習的多組件時空圖卷積網絡(MCSTGCN),通過3個組件分別建模流量數據的近期、日周期、周周期特性,有效捕捉交通流量數據的時空相關性。文獻[17]提出一種基于卷積神經網絡(CNN)和長短期記憶網絡(LSTM)相結合的短時交通流量預測方法(CNN-LSTM),該方法利用LSTM提取交通流量的時間特征和周期性特征,使用CNN提取交通流量的空間特征,最后將三者的特征進行融合,得到交通流量預測結果。然而,這種方法的缺點是將LSTM和CNN模塊以并行的方式進行特征提取,導致最后得到的交通流特征并不能充分融合。文獻[18]提出一種卷積-長短期記憶網絡(Conv-LSTM)的方法,該方法將卷積神經網絡和長短期記憶網絡集成到一個模型中,并且使用雙向LSTM(Bi-LSTM)模型來提取交通流的周期性特征,最后將特征進行充分融合,提高交通流量預測的準確性。文獻[19-20]利用深度信念網絡(DBN)來進行短期交通流量的預測,取得了較好的效果。
為預測短時交通流量,本文提出一種基于時空相關性的方法Conv-GRU。通過使用卷積-門控循環單元提取交通流量的空間和時間特征,并運用雙向門控循環單元(Bi-GRU)得到交通流的周期性特征,對時空特征和周期性特征進行融合來預測交通流量。
由于交通流量數據的預測點不均勻地分布在不同的區域或者路口,收集的交通數據的位置呈現不對稱狀態,并且間隔很大。本文將交通流量數據映射到一維矩陣,將預測點的流量數據放入矩陣的中心,并且根據距離預測點的遠近,將其他點的交通流量數據填充到交通流量矩陣中。系統模型用于分析矩陣以找出預測點與其他點之間的空間相關性。一維空間信息矩陣表示為:
Ft=(F1,F2,…,Fr,…)
(1)
其中,t代表某一時刻,r代表某一區域或者路口,Ft代表t時刻所有區域的交通流量。不同時刻的一維空間信息矩陣為:
(2)

帶有周期性的交通數據可以表示為:
(3)
(4)

在進行數據公式化后,將上述數據矩陣輸入到本文所構建的系統模型中。本文系統模型主要包括2個部分,第1個部分是卷積-門控循環單元(Conv-GRU)模塊,第2個部分是雙向門控循環單元(Bi-GRU)模塊。使用Conv-GRU來提取交通流量數據的時空特征,并運用Bi-GRU來提取周期性特征,最后集中時空特征和周期特征來預測交通流量,總體模型框架如圖1所示。

圖1 系統總體框架
1.2.1 卷積-循環門控單元模塊
卷積-門控循環單元(Conv-GRU)模塊的輸入矩陣可以表示為時間序列Fr=(F1,F2,…,Ft,…),其模塊結構如圖2所示。矩陣中的每行元素表示同一時刻要預測的點的相鄰區域中其他交通流量值,即Ft=(F1,F2,…,Fr,…)。

圖2 Conv-GRU模塊結構
交通流量預測具體步驟如下:
步驟1使用一維卷積來處理Ft中的每個元素。
通過滑動濾波器在數據矩陣中進行滑動卷積以獲取局部感知域的卷積信息,本文中使用濾波器的卷積核為3,滑動步數為1。一維卷積圖如圖3所示。

圖3 一維卷積示意圖

(5)

(6)
以此類推,最終得到整個交通流量數據的卷積值A=(A1,A2,A3,…)。
步驟2聚合所有的卷積值,以形成交通流量數據空間特征。
g(i)=R(Aiw+B)
(7)
φ(x)=max(0,x)
(8)
步驟3使用平均池化技術將卷積層中獲取的空間特征進行合并縮小。
通過平均池化技術,使得合并后的維度大幅降低,這樣可以過濾掉一些不必要的信息以獲得更抽象的空間特征,平均池化如圖4所示。

圖4 平均池化示意圖
空間特征矩陣中每一行代表的是一個時間段,因此第1個時間段池化后的特征為:
(9)
同理,第2個時間段池化后的特征為:
(10)
以此類推,可得第t個時間段池化后的特征為:
最早實行導師制的是英國牛津大學,時間可以追溯到14世紀,幾百年來,牛津大學通過實行導師制培養出許多諾貝爾獎獲得者,同時英國歷史上的多名首相也畢業于牛津大學[2]。隨后,本科生導師制開始在世界各大高校中逐漸應用。在我國高校中,本科生導師制起步較晚,最早是在1938年浙江大學實行。新中國成立之后,由于政治原因,本科生導師制被逐漸放棄,被蘇聯教育模式的學年制慢慢取代,并且一直沿用到今天。
(11)
其中,m、n以及p都為正整數,且p>n>m。
步驟4將卷積和池化后的空間特征輸入到GRU模塊中,以形成交通流量的時空相關性。在卷積及池化處理交通流量數據之后,輸出的結果變為帶有空間特征的時間序列矩陣C=(C1,C2,…,Ct,…),然后把C作為門控循環單元(GRU)模塊的輸入。
如圖5所示,GRU模塊結構包括更新門和重置門2個門控。更新門主要用來控制前一時刻的狀態信息被帶入到當前狀態中的程度,更新門的值越大說明前一時刻的狀態信息帶入越多。重置門用于控制忽略前一時刻的狀態信息的程度,重置門的值越小說明忽略狀態信息越多。

圖5 GRU模塊結構示意圖
GRU模塊結構具體方法如下:
1)將前一時刻的狀態信息ht-1和當前時刻的輸入xt送到重置門中,以確定前一時刻丟棄哪部分信息:
rt=σ(Wr·[ht-1,xt]+br)
(12)
其中,rt是重置門的輸出,Wr是重置門的權重,br是重置門的偏置項。
2)將ht-1和xt送到更新門中,以確定要更新前一時刻的哪部分信息:
zt=σ(Wz·[ht-1,xt]+bz)
(13)
其中,zt是更新門的輸出,Wz是更新門的權重,bz是更新門的偏置項。

(14)
其中,Wh和bh是中間狀態的權重和偏置項。

(15)
5)通過sigmoid函數將ht激活,得到融合空間相關性的時間特征序列。
yt=σ(Wo·ht)
(16)
(17)
其中,σ是激活函數。
1.2.2 雙向循環門控單元模塊
交通流量具有非常明顯的周期特點,本文運用雙向門控循環單元(Bi-GRU)來提取交通流量的周期性特征,由于Bi-GRU需要預測數據之前和之后的信息來提高預測的準確度,而本文只能使用預測時間之前的交通流量,因此選擇預測點昨天的同一時間點以及預測點上個周同一時間點的交通流量數據作為模塊的輸入,以此來提取周期性特征。Bi-GRU模塊如圖6所示。

圖6 Bi-GRU模塊結構示意圖
Bi-GRU模型分別由向上和向下堆疊的單向GRU模型組成(其原理和單向GRU模型相同),因此,雙向GRU模型需要2個時間序列輸入,最終輸出結果(交通流量的周期性特征)由正向和反向2個輸出共同決定。
使用上述模型分別提取時空特征和周期性特征,將所有特征順序連接到特征矩陣中,然后添加到全連接層進行預測,本文在預測時使用均方誤差(Mean Squared Error,MSE)作為損失函數來進行訓練,可以準確地描述真實值和預測值之間的差異:
(18)
其中,Fpredcit為短期交通流量的預測值,Ftrue為交通流量的真實值。本文使用RMSP(Root Mean Square Prop)優化算法來優化深度神經網絡。RMSP優化算法通過設定一個超參數,可以自適應地調整學習速率,從而防止損失函數在更新時存在擺動幅度較大的情況,并且進一步加快了函數的收斂速度。
本文提出一種基于時空相關性的短時交通流量預測的方法。通過使用加利福尼亞運輸性能測量系統(PeMS)的高速公路數據集來對Conv-GRU方法進行訓練和評價。PeMS中使用的檢測器每5 min收集一次流量數據,該數據集一共包含33個交通站點信息,每一個不同的站點都收錄了從2017年1月1日—7月15日的交通流量數據。本文使用2017年4月10日—4月13日的數據進行分析,通過對該數據集的分析,發現交通流量數據呈現出很明顯的周期性特征,如圖7所示。

圖7 交通流的周期性特征
本文所使用的軟硬件平臺如下:
硬件環境平臺:Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20 GHz,250 GB內存,1 000 GB硬盤,Ubuntu 16.04.5操作系統。
軟件環境平臺:Python3.5,Keras,Tensorflow,scikit-learn等。
為證明本文方法的準確性,使用平均絕對誤差(MAE)和均方根誤差(RMSE)2個評價指標來評估預測結果,MAE能更好地反映出預測值誤差的實際情況,RMSE是均方誤差的算術平方根,RMSE的值越小,說明預測模型描述實驗數據具有更好的精確度。兩者計算公式如下:
(19)
(20)
其中,Fpredict是交通流量的預測值,Ftrue是交通流量的真實值。
為測試Conv-GRU方法的性能,使用6種不同的方法進行對比,分別是Conv-LSTM、CNN-GRU、CNN-LSTM、GRU、LSTM以及SAE。如表1、表2所示,Conv-GRU方法在MAE和RMSE上要低于CNN-LSTM、CNN-GRU、GRU、LSTM以及SAE,和Conv-LSTM基本相差不多。
表1 不同方法在工作日交通流量預測中的性能
Table 1 Performance of different methods in weekday traffic flow prediction

方法MAERMSE本文方法19.873 41028.447 581Conv-LSTM方法21.382 76929.882 264CNN-GRU方法23.579 84132.834 440CNN-LSTM方法22.038 42231.421 413GRU方法27.255 19838.443 176LSTM方法33.975 15744.918 871SAE方法27.681 10927.681 109
表2 不同方法在周末交通流量預測中的性能
Table 2 Performance of different methods in weekday traffic flow prediction

方法MAERMSE本文方法20.530 44728.897 232Conv-LSTM方法19.879 53528.263 375CNN-GRU方法23.659 01633.573 994CNN-LSTM方法21.100 65930.015 815GRU方法26.246 00337.976 083LSTM方法24.845 77835.931 767SAE方法26.770 52337.994 996
為更加直觀地比較預測結果的準確性,本文使用CNN-LSTM、LSTM以及SAE 3種方法來與Conv-GRU方法進行對比,預測時間分別是工作日以及周末的上午8:00—12:00,預測結果如圖8所示。

圖8 4種方法工作日和周末預測結果
Fig.8 Working day and weekend forecast and results of 4 method
通過分析可以看出,無論是在預測工作日還是周末交通流量上,Conv-GRU方法的預測結果要比CNN-LSTM、LSTM以及SAE方法更加精確,這是因為Conv-GRU方法是將卷積神經網絡和門控循環單元集成到一個模塊,可以充分提取到短期交通流量數據的時間和空間特征,而CNN-LSTM方法[18]是將卷積神經網絡和長短期記憶網絡組合到2個并行的模塊,分別提取交通流量的時間和空間特征,這樣的預測方法不能夠使交通流量的時間和空間特征完全融合,而且Conv-GRU方法使用Bi-GRU模塊來提取周期性特征,這樣就使得Conv-GRU方法比CNN-LSTM的方法在預測結果上更精確。
LSTM模型只是適合提取時間序列特征,并不適合處理空間特征,而Conv-GRU方法可以處理時間特征、空間特征以及周期性特征,因此預測的結果優于僅使用LSTM模型的預測方法。
在上述的方法中,由于堆棧自編碼器(SAE)在進行訓練時使用的是分層無監督學習算法,因此它并不能做到對交通特征的全局優化,并且其每一層的訓練方法都是相同的,這就導致了SAE在訓練多個神經層以后會出現多層遞增式失效,即其性能會隨著訓練層數的增加而迅速降低,因此,堆棧自編碼器的預測精度較差。
由圖9、表1和表2數據可以看出,Conv-GRU方法和Conv-LSTM方法[19]之間無論是在預測性能還是預測結果方面都相差不大,但是在兩者性能和預測結果相差無幾的情況下,Conv-GRU方法每次迭代所需要的時間要比Conv-LSTM少,這主要是由于GRU模型與LSTM模型相比,少了一個門控單元,這就意味著GRU模型比LSTM少了幾個向量乘法操作,而這在訓練數據量特別大或者迭代步數特別多的情況下GRU要比LSTM節省很多時間,Conv-GRU方法和Conv-LSTM不同的迭代次數下的訓練時間如圖10所示。

圖9 Conv-GRU和Conv-LSTM工作日和周末預測結果
Fig.9 Conv-GRU and Conv-LSTM weekday and weekend forecast results

圖10 不同迭代次數下Conv-GRU和Conv-LSTM的運行時間
Fig.10Running time of Conv-GRU and Conv-LSTM under asynchronous number
本文提出一種結合Conv-GRU和Bi-GRU的短時交通流量預測方法,該方法將流量數據映射到一維矩陣中,使用Conv-GRU方法提取交通流的時空特征,并運用Bi-GRU方法得到交通流的周期性特征。實驗結果表明,與現有方法相比,該方法能夠融合交通流的時空特征和周期性特征,并且和Conv-LSTM方法相比,收斂速度更快,能夠適應交通流量迅速變化的特點。然而,本文方法也有很多不足,如沒有考慮天氣、節假日、社交活動、自然災害等特殊情況,如何將上述信息加以利用,形成更加完善的短時交通流量預測方法是下一步需要解決的問題。