成 強
(重慶交通大學(xué) 信息科學(xué)與工程學(xué)院, 重慶 400074)
隨著政企分開以及中國鐵路總公司的成立, 鐵路系統(tǒng)已經(jīng)迎來改革發(fā)展“新常態(tài)”. 客運經(jīng)營作為鐵路改革的重頭戲, 重點就是要加強對于短期市場變化的應(yīng)對能力, 及時獲取相關(guān)客運需求信息, 實時調(diào)整客運服務(wù)機構(gòu), 而這就要求我們提高對于短期客運量的預(yù)測精度.
短期客運量預(yù)測是以月度或者日度客運量變化為預(yù)測對象, 研究短期內(nèi)客運量的波動情況. 由于短期客運量受多種隨機因素影響, 相比長期客運量具有明顯的非線性、隨機性和波動性[1], 這在一定程度上增加了預(yù)測難度. 在類似客運量時間序列預(yù)測方面, 小波分析和神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法收到廣泛關(guān)注, 而深度學(xué)習(xí)[2]的飛速發(fā)展又為客運量時間序列的預(yù)測提供了新的研究思路和方法.
深度學(xué)習(xí)的概念由Hinton等于2006年提出. 深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)提供了高維數(shù)據(jù)空間和低維嵌套結(jié)構(gòu)的雙向映射, 有效解決了大多數(shù)非線性降維方法所不具備的逆向映射問題. 楊祎玥等[3]將小波分解和循環(huán)神經(jīng)網(wǎng)絡(luò)RNN應(yīng)用在時間序列的預(yù)測中, 探索了水文時間序列的預(yù)測精度. 但是小波分解僅僅將低頻特性持續(xù)分解, 而且循環(huán)神經(jīng)網(wǎng)絡(luò)RNN存在梯度消失和梯度爆發(fā)的缺點; 然而小波包分析 (Wavelet Packet Analysis,WPA)不僅對低頻部分進行分解, 而且還對高頻部分進行分解, 且長短時記憶神經(jīng)網(wǎng)絡(luò)LSTM[4]是在RNN的基礎(chǔ)上的改進模型, 可以有效處理梯度消失和梯度爆發(fā)的問題.
因此, 本文利用長短時記憶神經(jīng)網(wǎng)絡(luò)LSTM的時間序列預(yù)測能力, 結(jié)合小波包分析方法, 建立了一個基于小波包分析的長短時記憶神經(jīng)網(wǎng)絡(luò)的鐵路客運量時間序列預(yù)測模型.
圖1 小波包對時間序列的分解
為了小波包簡單地說就是一個函數(shù)簇, 它定義為正交尺度函數(shù)確定的函數(shù)簇. 設(shè)則可表示為(其中是尺度參數(shù),、l是平移參數(shù),是頻率參數(shù), 且
小波包分解算法:
由 即:
深度循環(huán)神經(jīng)網(wǎng)絡(luò) (Deep Recurrent Neural Network,DRNN)本質(zhì)上是一種通常意義上的深度神經(jīng)網(wǎng)絡(luò)(多層感知機), 其特點是每層都有時間反饋循環(huán), 并且層之間是疊加構(gòu)成的. 每次神經(jīng)網(wǎng)絡(luò)的更新, 新信息通過層次傳遞, 每層神經(jīng)網(wǎng)絡(luò)也獲得了時間性上下文信息.
然而傳統(tǒng)的DRNN模型, 在訓(xùn)練過程中, 梯度下降更加傾向于按照序列結(jié)尾處的權(quán)值的正確方向進行更新. 也就是說, 越遠的序列輸入的對權(quán)值的正確變化所能起到的“影響”越小, 所以訓(xùn)練的結(jié)果就是往往出現(xiàn)偏向于新的信息, 即不太能有較長的記憶功能.
由此引出本文將要介紹的LSTM (Long Short-Term Memory, 長短時記憶)遞歸神經(jīng)網(wǎng)絡(luò), 該算法使用LSTM結(jié)構(gòu)替換了一般的遞歸神經(jīng)網(wǎng)絡(luò)的隱藏層節(jié)點, LSTM 結(jié)構(gòu)增加了輸入門 (Input gate)、輸出門(Output gate)、遺忘門 (Forget gate)和一個內(nèi)部單元(Cell). 其中LSTM結(jié)構(gòu)如圖2所示.
輸入門: 表示是否允許輸入層的信息進入到該隱藏層節(jié)點. 門開的則允許輸入層輸出信號進入, 門關(guān)則不允許信號進入, 記為. 輸出門: 表示是否將當前節(jié)點的輸出值輸出到下一層. 門開的則允許該隱藏層節(jié)點的信號輸出, 門關(guān)則不允許信號輸出, 記為. 遺忘門:表示是否保留當前隱藏層節(jié)點存儲的歷史信息. 門開的則保留當前隱藏層節(jié)點存儲的歷史信息, 門關(guān)則不保留當前隱藏層節(jié)點存儲的歷史信息, 記為表示t時刻存儲的信息值,表示時刻存儲的信息值,在模型中t時刻的輸出值將作為時刻的輸入進行預(yù)測, 輸出層與DRNN的輸出層一致. 基于長短時記憶結(jié)構(gòu)的遞歸神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖3所示.
圖2 LSTM 結(jié)構(gòu)
利用小波包分析方法對鐵路旅客流量時間序列進行預(yù)處理, 進行多尺度小波包分解和單支重構(gòu), 可獲得不同的高頻和低頻序列, 對預(yù)處理的數(shù)據(jù)進行相空間重構(gòu)后作為LSTM模型的訓(xùn)練數(shù)據(jù), 建立一個基于小波包分析的長短時記憶神經(jīng)網(wǎng)絡(luò)的鐵路旅客客流量時間預(yù)測模型, 稱為WPA-LSTM模型.
WPA-LSTM預(yù)測模型結(jié)構(gòu)如圖4所示.
首先將時間序列數(shù)據(jù)進行小波包分解和單支重構(gòu)成多條序列, 然后分別輸入LSTM模型進行預(yù)測, 最后將預(yù)測值疊加成最終預(yù)測值[7].
WPA-LSTM模型建立過程如下:
(1) 數(shù)據(jù)準備. 先選取歷史旅客流量日數(shù)據(jù), 對數(shù)據(jù)進行歸一化處理, 并且保存其最大值和最小值.
(2) 小波分解和單支重構(gòu). 選擇合適的小波包函數(shù)和分解初度, 對旅客流量時間序列進行多尺度小波包分解和單支重構(gòu), 獲得該序列的近似系數(shù)和各細節(jié)系數(shù), 然后對這些系數(shù)分別進行單支重構(gòu), 獲得一條能夠描述原始序列趨勢變化的低頻序列和保留不同信息的高頻序列.
圖3 基于長短時記憶結(jié)構(gòu)的遞歸神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
(3) 相空間重構(gòu). 設(shè)置相空間重構(gòu)的延遲數(shù)值, 分別對低頻序列和各個高頻序列進行相空間重構(gòu), 以此形成相應(yīng)的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù).
(4) LSTM模型訓(xùn)練. 設(shè)定LSTM的學(xué)習(xí)速率、網(wǎng)絡(luò)層數(shù)和每層的節(jié)點數(shù)目, 利用相空間重構(gòu)的多組訓(xùn)練數(shù)據(jù)分別對LSTM模型進行訓(xùn)練.
(5) 預(yù)測客流量. 用訓(xùn)練好的LSTM模型對子序列的測試樣本進行預(yù)測, 并將各子序列的預(yù)測值進行疊加, 從而得到最終的預(yù)測值, 這樣就實現(xiàn)了對鐵路旅客流量時間序列的建模和預(yù)測.
以某高鐵上, S1到S2方向的2015年12月28日到2017年1月15日, 共計367天的日旅客流量數(shù)據(jù)為例, 來研究基于小波包分析的LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測模型. 然后, 又利用了自回歸積分滑動平均模型[8](ARIMA)和基于經(jīng)驗?zāi)B(tài)分解[9,10](EMD)的LSTM神經(jīng)網(wǎng)絡(luò)模型進行預(yù)測, 并將其預(yù)測結(jié)果與基于小波包分析的LSTM神經(jīng)網(wǎng)絡(luò)模型進行比較. 其中, 訓(xùn)練數(shù)據(jù)為2015年12月28日到2016年11月3日的295組經(jīng)過相空間重構(gòu)的數(shù)據(jù), 測試數(shù)據(jù)為2016年11月4日到2017年1月15日, 共計72組數(shù)據(jù).
圖4 WPA-LSTM 預(yù)測模型結(jié)構(gòu)
首先, 對數(shù)據(jù)進行歸一化處理, 以提高數(shù)據(jù)在訓(xùn)練過程中的收斂速度. 在這里使用Max-Min歸一化方法,對于序列中的最大值和最小值對序列中所有元素有:
再挑選合適的小波包分解參數(shù), 將原始信號合理的分解到恰當?shù)亩鄠€頻段上. 這里使用Daubechies小波1(db1), 對其進行小波包分解和單支重構(gòu), 其中單支重構(gòu)后的情況如圖5–圖7所示.
其中, 第一條曲線為原始序列曲線, 另外八條為db1小波包分解并進行重構(gòu)后的8個不同尺度的序列.這些序列能夠捕捉到原始序列輕微的擾動, 將原始序列中突發(fā)性、局部性、隱藏性的信息保留在其中.
各模型預(yù)測的結(jié)果如圖8所示, 預(yù)測性能指標如表1所示.
通過對比擬合程度(R值)可知, WPA-LSTM模型最優(yōu), 其次是ARIMA模型, 最后是EMD-LSTM模型;通過對比歸一化均方誤差(NMSE)可知, WPALSTM模型最優(yōu), 其次是ARIMA模型, 最后是EMDLSTM模型; 通過對比平均絕對百分比誤差(MAPE)可知, WPA-LSTM 模型最優(yōu), 其次是 ARIMA 模型, 最后是EMD-LSTM模型; 綜合考慮上述三項指標, WPALSTM的預(yù)測精度最高.
圖5 旅客流量原始序列與db1分解后的信號對比圖1
圖6 旅客流量原始序列與db1分解后的信號對比圖2
圖7 旅客流量原始序列與db1分解后的信號對比圖3
首先, 進行分日期的絕對預(yù)測誤差對比, 如圖9所示. 可以看出, ARIMA模型在對2017年元旦附近,特別是2016年12月30日這一天和2017年1月2日這一天的預(yù)測誤差較大, 最大值為7000人; EMDLSTM模型也是在2017年12月30日這一天的預(yù)測誤差最大, 最大值甚至達到了7800人, 而且EMDLSTM模型的絕對誤差明顯多數(shù)高于其他兩個模型;而WPA-LSTM模型的絕對誤差相對穩(wěn)定, 在預(yù)測時段內(nèi)沒有特別劇烈的變化, 分布相對較平穩(wěn).
將基于小波包分析和長短時記憶神經(jīng)網(wǎng)絡(luò)融合的深度學(xué)習(xí)預(yù)測模型用于鐵路旅客日流量的預(yù)測中, 實驗結(jié)果證明, 比利用季節(jié)性模型ARIMA和基于經(jīng)驗?zāi)B(tài)分解的長短時記憶神經(jīng)網(wǎng)絡(luò)預(yù)測模型有著更好的逼近能力和容錯性, 有效降低了預(yù)報誤差, 提高了模型的預(yù)測精度, 具有較強的預(yù)報和泛化能力.
圖8 各模型預(yù)測結(jié)果對比
圖9 預(yù)測值絕對誤差對比
表1 各模型的預(yù)測性能指標
表2 各模型誤差分布 (單位: %)