張紅斌,李 軍,陳亞茹
(1.中國鐵道科學(xué)研究院集團(tuán)有限公司 電子計(jì)算技術(shù)研究所,北京 100081;2.中國國家鐵路集團(tuán)有限公司 調(diào)度指揮中心,北京 100844)
安全、正點(diǎn)是我國鐵路的重要目標(biāo),而客運(yùn)列車在運(yùn)行過程中會受到外部環(huán)境、固定設(shè)備和移動設(shè)施故障、人為操作失誤等多種因素影響,出現(xiàn)晚點(diǎn)的情況??焖佟?zhǔn)確地掌握列車的運(yùn)行狀態(tài)及未來的運(yùn)行趨勢,不僅能為鐵路運(yùn)輸調(diào)度高效指揮提供保障,且有利于客運(yùn)部門及時有效地組織車站中轉(zhuǎn)客流,更能方便旅客提前規(guī)劃行程,減少大面積晚點(diǎn)導(dǎo)致的乘客滯留問題,因此研究列車晚點(diǎn)傳播規(guī)律意義重大。
現(xiàn)階段,國內(nèi)外關(guān)于客運(yùn)列車晚點(diǎn)規(guī)律的研究方法可分為傳統(tǒng)模型法和數(shù)據(jù)驅(qū)動模型法。傳統(tǒng)模型法主要是通過事件圖、活動圖等傳統(tǒng)理論模型研究列車晚點(diǎn)規(guī)律[1-3]。數(shù)據(jù)驅(qū)動模型法包含列車初始晚點(diǎn)分布研究[4-5]和晚點(diǎn)傳播規(guī)律研究,前者是通過建立高速鐵路初始晚點(diǎn)不同致因?qū)α熊嚁?shù)量影響的分布模型;后者主要利用機(jī)器學(xué)習(xí)、隨機(jī)森林和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,Recurrent Neural Network)等方法進(jìn)行研究[6-9]。這些方法多針對單個車站而無法對所有站點(diǎn)進(jìn)行預(yù)測,且由于沒有過濾大量的弱晚點(diǎn)數(shù)據(jù),干擾了模型的準(zhǔn)確率,不利于實(shí)際生產(chǎn)的應(yīng)用。本文在前人研究的基礎(chǔ)上,以2020 年北京—上海高速鐵路(簡稱:京滬高鐵)列車運(yùn)行晚點(diǎn)預(yù)測為例,采用RNN 全段預(yù)測法并過濾了冗余數(shù)據(jù),驗(yàn)證了算法的有效性。
京滬高鐵由北京南站至上海虹橋站,全長1 318 km,設(shè)24 個車站,設(shè)計(jì)的最高速度為380 km/h。通過分析2020 年京滬高鐵行車數(shù)據(jù),共篩選出655 559 條初始晚點(diǎn)數(shù)據(jù),其中,初始晚點(diǎn)在1~4 min 范圍內(nèi)的共有642 851 條,占比98.1%;大于4 min 的有12 708 條。鐵路部門將1~4 min 范圍內(nèi)的晚點(diǎn)視為列車運(yùn)行的正常波動,因此本文將研究的重點(diǎn)定位到大于4 min 的列車運(yùn)行初始晚點(diǎn)。
圖1 統(tǒng)計(jì)了2020 年的京滬高鐵列車運(yùn)行在發(fā)生晚點(diǎn)的情況下,在不同的停站時長下,晚點(diǎn)的吸收、增加和平移的概率。從圖1 可以看出,隨著停站時間的增加,晚點(diǎn)吸收的比率在上升,平移和增加的概率在減少,因此停站時間越大,越容易吸收晚點(diǎn)。
圖1 不同停站時長晚點(diǎn)吸收規(guī)律
將列車運(yùn)行初始晚點(diǎn)時間按照1~4 min、5~10 min、11~30 min 分為3 類,分別統(tǒng)計(jì)每種類別初始晚點(diǎn)的傳播長度,如圖2 所示??梢钥闯?,在初始晚點(diǎn)為1~4 min 時,晚點(diǎn)傳播車站數(shù)量為2~3 個;初始晚點(diǎn)為5~10 min 時,傳播車站數(shù)量主要范圍在3~9 個;對于較大的初始晚點(diǎn),傳播車站數(shù)量主要范圍在6~15 個。由此得出,隨著初始晚點(diǎn)時間的增加,晚點(diǎn)傳播的車站數(shù)量也在增加。
圖2 不同初始晚點(diǎn)傳播車站數(shù)箱線圖
RNN 是在普通多層反向傳播神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上,增加了隱藏層各單元間的橫向聯(lián)系,通過一個權(quán)重矩陣,可實(shí)現(xiàn)將上一個時間序列神經(jīng)單元的值傳遞至當(dāng)前的神經(jīng)單元,從而使神經(jīng)網(wǎng)絡(luò)具備了記憶功能,對于處理有上下文聯(lián)系的自然語言問題或有關(guān)時間序列的機(jī)器學(xué)習(xí)問題有較好的應(yīng)用性。
全段預(yù)測中的“全段”指的是列車晚點(diǎn)傳播的范圍,這個范圍指的是從列車發(fā)生初始晚點(diǎn)的車站至晚點(diǎn)消失車站或終到站。因此,全段預(yù)測是指對于列車晚點(diǎn)傳播范圍與傳播強(qiáng)度的預(yù)測。
2.1.1 多對多模式的RNN 模型
RNN 模型的多對多模式可分為間隔多對多和同步多對多2 種模式,如圖3 所示,水平箭頭方向?yàn)榱熊囆熊嚪较颍本┠险緸榱熊囘\(yùn)行初始晚點(diǎn)發(fā)生站,后續(xù)各站為晚點(diǎn)吸收/擴(kuò)散站,晚點(diǎn)項(xiàng)為到發(fā)晚點(diǎn)時間。本文在初始晚點(diǎn)段預(yù)測場景中,輸入的數(shù)據(jù)是初始晚點(diǎn)段所有站點(diǎn)的特征信息,要求輸出的數(shù)據(jù)是所有站點(diǎn)的正晚點(diǎn)情況,其天然的序列性符合RNN 模型的間隔多對多和同步多對多2 種模式。但間隔多對多模式下,模型無法利用列車將要運(yùn)行站點(diǎn)的特征,因此,本次建模選取具有同步多對多模式的RNN 模型作為基礎(chǔ)模型結(jié)構(gòu)。
圖3 多對多模式對比
在同步多對多RNN 模型中,所有站點(diǎn)對應(yīng)的Y值都是下一站的晚點(diǎn)項(xiàng)。實(shí)際應(yīng)用中,發(fā)生初始晚點(diǎn)后的晚點(diǎn)恢復(fù)情況是未知的、需要預(yù)測的,因此,建立模型特征序列時,除初始晚點(diǎn)發(fā)生站外,其他所有站點(diǎn)的晚點(diǎn)項(xiàng)需置0 后作為特征項(xiàng)進(jìn)入模型。
2.1.2 LSTM-RNN 模型
利用RNN 模型處理時間序列數(shù)據(jù)具有先天優(yōu)勢,但在長序列的訓(xùn)練模式下仍存在梯度消失問題。本文選取的2020 年京滬線高鐵列車運(yùn)行初始晚點(diǎn)段預(yù)測場景中,序列平均長度為8 個車站,最長可達(dá)22個車站。若直接使用傳統(tǒng)RNN 模型會導(dǎo)致梯度消失嚴(yán)重且模型參數(shù)更新緩慢,因此本文引入RNN 的變體結(jié)構(gòu)長短期記憶網(wǎng)絡(luò)(LSTM,Long Short-Term Memory)來促使模型更好地學(xué)習(xí)長期特征。
LSTM 作為一種循環(huán)神經(jīng)網(wǎng)絡(luò)的變形結(jié)構(gòu),是在普通 RNN 基礎(chǔ)上,隱藏層各神經(jīng)單元中增加記憶單元,從而使時間序列上的記憶信息可控,每次在隱藏層各單元間傳遞時通過“門”來控制丟棄/增加信息,從而實(shí)現(xiàn)遺忘或記憶的功能。
為方便描述,下文將多對多模式下的LSTMRNN 模型統(tǒng)稱為RNN 模型。
本文采用平均絕對誤差損失(MAE,Mean Absolute Error)作為評價(jià)函數(shù)。其計(jì)算公式為
其中,y表示實(shí)際值;表示預(yù)測值。實(shí)際值與預(yù)測值之間的誤差越小,說明模型的預(yù)測效果越好。
本文選取 SmoothL1算法作為模型的損失函數(shù)(Loss Function),公式如下
其中,x表示模型的預(yù)測值y? 與實(shí)際值y之間的差距。該算法下的梯度穩(wěn)定,不易產(chǎn)生梯度爆炸問題。
使用Adam 優(yōu)化器,其本質(zhì)是通過一階矩估計(jì)的動量項(xiàng)和二階矩估計(jì)的自適應(yīng)項(xiàng)對梯度和各參數(shù)的學(xué)習(xí)率進(jìn)行動態(tài)調(diào)整。該優(yōu)化器的優(yōu)點(diǎn)在于,在偏移校正之后,確定每個迭代學(xué)習(xí)速率在固定范圍內(nèi),可減少迭代過程的震蕩,從而平滑地改變神經(jīng)網(wǎng)絡(luò)參數(shù)。
列車運(yùn)行初始晚點(diǎn)段預(yù)測模型建立步驟如下。
(1)確立目標(biāo)數(shù)據(jù)集:本次實(shí)驗(yàn)選取了2020年全年京滬高鐵列車運(yùn)行數(shù)據(jù)作為目標(biāo)數(shù)據(jù)集數(shù)據(jù)。
(2)數(shù)據(jù)清洗及篩選:針對目標(biāo)數(shù)據(jù)集進(jìn)行缺失數(shù)據(jù)補(bǔ)全、重復(fù)數(shù)據(jù)/異常數(shù)據(jù)刪除等操作。
(3)序列提取:提取初始晚點(diǎn)序列作為入模數(shù)據(jù)。
(4)特征構(gòu)建:結(jié)合列車運(yùn)行數(shù)據(jù)特點(diǎn)和運(yùn)力、時間、線路等多個角度構(gòu)建特征。
(5)數(shù)據(jù)分割:將入模數(shù)據(jù)按7:3 的比例切分為訓(xùn)練集和驗(yàn)證集。
(6)建立RNN 模型:選擇隱藏層層數(shù)及輸入層、隱藏層、輸出層神經(jīng)單元數(shù)。
(7)模型調(diào)參:設(shè)置不同的網(wǎng)絡(luò)參數(shù)和模型訓(xùn)練參數(shù),調(diào)整輸入特征,反復(fù)在驗(yàn)證集上根據(jù)評價(jià)指標(biāo)對實(shí)驗(yàn)?zāi)P瓦M(jìn)行評估,直至找到最優(yōu)參數(shù)。
結(jié)合前文晚點(diǎn)分析及算法設(shè)計(jì),將目標(biāo)數(shù)據(jù)集數(shù)據(jù)進(jìn)行如下處理。
3.1.1 數(shù)據(jù)清洗
(1)刪除重復(fù)樣本;
(2)刪除小于3 站的行程;
(3)刪除車站名缺失的行程;
(4)刪除運(yùn)行時間或計(jì)劃時間異常的行程;
(5)刪除區(qū)間吸收異?;蜍囌疚债惓5男谐?。
3.1.2 晚點(diǎn)序列提取
全段預(yù)測的序列樣本,從各個單獨(dú)的行程采集而來,序列長度不一,需滿足如下幾個條件:
(1)從初始晚點(diǎn)開始采集,后續(xù)站一直采集到晚點(diǎn)吸收為止;
(2)序列采集的長度需要在3 個站及以上;
(3)在全段預(yù)測場景下,只采集當(dāng)前站的特征值,后續(xù)車站的晚點(diǎn)數(shù)據(jù)設(shè)置為0。
通過序列提取,本次建模僅選取初始晚點(diǎn)在5~30 min 的序列,序列數(shù)為 4 182 個。
本文選擇Captum 工具對提取的特征進(jìn)行篩選。利用集成梯度算法,全變量模型訓(xùn)練完成后,輸入 1個批次的數(shù)據(jù)進(jìn)行前向傳播,計(jì)算此批次中每條元素的每個屬性值(特征項(xiàng)值)的積分梯度,再將批次中所有元素的積分梯度求和,當(dāng)作該屬性的集成梯度。梯度值越高,表明該屬性就越顯著。
假設(shè)常規(guī)歸因下某個屬性x有一個基線值x′,神經(jīng)網(wǎng)絡(luò)的輸出為函數(shù)f,則積分梯度(IG,Integrated Gradients)的計(jì)算公式為
上述公式是訓(xùn)練批次中單條記錄對屬性x的打分值,集成梯度是多條記錄積分梯度的加總,將所有屬性的集成梯度做歸一化,得到最終的結(jié)果,如圖4 所示。
圖4 特征值集成梯度歸一化得分
基于鐵路正晚點(diǎn)的業(yè)務(wù)場景,一共提取了38 項(xiàng)特征,其中,存在很多不相關(guān)或冗余項(xiàng),根據(jù)集成梯度對所有特征項(xiàng)的打分,最終選擇12 個最顯著的特征作為模型自變量,如表1 所示。
表1 12 個最顯著的特征值
本文使用pytorch 深度學(xué)習(xí)框架,將提取后的晚點(diǎn)數(shù)據(jù)按照7:3 的比例分割為訓(xùn)練集和驗(yàn)證集,進(jìn)行模型訓(xùn)練。Epoch 表示所有訓(xùn)練樣本在神經(jīng)網(wǎng)絡(luò)中都進(jìn)行了一次正向傳播和一次反向傳播。合適的Epoch 次數(shù),是神經(jīng)網(wǎng)絡(luò)能準(zhǔn)確預(yù)測的基礎(chǔ),訓(xùn)練次數(shù)過小,誤差較大;訓(xùn)練次數(shù)過大,會導(dǎo)致過擬合。
通過損失(Loss)測試和MAE 測試,在100 個Epoch 的訓(xùn)練過程中,訓(xùn)練集的Loss 和MAE 始終保持下降趨勢,說明模型擬合能力較好,如圖5 和圖6所示。
圖5 訓(xùn)練集Loss 訓(xùn)練過程
圖6 訓(xùn)練集MAE 訓(xùn)練過程
準(zhǔn)確率(ACC,Accuracy)是指模型使用驗(yàn)證集進(jìn)行驗(yàn)證預(yù)測,預(yù)測結(jié)果正確(滿足規(guī)定的誤差)的樣本數(shù)占總樣本個數(shù)的比例。從驗(yàn)證集看,預(yù)測ACC 在21 個Epoch 時已達(dá)到最優(yōu),同時MAE 在21個Epoch 時也達(dá)到了較優(yōu)的數(shù)值,意味訓(xùn)練在21 個Epoch 時,模型達(dá)到了最優(yōu),如圖7 和圖8 所示。
圖7 驗(yàn)證集MAE 訓(xùn)練過程
圖8 驗(yàn)證集ACC(誤差3 min)訓(xùn)練過程
經(jīng)大量對比試驗(yàn),本文最終設(shè)置的RNN 模型網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)及訓(xùn)練相關(guān)參數(shù)如表2 所示。
表2 模型訓(xùn)練參數(shù)
由上文可知,Epoch 為21 時,驗(yàn)證集準(zhǔn)確率達(dá)到最優(yōu),因此選擇此時的模型作為表現(xiàn)最佳模型。驗(yàn)證集預(yù)測誤差在3~9 min 不同情況下的準(zhǔn)確率如表3 所示,預(yù)測平均誤差為152.2 s。
表3 驗(yàn)證集的準(zhǔn)確率
由表3 可知,按表2 參數(shù)設(shè)置模型,預(yù)測誤差在5 min 范圍內(nèi)的準(zhǔn)確率可以達(dá)到89%,能夠?qū)崿F(xiàn)京滬高鐵晚點(diǎn)時間的高精度估算。
本文通過分析京滬高鐵列車歷史運(yùn)行數(shù)據(jù),提取了時間、鐵路網(wǎng)運(yùn)力、運(yùn)行線路、歷史運(yùn)行規(guī)律等較為顯著的特征向量,在過濾弱晚點(diǎn)的基礎(chǔ)上,設(shè)計(jì)了基于循環(huán)神經(jīng)網(wǎng)絡(luò)的全段預(yù)測方法,以期實(shí)現(xiàn)對高鐵列車的全段預(yù)測。經(jīng)驗(yàn)證,模型的準(zhǔn)確率較高,可以滿足實(shí)際生產(chǎn)的需要。
本文設(shè)計(jì)列車運(yùn)行晚點(diǎn)預(yù)測模型還存在不足之處,如僅給出預(yù)測的列車晚點(diǎn)時間,而未給出列車晚點(diǎn)時間對應(yīng)的概率,這是由于晚點(diǎn)預(yù)測模型選用RNN 回歸模型導(dǎo)致的。后續(xù)可嘗試將晚點(diǎn)時間當(dāng)作類別變量建模,同時預(yù)測晚點(diǎn)時間及其發(fā)生概率。