劉政澤
(山東科技大學(xué)交通學(xué)院,山東 青島 266400)
智慧公交是我國城市化高速發(fā)展的重要內(nèi)容之一,公交到站時間是乘客較為關(guān)心的問題,準(zhǔn)確的公交到站時間能夠為出行者的時間安排提供依據(jù)。對此,國內(nèi)外的相關(guān)學(xué)者進(jìn)行了大量研究。
歷史數(shù)據(jù)法在歷史到站時間數(shù)據(jù)的基礎(chǔ)上,結(jié)合路段信息如站點、路段、站間距離等信息,對車輛未來到站時間進(jìn)行預(yù)測。XU等[1]建立路徑剖面圖,在歷史數(shù)據(jù)基礎(chǔ)上加入聚類算法計算站點間的時變分布。PANG等[2]利用多時間步長依賴關(guān)系,建立LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測公交到站時間。LIU等[3]提出了一種基于時空特征向量的LSTM+ANN的綜合預(yù)測模型,模型可以根據(jù)預(yù)測距離長短自動調(diào)整。Han[4]將預(yù)測過程分為CDS、DT、STS三部分并分別求得加權(quán)因子來計算公交行駛時間。以上方法在交通條件不變的情況下,預(yù)測效果較好,但當(dāng)交通狀況較為復(fù)雜時,基于歷史數(shù)據(jù)的預(yù)測方法預(yù)測精度會降低,其實時性和抗干擾能力較差。因此在此基礎(chǔ)上,許多學(xué)者利用實時數(shù)據(jù)與上述方法的預(yù)測結(jié)果相結(jié)合,根據(jù)公交車行駛狀態(tài)的實時變化,對預(yù)測值做出調(diào)整。AVINASH等[5]為捕獲數(shù)據(jù)中的線性非平穩(wěn)空間相關(guān)性,使用線性卡爾曼濾波器進(jìn)行預(yù)測,并分別進(jìn)行單步和多步預(yù)測測試。于濱等[6]在支持向量機(jī)的基礎(chǔ)上,結(jié)合Kalman濾波,減小了車輛行駛過程中外界因素對預(yù)測結(jié)果的影響。范光鵬等[7]將公交行駛時間看作短期沒有規(guī)律的時間序列問題,提出了一種將LSTM與Kalman濾波相結(jié)合的預(yù)測模型。CHUNG等[8]比較了不同類型的遞歸單元,在對序列模型進(jìn)行建模時,GRU和LSTM的表現(xiàn)更好。
GRU神經(jīng)網(wǎng)絡(luò)模型是RNN循環(huán)神經(jīng)網(wǎng)絡(luò)的優(yōu)化模型,其在LSTM的基礎(chǔ)上,對門單元進(jìn)行精簡,將原有的輸入門、遺忘門和輸出門簡化為重置門和更新門,減少了神經(jīng)網(wǎng)絡(luò)單元參數(shù),能夠在訓(xùn)練時降低運算量,保證預(yù)測準(zhǔn)確率的同時提高運算效率。卡爾曼濾波(Kalman Filtering)可以利用在車輛行駛過程中獲得的實時數(shù)據(jù),對到站基礎(chǔ)時間序列進(jìn)行更新,減小車輛行駛過程中突發(fā)影響因素對車輛到站時間預(yù)測準(zhǔn)確率造成的影響。本文通過分析公交行駛過程以及影響公交行駛時間的多種因素,結(jié)合GRU神經(jīng)網(wǎng)絡(luò)和Kalman濾波,對公交到站時間進(jìn)行預(yù)測,并以山東省青島市西海岸新區(qū)60路公交車(以下簡稱60路)運行情況為例,給出其實際應(yīng)用過程。
公交車到達(dá)站n點的時間為Tn,從站點n到下一站點n+1的時間為Tn+1,那么公交車到達(dá)站點的時間由式(1)表示。
當(dāng)已知公交車的發(fā)車時間,即可通過預(yù)測公交車在各個站點之間的行駛時間,得到公交車到達(dá)各個站點的時間。
文章將根據(jù)公交車輛歷史數(shù)據(jù)結(jié)合實時信息,對相鄰站點間的公交行駛時間進(jìn)行預(yù)測。通過分析多條趟次數(shù)據(jù),發(fā)現(xiàn)公交車輛的總行駛時間是有規(guī)律的,但在不同的站點之間,其變化規(guī)律又各不相同,會受到站點、站間距離、是否為工作日、時段和天氣等因素的影響,同時在行駛過程中遇到的突發(fā)事件,也會對預(yù)測準(zhǔn)確率造成影響。
此次研究將預(yù)測過程分為兩個階段,首先利用車輛的歷史數(shù)據(jù)對公交車的行駛時間進(jìn)行預(yù)測,然后在此基礎(chǔ)上,利用公交車到站時獲得的實時數(shù)據(jù)進(jìn)行更正,以此提高預(yù)測的準(zhǔn)確性。
在第一階段,利用歷史數(shù)據(jù)對模型進(jìn)行訓(xùn)練并預(yù)測,影響因素包括站點序號、車輛編號、天氣、是否為工作日、時段和站間距離等。設(shè)表示公交車到達(dá)各個站點的多維數(shù)據(jù)變量。其中,k表示第k趟次,n表示第n個站點,T表示歷史數(shù)據(jù)中各個站點之間的實際行駛時間,S表示站點序號,P表示運行時段,W表示天氣情況,Q表示是否為工作日,D表示該站與下一站之間的距離,那么k+1第趟次車輛在行駛到每個站點時所經(jīng)歷的時間可由式(2)計算得到。
在公交車輛實際行駛過程中,車輛受到多種因素影響,會導(dǎo)致預(yù)測時間產(chǎn)生偏差,需要在已有時間序列的基礎(chǔ)上,根據(jù)實時信息進(jìn)行更正,由式(3)表示:
利用GRU門控循環(huán)單元訓(xùn)練歷史數(shù)據(jù),得到基礎(chǔ)預(yù)測模型,通過結(jié)合多源數(shù)據(jù),對公交車輛的到站時間進(jìn)行基礎(chǔ)時間序列預(yù)測。GRU作為RNN的變種神經(jīng)網(wǎng)絡(luò),與LSTM長短時記憶神經(jīng)網(wǎng)絡(luò)一樣,能夠解決RNN中反向傳播時的梯度消失和梯度爆炸問題。相對于LSTM,GRU內(nèi)部結(jié)構(gòu)較為簡單,只有兩個門單元,如圖1所示。更新門將上一時刻輸入GRU單元的信息帶入到當(dāng)前時刻,控制上一時刻信息進(jìn)入當(dāng)前GRU單元的數(shù)量,更新門數(shù)值越大,進(jìn)入當(dāng)前狀態(tài)的信息就越多;重置門與LSTM中遺忘門的設(shè)定相似,控制之前信息的遺忘數(shù)量,判斷多少信息將通過到下一候選集上,重置門的值越小,說明被遺忘的信息越多。
圖1 GRU單元結(jié)構(gòu)
GRU網(wǎng)絡(luò)的前向傳播公式如下式所示。
式中:Kn為卡爾曼增益系數(shù),須使得均方差Pn為Φ最小。
綜上,可以得到公交車輛行駛時間預(yù)測的Kalman濾波遞推方程:
使用組合模型的預(yù)測過程如圖2所示,主要包括兩個階段,第一階段為基于GRU的基礎(chǔ)時間序列預(yù)測,首先對原始數(shù)據(jù)進(jìn)行預(yù)處理,數(shù)據(jù)處理好后將歷史數(shù)據(jù)輸入到GRU模型中進(jìn)行訓(xùn)練。訓(xùn)練好后,將需要預(yù)測的數(shù)據(jù)變量輸入到模型中進(jìn)行預(yù)測,得到站點之間的基礎(chǔ)行駛時間,但由于基于歷史數(shù)據(jù)的預(yù)測模型未考慮到車輛在行駛過程中遇到的其他因素,因此需要通過第二階段進(jìn)行實時調(diào)整。第二階段在第一階段預(yù)測的行駛時間基礎(chǔ)上,加入Kalman濾波對其進(jìn)行實時調(diào)整,從而保證到站時間預(yù)測的實時性和準(zhǔn)確性。
圖2 公交車站間行駛時間預(yù)測
首先將Φn、Bn和Hn等初始系統(tǒng)狀態(tài)參數(shù)輸入到模型中,基于本文研究問題,設(shè)定Φn、Bn和Hn為單位矩陣,wn、vn設(shè)定為相互獨立、期望為0的獨立白噪聲。車輛在首站出發(fā)時,設(shè)置初始時間為,通過GRU神經(jīng)網(wǎng)絡(luò)得到了車輛運行時間的基礎(chǔ)時間序列,因此車輛到達(dá)第2站的先驗時間。當(dāng)?shù)竭_(dá)第2站時,通過車輛的GPS系統(tǒng),獲得車輛到達(dá)該站點的實際觀測時間。再根據(jù)Kalman濾波遞推公式,得到該站點的卡爾曼增益系數(shù)K2,對后續(xù)到站時間進(jìn)行修正更新,以此遞推,能夠在行駛過程中不斷更新到站時間,減少車輛在行駛過程中產(chǎn)生的累計誤差。
實例驗證時采用的評價指標(biāo)選擇了均方差(RMSE)和平均絕對誤差(MAPE)兩個評價指標(biāo)。通過分析不同站點實際到站時間和預(yù)測到站時間的均方差和平均絕對誤差來對預(yù)測的準(zhǔn)確性進(jìn)行評價,同時與其他預(yù)測模型進(jìn)行對比。計算公式如下:
為了驗證上述模型的有效性,利用青島西海岸新區(qū)60路公交車2019年10月1日—2019年10月31日的數(shù)據(jù)對模型的有效性進(jìn)行驗證,其中10月1日—10月19日的數(shù)據(jù)作為訓(xùn)練集,10月20日—10月26日的數(shù)據(jù)作為驗證集,10月27日—10月31日的數(shù)據(jù)作為測試集。60路下行方向由安子公交樞紐站到星光島首末站,全長18.7 km,共經(jīng)過32個車站,由于原始數(shù)據(jù)存在重復(fù)、缺失等問題,需要對其進(jìn)行補(bǔ)齊,替換站點序號,同時通過天氣網(wǎng)站的歷史信息對天氣部分進(jìn)行補(bǔ)齊,晴天、多云、陰天等標(biāo)記為1,雨天、霧天等不良天氣標(biāo)記為2,相鄰站點之間距離利用青島真情巴士公司提供的站點信息進(jìn)行匹配。根據(jù)公交車的早晚運行時間,將早5點到晚22點共17個小時按照每小時一個時段進(jìn)行劃分。
本文模型預(yù)測的站間行駛時間與實際行駛時間的對比如圖3所示,可以看出,所提出的GRU神經(jīng)網(wǎng)絡(luò)預(yù)測模型的預(yù)測效果較好。
圖3 預(yù)測時間與實際時間對比
通過公式(13)和公式(14)定義的RMSE、MAPE評價指標(biāo)來對公交到站預(yù)測時間的準(zhǔn)確度進(jìn)行評價,結(jié)果如表1所示,可以看出,在預(yù)測公交車到站時間上,GRU模型平均絕對誤差最小,SVM模型和LSTM模型相對于GRU模型表現(xiàn)不佳。
表1 不同模型的評價指標(biāo)對比
GRU本身的單元結(jié)構(gòu)相對于LSTM要簡單,在實際訓(xùn)練過程中,其訓(xùn)練參數(shù)相對于LSTM更少,所以預(yù)測效率要高于LSTM。兩種模型在訓(xùn)練同一組數(shù)據(jù)時的損失函數(shù)下降圖如圖4所示,可以看到GRU相對于LSTM在訓(xùn)練和驗證時的損失函數(shù)收斂更快,損失值更小。
圖4 GRU模型與LSTM模型損失值對比曲線圖
單純的GRU模型對預(yù)測效果還不夠理想,因此加入Kalman濾波對預(yù)測結(jié)果進(jìn)行實時調(diào)整,調(diào)整結(jié)果如圖5所示,可以看出調(diào)整后的行駛時間與實際行駛時間幾乎重合,誤差更小。
圖5 Kalman濾波調(diào)整前后的行駛時間
調(diào)整后的評價指標(biāo)對比如表2所示,可以看出,在結(jié)合卡爾曼濾波后,三類模型的平均絕對誤差值和均方差值都顯著降低。
表2 Kalman濾波調(diào)整后的評價指標(biāo)
不同模型在各個站點的RMSE、MAPE分別如圖6和圖7所示??梢钥闯?,在加入Kalman濾波進(jìn)行實時調(diào)整后,各個站點的預(yù)測時間RMSE、MAPE都顯著降低。SVM模型在各個站點的預(yù)測均方誤差都遠(yuǎn)遠(yuǎn)大于LSTM和GRU,相比之下,LSTM和GRU的均方誤差相差不大,但GRU還是要略低于LSTM,說明三種模型中,GRU的預(yù)測效率要優(yōu)于SVM和LSTM。
圖6 Kalman濾波調(diào)整后各個站點的RMSE
圖7 Kalman濾波調(diào)整后各個站點的MAPE
文章分析了公交到站過程及影響公交到站時間的因素,利用青島市西海岸新區(qū)60路公交車的歷史行駛數(shù)據(jù),提出了一種公交到站時間預(yù)測方法。首先,將多維數(shù)據(jù)進(jìn)行融合,生成歷史時間數(shù)據(jù)序列,建立GRU雙層神經(jīng)網(wǎng)絡(luò)模型,預(yù)測公交車在各個站點之間的行駛時間。然后,在此基礎(chǔ)上,通過Kalman濾波結(jié)合GPS信息,對預(yù)測結(jié)果進(jìn)行實時調(diào)整,以此來提高預(yù)測的準(zhǔn)確率。結(jié)果表明,GRU神經(jīng)網(wǎng)絡(luò)可以有效處理時間序列問題,避免梯度消失和梯度爆炸。在預(yù)測效率方面,與同樣能夠處理時間序列問題的LSTM模型相比,GRU模型效率更高。在預(yù)測誤差方面,文中構(gòu)建的GRU和Kalman濾波組合模型預(yù)測結(jié)果誤差更小??梢詫⒉煌瑫r段不同地區(qū)的道路擁擠程度通過量化表示,在預(yù)測時將其列入影響因素范圍內(nèi),從而進(jìn)一步提高預(yù)測的準(zhǔn)確率。