曹博,高茂庭
(上海海事大學信息工程學院,上海 201306)
交通流預測主要是對交通量的相關參數進行預測。交通量也叫做交通流量,是指在指定時間段內,通過道路某一地點、某一斷面或某一車道的交通實體數[1]。在智能交通系統(Intelligent Transportation Systems,ITS)領域[2],交通控制與誘導系統是ITS研究的熱門核心課題,而實現交通誘導的關鍵是實時準確地預測交通流。即利用現有道路的實時和歷史交通流數據,通過建立適合的模型對下一個時段的交通流進行預測。交通流預測分為短期預測、中期預測和長期預測,分別服務于不同的研究領域。而短時交通流預測能預測未來較短時間內交通流狀態(tài)信息,可滿足城市交通控制系統對實時性及準確性的要求,從而得出正確的控制策略,緩解交通堵塞,減少機動車廢氣排放,降低交通事故發(fā)生率。
在短時交通流預測研究中,有兩類不同的數據驅動預測方法被頻繁使用:一類是基于傳統統計理論的方法,另一類是基于神經網絡的方法[3]。基于統計的方法主要有卡爾曼濾波模型[4]、時間序列模型[5]、貝葉斯網絡[6]和馬爾可夫鏈[7]。它們假設未來預測的數據與過去的數據有相同的特性。,其方法理論簡單、容易理解。但是,基于統計的方法大部分是基于線性的,而交通流變化具有隨機性和非線性的特點,這使得模型的性能變差。隨著深度學習在語音、圖像和自然語言處理等研究領域的廣泛應用,基于神經網絡的方法在交通大數據挖掘方面體現出越來越強大的應用價值。Huang等人(2014)[8]和 Lv等人(2015)[9]分別使用了深度信念網絡(Deep Belief Networks,DBN)和堆棧式自編碼器(Stacked Auto-Encoder,SAE)來預測短時交通流。但是,以上方法都需要預定義歷史輸入數據的長度,不能自動決定最優(yōu)的時間間隔,而且由于全連接神經網絡里的每一個神經元都與它上一層的神經元連接,其計算代價高昂。
為了獲得更高的短時交通流預測精度,本文提出一種叫做LSTM的短時交通流預測模型。LSTM不僅能更有效地處理交通流的非線性和隨機性,而且在解決時間序列預測的長時間依賴問題中展示了優(yōu)越的能力。LSTM能“記住”距當前時間點較遠的歷史信息,而且能自動決定時間序列數據的最優(yōu)時間間隔。實驗結果表明,LSTM模型在短時交通流預測中取得了更高的精確度。
在眾多短時交通流預測方法中,神經網絡因其處理高維數據的優(yōu)勢,靈活的模型結構,強大的學習和泛化能力受到越來越多的關注。一般,神經網絡可分為兩種類型,分別為前饋神經網絡(Feed Forward Neural Network,FFNN)和循環(huán)神經網絡(Recurrent Neural Net?work,RNN)。兩者都能應用到短時交通流預測中,其精確度主要受到交通流時間序列數據的歷史輸入的長度的影響。對于傳統的FFNN來說,其沒有時間序列觀念,不能記憶早期歷史輸入信息,也不能決定輸入的最優(yōu)時間跨度。當把FFNN應用到短時交通流預測上時,需要手動確定輸入的時間長度。而RNN是時間序列建模的有力工具之一。RNN之所以稱為循環(huán)神經網絡,是因為一個序列當前的輸出與前面的輸出也有關聯,具體表現形式為網絡會對前面的信息進行記憶并應用于當前輸出的計算中,即隱藏層之間的節(jié)點不再無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出,還包括上一時刻隱藏層的輸出[10]。RNN構建的網絡會對歷史時間點的信息進行記憶,并將記憶留下的信息應用到當前神經元的輸出計算中。
對于短時交通流數據而言,同一路段的車流量在時間關系上并不是完全無關的。交通流量有復雜的歷史依賴性,此刻的交通流狀態(tài)與上一時刻的歷史交通流狀態(tài)有一定程度的關聯,且可能導致下一時刻的交通流狀態(tài)產生變化。因交通流時間序列呈現的這個特點,采用循環(huán)神經網絡則是非常合適的選擇。RNNs采用BPTT算法[11]作為訓練算法,對于一般的RNN結構而言,其循環(huán)結構的特點容易造成梯度消失或梯度爆炸[12],從而使RNN喪失學習連接較遠信息的能力。為了解決這個問題,Hochreiter和Schmidhuber提出了LSTM網絡結構[13]。
LSTM RNN被認為是一種特殊形式的RNN,其結構由一個輸入層、數個隱藏層和一個輸出層組成。LSTM的關鍵在于記憶單元(memory cell),它能克服傳統RNNs面臨的梯度消失或梯度爆炸問題。如圖1所示,LSTM主要包含三個門:一個輸入門(input gate),一個遺忘門(forget gate),一個輸出門(output gate),這三個門在激活函數的作用下,會產生0到1之間的數,用于把控門的開關。輸入門決定了輸入層信息如何傳遞到隱藏層的記憶模塊;遺忘門決定了如何對當前時刻該記憶模塊的歷史信息進行保留;輸出門決定了記憶模塊的信息如何傳遞出去。鑒于交通流狀態(tài)具有隨著時間動態(tài)變化的特點,結合LSTMs在處理長期依賴方面的優(yōu)勢,可用LSTMs提取交通流里的時間模式信息。
圖1 LSTM NN結構圖
交通流歷史輸入序列可表示為X=(X1,X2…,XT)。對于q時刻,各站點的交通流則表示為其中,l1,…,ln代表一條高速公路上的n個站點。代表第n個站點在時刻q的交通流。本文中,交通流預測的目標就是根據[1,T]時間段內的歷史流量信息來預測T+a時刻各站點的交通流,a為某個常數。X被作為LSTMs的輸入,LSTMs的輸出則表示為H=(H1,H2,…,HT),σ(?)是sigmoid函數,σh(?)是tanh函數。交通流的時間特征通過式(1)-式(6)迭代計算得出:
式(5)、式(6)中,“°”代表向量之間的 Hadamard product。得到LSTMs的輸出后,下一步是預測未來時刻的交通狀態(tài)。HT被作為一個全連接層的輸入。交通流的預測值可用式(7)計算,W2和b2分別代表LST?Ms的輸出層和全連接層之間的權重和偏置,YT+a就是整個模型的輸出,也即預測值。全連接層的目標函數是預測值和實際值之間均方誤差的和。實驗對整個模型進行端到端的訓練。
式(7)中,YT+a代表T+a時刻的交通流預測值,a是一個常數,代表時刻T之后的某個時間點。
本文數據集來自美國加利福利亞州交通管理局的Caltrans Performance Measurement System(PeMS)。路段Route 16664:101S Downtown SF to Millbrae的交通流數據將被用來進行試驗。該路段沿途共33個觀測站點,起止日期從01/01/2017到07/15/2017。交通流數據每隔30秒采集一次,最后聚合成時間間隔為5分鐘的聚合數據。根據先前的研究結果[14],5分鐘的交通流數據更適合用來預測未來時刻的交通流,因為缺失數據只占整個數據集的一小部分。
對于缺失數據,本文采用相鄰數據平均法來填補數據集中的缺失值,即以缺失數據的相鄰數據的算術平均數代替。根據實際情況,交通流數據的最小值必定是0,而不可能是負數。觀察歷史數據,最大值不超過900。也就是說,正常情況下的短時交通流數據處于最小值和最大值之間,偏離這個區(qū)間的數據被稱為非常規(guī)數據。對于非常規(guī)數據,可把它視作缺失值,仍然采用相鄰數據平均法處理。
交通流數據隨時間變化的幅度較大,某些時段比如凌晨的車流量為0,而某些時段比如早晨和傍晚的車流量能達到幾百。為了消除數據大小差異給預測精度帶來的影響,一般用歸一化的方法對數據進行變換。本文用min-max標準化的方法對原始數據進行線性變換。經過歸一化處理后,數據序列的相對大小并未改變,整體變化趨勢也保持一致。應用歸一化后的數據進行交通流預測,得到結果后采用反歸一化再對預測值進行還原,最后得到最初量級的交通流數據。
本文數據被分為兩個子集:前5個月的數據作為訓練集,其他的數據作為測試集。
本文設置歷史交通流信息的時間長度為8,預測范圍為5分鐘,即式(7)中T的大小為8,a為1。所以,本文的預測目標是根據前40分鐘的歷史交通流信息預測接下來5分鐘內的車流量。
設置LSTM網絡結構為1個輸入層、2個隱藏層、1個輸出層。在此基礎上進行其他超參數的選擇。隱藏層中,設置H=(H1,H2,…,HT)在第一個LSTM層中每個時間點的特征維度為64,而在第二個LSTM層中其每個時間點的特征維度為512。具體的模型參數如表1所示。
表1 LSTM模型參數
LSTM的訓練基于RMSprop優(yōu)化器[15],因其在RNN模型的訓練中表現良好[16]。tanh作為激活函數被用在狀態(tài)和輸出上,目標函數為均方誤差(MSE)。批處理數量(Batch Size)設置為64,迭代次數設置為20。Dropout層和早停法(Early Stopping)被用來防止過擬合。Dropout是深度學習模型中的正則化方法,它的原理是在訓練過程中隨機丟掉某些神經元,減少神經元之間的協同作用,提高模型的泛化能力。本文設置Dropout丟失率為50%。LSTM模型使用Keras深度學習框架構建,callback參數被用來實時保存模型結構、訓練出來的權重及優(yōu)化器狀態(tài)。實驗隨機選取10%的訓練數據作為驗證集。
實驗中,選擇SAEs[9]模型與LSTM模型作比較,并且兩種模型都分別選取表現最好的一組。平均絕對誤差(Mean Absolute Error,MAE)能很好地反映預測值誤差的實際情況,均方根誤差(Root Mean Squared Error,RMSE)可以評價數據與預測模型適應性,故實驗采用MAE和RMSE比較交通流預測模型的性能:
式(8)、式(9)中,Zst表示s站點在第t個時間間隔內的交通流的預測值,Nst代表相應的實際交通流,np是預測值的個數。LSTMs,SAEs模型的預測結果與真實值的比較分別如圖2、3所示。
圖2 LSTMs交通流預測結果
圖3 SAEs交通流預測結果
從測試集中隨機選取日期07/06/2017,并選擇第17個站點在這一天中所有交通流數據從而得到圖2、3的結果。從圖2、3中可看出,LSTMs和SAEs模型都能正確反映交通流變化的大體趨勢。兩種模型在交通流處于低峰期時與真實情況吻合得較好,但在交通流高峰期時,兩者與真實值相比都有一定差距。LSTMs與SAEs預測結果的比較如圖4所示。
圖4 LSTMs和SAEs預測結果比較
圖 4 給出了 LSTMs、SAEs在 10:00 到 14:00 時間段內預測值與真實值的比較。從圖4可看出,LSTMs和SAEs與真實值之間都有一定間隔,而兩者預測值之間的間隔不大,說明LSTMs和SAEs的預測精度比較接近,在交通流高峰期11:00到12:00時間段內,LSTMs的表現比SAEs稍好。為了更準確反映LSTMs和SAEs預測結果的差異程度,表2給出了兩種模型的結果比較。
表2 兩種模型的MAE和RMSE
從表2可看出,LSTMs的MAE為27.38,RMSE為39.15,而 SAEs的 MAE 為 27.99,RMSE 為 39.37,LST?Ms比 SAEs表現稍好。說明LSTMs和SAEs這種state-of-the-art方法一樣,在短時交通流預測方面有不錯的表現。而LSTMs模型處理時序數據時在一定程度上優(yōu)于SAEs。
本文提出了一種基于LSTM的短時交通流預測模型。LSTM模型考慮了交通流數據的時序特點,能記住輸入數據的長期歷史信息,并自動決定輸入的最優(yōu)的時間間隔,在短時交通流預測方面表現出了不錯的預測能力。與SAEs在同一個數據集上進行的對比實驗表明,LSTM取得了更好的預測效果。這表明LSTM模型在交通流預測應用的有效性。
但LSTM模型還有很多需要完善的地方。短時交通流數據蘊含時間特征,也包含空間特征。在空間層面,一條高速公路上的某個觀測站點的交通流不僅受到其上下游交通流狀況的影響,還受到相鄰高速公路的交通流狀況的影響。在短時交通流預測中,不能忽視交通流的空間依賴。另外,天氣、交通事故、交通管制等因素也對短時交通流有重要影響。在未來的研究中,將進一步考慮這些因素,從而更準確地預測短時交通流。