高夢琦,昌錫銘,王歡
(北京交通大學(xué)交通運輸學(xué)院,北京 100044)
地鐵以其可靠性和安全性成為人們出行的首要選擇,客流量是地鐵項目設(shè)計與建設(shè)、運營與管理的基礎(chǔ)[1]。由于居民的出行會受到天氣、突發(fā)事件等影響,具有一定的隨機性,中長期預(yù)測已經(jīng)難以反映地鐵客流的實時變化趨勢。因此,需要對地鐵客流量進行短時預(yù)測,使管理部門把握客流的動態(tài)變化規(guī)律,加強對市場的應(yīng)變能力,適時調(diào)整客運服務(wù)計劃,加強對客流的動態(tài)管理。
由于短時客流量具有非線性與波動性,對其的預(yù)測依舊是一個有難度的問題。國內(nèi)外學(xué)者都對短時客流預(yù)測做了大量研究,現(xiàn)有的基于數(shù)據(jù)的短時預(yù)測方法主要分為參數(shù)和非參數(shù)兩大類。參數(shù)方法中,未來交通量和歷史數(shù)據(jù)的函數(shù)關(guān)系是已知的,未知參數(shù)可以從訓(xùn)練集中估計。Li等[2]對交通流量的時間序列數(shù)據(jù)的趨勢與波動進行分解,之后用套索回歸進行預(yù)測。Ding等[3]提出了ARIMA-GARCH模型,考慮地鐵進站量的波動特征對其進行預(yù)測。Ma等[4]提出了一種時空閾值矢量誤差校正模型(TS-TVEC),考慮了路段流量與其上下游的時空關(guān)系。Ma等[5]提出了時間序列模型與卡爾曼濾波的組合模型。但是,這些參數(shù)方法不能反映數(shù)據(jù)的隨機性和復(fù)雜的非線性特性。非參數(shù)方法主要有神經(jīng)網(wǎng)絡(luò)的方法,對模型不會做出很強的假設(shè)。Zhang等[6]將遺傳算法與深度信念網(wǎng)絡(luò)結(jié)合,對高速公路的車流量進行了預(yù)測。Zhao等[7]對公交乘客數(shù)據(jù)進行小波分解并通過BP神經(jīng)網(wǎng)絡(luò)對分解序列進行預(yù)測,重構(gòu)得到預(yù)測結(jié)果。Ouyang等[8]用粒子群算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)對小波分解后的子序列分別進行預(yù)測,將子序列相加得到最終預(yù)測結(jié)果。Li等[9]用多尺度徑向基函數(shù)網(wǎng)絡(luò),對北京有突發(fā)事件的幾個地鐵站的出站量進行了多步預(yù)測研究。這些方法考慮了時間序列的非線性特性,但沒有考慮交通數(shù)據(jù)在時間上的規(guī)律,而交通數(shù)據(jù)在時間上有一定的周期性。Kang等[10]用循環(huán)神經(jīng)網(wǎng)絡(luò)中的長短時記憶網(wǎng)絡(luò)(LSTM)對高速公路的5 min交通流量進行了預(yù)測,考慮了時間序列數(shù)據(jù)在時間上的規(guī)律,但單一的運用LSTM沒有處理短時客流數(shù)據(jù)的波動性。
地鐵的進站量數(shù)據(jù)在時間尺度較小時隨機性與波動性更強,同時具有一定的周期性。本文提出了小波分解與長短時記憶網(wǎng)絡(luò)的組合模型(Wavelet-LSTM),全面考慮了短時進站量數(shù)據(jù)的波動性、非線性特性和時間相關(guān)性,彌補了以往文獻只考慮單一特性的不足。用小波變換處理小時間尺度數(shù)據(jù)的波動性,LSTM在普通神經(jīng)網(wǎng)絡(luò)能處理非線性數(shù)據(jù)特性的基礎(chǔ)上還可以學(xué)習(xí)數(shù)據(jù)的時序信息。通過與其他方法比較可知,此方法可以得到較為精確的預(yù)測結(jié)果,能夠使管理部門及時獲得動態(tài)客流信息,以便適時調(diào)整運營管理計劃,改善地鐵系統(tǒng)的運營管理水平。
地鐵的短時進站量數(shù)據(jù)具有一定的非線性特性,因所取時間段較短,數(shù)據(jù)較多,每個數(shù)據(jù)之間都存在一定差異性,并且短時的客流量數(shù)據(jù)受時間等隨機因素的干擾較大,工作日早晚高峰客流量大且集中,瞬時客流量巨大,因此地鐵短時進站量數(shù)據(jù)有一定波動性。而小波分析能分離趨勢信息和波動信息,具有解決非穩(wěn)定時間序列的能力,其分解后的低頻近似信號可以反映時間序列的趨勢,減少數(shù)據(jù)的波動性,因此常被用來解決時間序列問題。LSTM屬于神經(jīng)網(wǎng)絡(luò)的一種,可以捕捉數(shù)據(jù)復(fù)雜的非線性特性并能考慮時間上的規(guī)律。本文的基于小波分解和LSTM的短時預(yù)測方法(Wavelet-LSTM),對數(shù)據(jù)的性質(zhì)考慮較為全面。因為小波分析主要用來提取趨勢信息、過濾波動信息,分解層數(shù)不需要太多,于是先通過小波分解對小時間尺度上的客流量的時間序列數(shù)據(jù)進行三層分解和單支重構(gòu)得到分解后的四個子序列,以達(dá)到提取特征趨勢并分離噪聲的效果。對小波分解出來的每個子序列分別用能記憶時間特征信息的LSTM進行預(yù)測,最后對預(yù)測得到的子序列進行相加,得到預(yù)測的進站量。預(yù)測模型的結(jié)構(gòu)見圖1。
圖1 小波分解與長短時記憶網(wǎng)絡(luò)的預(yù)測模型Fig.1 The Wavelet-LSTM forecasting model
城市地鐵客流量的時間序列數(shù)據(jù)可看作一個一維信號,對其做小波分解得到分解系數(shù),再通過分解后的小波系數(shù)進行信號的單支重構(gòu),可以將具有早晚高峰趨勢的低頻信號與包含噪聲信息的高頻信號分開,從而能達(dá)到提取特征的目的。
本文中,可把客流量當(dāng)作一維的信號進行小波分解與重構(gòu)。客流量為離散時間序列,因此使用離散小波變換中的快速二進正交小波變換[11](Mallat算法)對其進行分解和單支重構(gòu)。
分解過程可表示為:
Dm=HAm-1,
(1)
Am=GAm-1,
(2)
式中,H和G分別為正交鏡像濾波器組中具有低通特性的濾波器和具有高通特性的濾波器;m為分解次數(shù),A0為原始時間序列。經(jīng)過第一次分解后,可得到包含原始信號主要信息的低頻近似信號A1,以及包含誤差的高頻細(xì)節(jié)信號D1;下一次分解將近似信號A1分解為A2和D2,…,直至得到平滑的低頻信號。經(jīng)過m次分解后可以得到m+1個序列(D1,D2,…,Dm和Am),分解過程如圖2所示。
圖2 小波分解過程Fig.2 The wavelet decomposition process
采用Mallat算法進行小波分解時,每次分解后的時間序列的長度都會減少,較短的時間序列數(shù)據(jù)對接下來的預(yù)測是十分不利的,但可以用重構(gòu)算法對分解后的每個分量進行單支重構(gòu),從而使每個分解序列的長度和原來相同。單支重構(gòu)過程可表示為:
am-1=H*Am+G*Dm,
(3)
式中,H*和G*分別是H和G的對偶算子。通過單支重構(gòu)可以增加序列的長度,對D1,D2,…,Dm和Am分別進行重構(gòu),得到序列d1,d2,…,dm和am,其長度和原始序列相同,并且和原始序列有如下關(guān)系:
A0=d1+d2+…+dm+am。
(4)
本文中采用db4小波對原始數(shù)據(jù)進行分解并重構(gòu),由于小波分析的目的在于提取數(shù)據(jù)的主要變化趨勢,過濾隨機性信息,不需要進行過多的層數(shù)分解從而增加計算量,因此對進站量數(shù)據(jù)進行3層的分解與重構(gòu),將時間序列分為4個子序列(d1,d2,d3和a3),對這些子序列分別利用LSTM進行預(yù)測,再相加得到原始序列,能有效提高預(yù)測精度。
神經(jīng)網(wǎng)絡(luò)適用于非線性預(yù)測,但傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型不具有對歷史信息的記憶功能。神經(jīng)網(wǎng)絡(luò)中的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)可以將先前神經(jīng)元的輸出信息應(yīng)用到當(dāng)前的任務(wù)上,RNN的結(jié)構(gòu)示意圖如圖3所示。
圖3 RNN結(jié)構(gòu)示意圖Fig.3 Schematic of the RNN structure
但普通的RNN存在梯度消失或爆炸的問題[12]。長短時記憶網(wǎng)絡(luò)(LSTM)屬于循環(huán)神經(jīng)網(wǎng)絡(luò)的一種,可以學(xué)習(xí)長期依賴的信息。LSTM將隱藏層的RNN神經(jīng)元替換為LSTM神經(jīng)元,不但具有RNN的記憶功能,而且克服了模型的長期依賴問題,能選擇性地遺忘無效信息并更新記憶有效信息,可以在一定程度上解決梯度彌散的問題。經(jīng)過小波分解與重構(gòu)后的序列依舊為時間序列,可通過LSTM對各序列進行預(yù)測。LSTM神經(jīng)元的結(jié)構(gòu)如圖4所示。
圖4 LSTM神經(jīng)元結(jié)構(gòu)Fig.4 Structure of the LSTM neuron
輸入序列為x=(x1,x2,…,xT),即為時間序列數(shù)據(jù),經(jīng)過LSTM計算后的隱藏層序列為h=(h1,h2,…,hT),輸出序列為y=(y1,y2,…,yT),通過下式迭代:
ht=H(Wxhxt+Whhht-1+bh),
(5)
yt=Whyht+by,
(6)
其中W是權(quán)重系數(shù)矩陣(如Wxh是輸入層到隱藏層的權(quán)重系數(shù)矩陣,Whh為隱藏層之間的權(quán)重系數(shù)矩陣),b為偏置向量(如bh表示隱藏層的偏置向量),為隱藏層的轉(zhuǎn)換函數(shù),由以下一系列函數(shù)實現(xiàn):
it=σ(Wxixt+Whiht-1+Wcict-1+bi),
(7)
ft=σ(Wxfxt+Whfht-1+Wcfct-1+bf),
(8)
ct=ftct-1+itg(Wxcxt+Whcht-1+bc),
(9)
ot=σ(Wxoxt+Whoht-1+Wcoct+bo),
(10)
ht=oth,
(11)
式中,i,f,c,o分別為輸入門、遺忘門、神經(jīng)元狀態(tài)和輸出門的輸出值。這里σ(·)是標(biāo)準(zhǔn)邏輯函數(shù):
(12)
g(·)和h(·)是中心對稱的邏輯函數(shù)。
模型的訓(xùn)練過程即為權(quán)重的迭代更新過程,訓(xùn)練結(jié)果需與真實值相對比。本文LSTM中各個權(quán)重的更新是通過ADAM優(yōu)化算法最小化目標(biāo)函數(shù)et來實現(xiàn)的:
(13)
式中,pt為t時刻的真實值,yt為t時刻的預(yù)測結(jié)果,et即為均方誤差。訓(xùn)練多次直到et最小,即為最終的模型。
本文對小波變換后的每個子序列都分別輸入LSTM進行預(yù)測,之后對每個子序列輸出的預(yù)測結(jié)果進行相加,可得到最終的地鐵站進站量預(yù)測結(jié)果。
對于地鐵站進站量的預(yù)測結(jié)果,本文采用平均絕對百分誤差(δMAPE)、均方根誤差(δRMSE)和希爾不等系數(shù)(CTIC)來檢驗其精度。幾個誤差公式定義如下:
(14)
(15)
(16)
本文選取北京地鐵2號線的西直門地鐵站作為研究對象,對其進站客流量進行預(yù)測。西直門地鐵站作為重要的換乘站點,有3條換乘線路,客流量較大,其進站量的預(yù)測對于站點內(nèi)部的規(guī)劃、緊急事件下的乘客疏散等都有著重要意義。由于工作日和節(jié)假日的客流量規(guī)律相差較大,且工作日的出行為必要出行,所以對于工作日的進站量預(yù)測更加重要。
本文選取2014年3月3日—14日連續(xù)10個工作日7:00—22:00的地鐵刷卡數(shù)據(jù)作為研究樣本,對其進行預(yù)處理。以5 min為時間步長,每天可劃分為180個時間段,分時段來預(yù)測短時進站量。經(jīng)過處理后,3月3日的進站量變化趨勢如圖5所示,呈現(xiàn)出明顯的早晚高峰趨勢,并具有波動性,且在高峰時段波動性較強。
圖5 3月3日進站量Fig.5 Passenger flow on March 3
其他幾個工作日的進站量也與3月3日相似,連續(xù)10個工作日的進站量見圖6,趨勢比較穩(wěn)定。進站量在時間上的特性,表示適合用LSTM處理這種時間序列數(shù)據(jù),因為模型可以記憶時間上的信息。
圖6 連續(xù)10個工作日進站量Fig.6 Passenger flow on ten consecutive working days
對該10 d的時間序列數(shù)據(jù)進行3層的小波分解并單支重構(gòu),得到4個有效的子序列,且每個子序列的長度都和原始序列相同。3月3日的進站量數(shù)據(jù)的重構(gòu)結(jié)果見圖7,4個序列的長度相同,其中a3為最終得到的平滑低頻信號,有前后兩個高峰,反映了進站量的趨勢;其他3個序列反映了其他因素的干擾,波動性較強,且波動最大的地方對應(yīng)于a3兩個高峰的位置。
圖7 3月3日進站量小波分解與重構(gòu)Fig.7 Wavelet decomposition and reconstruction of the passenger flows on March 3
本文選取的循環(huán)神經(jīng)網(wǎng)絡(luò)模型共3層,含有一個輸入層、一個隱藏層和一個輸出層,隱藏層即為LSTM層,層中神經(jīng)元個數(shù)為10個。因為分解后的子序列數(shù)值有正有負(fù),所以輸出層激活函數(shù)選擇tanh函數(shù)。將子序列中預(yù)測時段之前的5個時段的數(shù)據(jù)作為輸入向量,經(jīng)過模型的計算,輸出為預(yù)測時段的進站量重構(gòu)數(shù)據(jù),再對其進行相加,得到最后的預(yù)測結(jié)果。
把前7 d的數(shù)據(jù)作為訓(xùn)練集,后3 d作為測試集。訓(xùn)練過程中,對各個分解序列的訓(xùn)練次數(shù)達(dá)到1000時,均方誤差波動較小,幾乎不會再減小,因此把其定為模型的訓(xùn)練次數(shù)。對LSTM得出的所有分解序列相加,即可得到后3 d的進站量預(yù)測結(jié)果。
另外,本文將提出的模型與LSTM、經(jīng)驗?zāi)B(tài)分解[13](EMD)與LSTM相結(jié)合(EMD-LSTM)這兩個模型的預(yù)測精度進行對比,比較模型的優(yōu)劣。
將西直門地鐵站10個連續(xù)工作日的進站量數(shù)據(jù)經(jīng)過本文的小波分解與LSTM進行預(yù)測后,3天測試集的子序列預(yù)測結(jié)果見圖8。
圖8 子序列預(yù)測結(jié)果Fig.8 Prediction results ofsubsequence
將子序列的預(yù)測結(jié)果進行相加,即可得到進站量的預(yù)測結(jié)果。圖9為Wavelet-LSTM、LSTM、EMD-LSTM的預(yù)測結(jié)果與實際進站量的對比圖。
圖9 預(yù)測結(jié)果Fig.9 Prediction results
對3個模型的預(yù)測結(jié)果和實際進站量進行誤差估計,以評價每個模型與真實值的擬合程度。對比結(jié)果表明本文采用的模型有明顯優(yōu)勢,模型的預(yù)測誤差如表1所示。
表1 不同模型的預(yù)測誤差
由表1可知,Wavelet-LSTM模型的預(yù)測結(jié)果的誤差與另外兩個相比最小,其平均絕對百分誤差、均方根誤差和希爾不等系數(shù)分別為5.48%、18.13和0.03,與另外兩個模型相比均有下降。這表示數(shù)據(jù)的波動性對預(yù)測結(jié)果影響較大,且小波變換更適合處理這一特性,通過小波分解與重構(gòu)分解時間序列數(shù)據(jù)、提取時間序列的特征趨勢之后再進行預(yù)測可以提高預(yù)測精度,比經(jīng)驗?zāi)B(tài)分解更加有效;LSTM的記憶特性在時間序列數(shù)據(jù)上的應(yīng)用較適合,與小波變換結(jié)合后,預(yù)測效果更好。因為本文的主要關(guān)注點在于提高模型的預(yù)測精度,而沒有過多關(guān)注運行效率,所以運行時間約為15 min,效率有待提升。
本文使用了小波分解和LSTM相結(jié)合的方法來進行交通流量的預(yù)測,同時考慮到了短時進站量數(shù)據(jù)的波動性和在時間上的相關(guān)性,有效提高了預(yù)測精度。以北京西直門地鐵站為例,先對每天的進站量數(shù)據(jù)進行小波分解與單支重構(gòu),再對其用LSTM模型進行預(yù)測,得到的序列進行相加,從而得到進站量的預(yù)測結(jié)果。實驗結(jié)果表明,因為小波分解對數(shù)據(jù)有提取趨勢和減少波動性的作用,使時間序列的趨勢更加明顯,LSTM 可以學(xué)習(xí)記憶時間上的信息,適用于在時間上具有相關(guān)性的數(shù)據(jù),從而得到了較好的預(yù)測結(jié)果。該研究為運營管理部門更好地捕捉地鐵客流動態(tài)變化規(guī)律、制定短時運營策略、管理車站動態(tài)客流提供了數(shù)據(jù)基礎(chǔ),還能為乘客及時提供動態(tài)客流信息,促進城市交通合理規(guī)劃。本文的不足之處在于算法效率有待提升,并且沒有考慮天氣、季節(jié)等因素對進站量的影響,未來可以結(jié)合其他因素進行研究并改進算法效率。