周昌野,李 程
(上海工程技術(shù)大學航空運輸學院,上海 201620)
鐵路作為國家重要的基礎(chǔ)設(shè)施、國民經(jīng)濟的大動脈和大眾化出行的交通工具,在現(xiàn)代運輸體系中既發(fā)揮至關(guān)重要的作用,也是運輸行業(yè)中的中流砥柱[1]。鐵路運輸生產(chǎn)部門日常工作之一就是對鐵路貨運量預(yù)測準確性的把握,同時,鐵路貨運量預(yù)測更作為鐵路運輸企業(yè)制定正確市場營銷戰(zhàn)略的前置條件,表現(xiàn)出不可或缺的地位。首先,調(diào)查所收集到的歷史數(shù)據(jù),結(jié)合當前實際情況,對某個區(qū)域內(nèi)的鐵路貨運市場需求進行分析、預(yù)計、測算和判斷,總結(jié)出鐵路貨運量的變化規(guī)律和發(fā)展趨勢,以此來保證作出正確的鐵路貨運營銷計劃和營銷決策。目前影響鐵路貨運量的外部因素主要集中在宏觀經(jīng)濟、市場競爭、進出口貿(mào)易以及金屬礦石行業(yè)等方面的影響,內(nèi)部因素主要集中在體制、鐵路運能和運價等方面的影響,外部因素和內(nèi)部因素會對鐵路貨運量產(chǎn)生滯后的影響,通常表現(xiàn)在前一段時間的市場波動會在后一段時間上影響企業(yè)在制定鐵路貨運營銷計劃或者市場對鐵路運輸方式的選擇,從而影響鐵路貨運量。鐵路貨運量預(yù)測模型采用的方法更多是支持向量機[2-3]、整合滑動平均自回歸模型[4]、灰度預(yù)測模型[5-6]、誤差逆?zhèn)鞑ツP蚚7-8]。這些模型對時間序列預(yù)測存在滯后或者只能捕捉線性關(guān)系的問題,所以預(yù)測精度受限。而長短期記憶網(wǎng)絡(luò)(Long-Short Term Memory, LSTM),可以很好地解決長時依賴問題,也可以解決長序列訓練過程中存在的梯度消失和梯度爆炸的問題,所以LSTM非常適合用于處理與時間序列高度相關(guān)的問題[9],例如股價預(yù)測、機器翻譯、對話生成、編碼和解碼等。本文運用LSTM網(wǎng)絡(luò)模型對鐵路貨運量進行預(yù)測,并與BP神經(jīng)網(wǎng)絡(luò)預(yù)測進行對比,再通過對LSTM網(wǎng)絡(luò)模型結(jié)構(gòu)的調(diào)整進一步提升預(yù)測精度和準確度。
BP神經(jīng)網(wǎng)絡(luò)的計算過程分別為正向傳播過程和反向傳播過程[10]。正向傳播過程是指工作信號正向傳播。首先,工作信號從輸入層開始向隱含層進行傳遞,通過隱含層處理后最終傳遞到輸出層。如果在輸出層的輸出值與期望值誤差較大,則會進行反向傳播過程。反向傳播過程是指誤差信號會沿原來的傳遞路線返回,不斷修改相鄰2層神經(jīng)元之間的權(quán)值,或者對訓練網(wǎng)絡(luò)結(jié)構(gòu)中的參數(shù)進行修改,計算誤差值使其最終達到最小。在了解BP神經(jīng)網(wǎng)絡(luò)的傳播特點后,需要根據(jù)工作信號的正向傳播和誤差的反向傳播來構(gòu)建整個網(wǎng)絡(luò)。如圖1所示。
1.1.1 正向傳播過程
正向傳播過程共有3層結(jié)構(gòu)。第1層是有n個節(jié)點的輸入層,第2層是有q個節(jié)點的隱含層,第3層是有m個節(jié)點的輸出層。第1層到第2層的權(quán)值為wij,第2層到第3層的權(quán)值為wjk,第1層到第2層的偏置項為bj,第2層到第3層的偏置項為bk。g(x)為激勵函數(shù):
(1)
隱含層輸出:
(2)
輸出層輸出:
(3)
1.1.2 反向傳播過程
誤差的計算:
(4)
其中Yk表示期望輸出值。
其實LSTM是RNN神經(jīng)網(wǎng)絡(luò)的一種變體,它很好解決了存在原始RNN中長期依賴問題,在機器翻譯[11]和圖像描述[12]等許多領(lǐng)域中應(yīng)用較為成功。它是由Hochreiter等[13]提出的,后來被很多人改進和推廣,并在各種各樣的問題上工作得非常好,現(xiàn)在被廣泛地應(yīng)用。
LSTM神經(jīng)網(wǎng)絡(luò)通過增加一個單元狀態(tài)c,以此讓它來保存長期的狀態(tài)[14]。如圖2所示。
在t時刻,LSTM網(wǎng)絡(luò)的輸入值有3個:xt是此刻的輸入值,ct-1是前一時刻的單元狀態(tài),ht-1是前一時刻的輸入值;輸出值有2個:此刻單元狀態(tài)ct和此刻輸出值ht。如圖3所示。
LSTM網(wǎng)絡(luò)控制單元狀態(tài)c的內(nèi)容核心思想是依靠3個門。第1個門是遺忘門(forget gate),它用來控制要遺忘掉多少前一時刻單元狀態(tài)ct-1的內(nèi)容。遺忘門的數(shù)學公式為:
ft=σ(Wf·[ht-1,xt]+bf)
(5)
其中,Wf為權(quán)重矩陣,σ為激勵函數(shù),bf為偏置向量。
第2個門是輸入門(input gate),它用來控制要保留多少此刻輸入量xt的內(nèi)容到單元狀態(tài)c。數(shù)學表達式為:
it=σ(Wi·[ht-1,xt]+bi)
(6)
(7)
(8)
其中,Wi和Wc代表輸入門和此刻輸入狀態(tài)的權(quán)重矩陣,bi和bc代表輸入門和此刻輸入狀態(tài)的偏置向量,tanh是雙曲正切激活函數(shù)。
第3個門是輸出門(output gate),它用來控制單元狀態(tài)ct的內(nèi)容傳遞到當前輸出值ht的比例。數(shù)學表達式為:
ot=σ(Wo·[ht-1,xt]+bo)
(9)
ht=ot·tanh(ct)
(10)
其中,Wo是輸出門的權(quán)重矩陣,bo是輸出門的偏置向量。
實驗選取均方誤差MSE、均方根誤差RMSE和平均絕對百分比誤差MAPE來評估模型的預(yù)測效果[15]。計算公式如下:
(11)
(12)
(13)
首先,BP神經(jīng)網(wǎng)絡(luò)是最基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)類型,RNN、GRU、LSTM和DNN等都可以說是BP的變種。它本質(zhì)上是利用函數(shù)中的一些線性參數(shù)的變動來對要識別的模型或者函數(shù)進行某種逼近[16]。該種方法對關(guān)聯(lián)性較低的數(shù)據(jù)更為有效。但LSTM模型對于識別前后有關(guān)聯(lián)的數(shù)據(jù)預(yù)測更為有效。如果不把前一個數(shù)據(jù)作為后一個數(shù)據(jù)的輸入的話,本質(zhì)上該算法是無法真正挖掘到數(shù)據(jù)產(chǎn)生的模式。而LSTM模型最大的特點就是能輕松地學習到長期依賴的信息,對處理長時間序列更為適合。在進行模型預(yù)測的過程中,超參數(shù)的選擇在某種程度上起到至關(guān)重要的作用,往往都根據(jù)經(jīng)驗所設(shè)置參數(shù)。為了使預(yù)測效果達到更佳,本文采用網(wǎng)格搜索法(Grid Search)分別對LSTM模型和BP模型網(wǎng)絡(luò)進行優(yōu)化。網(wǎng)格搜索法是指定參數(shù)值的一種窮舉搜索方法[17-18],通過把各個參數(shù)的可能取值一一列出,利用自由組合的方式,將各個組合分別用于模型訓練,通過對預(yù)測結(jié)果進行分析,從而找到最佳參數(shù)組合。此方法更適用于優(yōu)化參數(shù)數(shù)量有限的情況,可以大大提高訓練模型的速度。
對LSTM模型進行網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化,對其中最主要的3個超參數(shù)進行選擇來進一步提高預(yù)測精度[19-20]。LSTM網(wǎng)絡(luò)最主要的3個超參數(shù)為:批量大小、隱含層神經(jīng)單元個數(shù)和學習率,使用網(wǎng)格搜索對其進行優(yōu)化。此方法步驟如下:首先,確定重要性較低的參數(shù),通過初步設(shè)定值找到最佳方向;其次,進一步縮小3個參數(shù)的取值范圍,批量大小設(shè)定為64和128,隱含層神經(jīng)元個數(shù)設(shè)定為16、32、64、128、256、512,學習率設(shè)定為0.5、0.05、0.005;最后,通過判定預(yù)測結(jié)果的均方根誤差和平均絕對百分比誤差優(yōu)選出最佳組合參數(shù)。對BP模型進行網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化,對其中最主要的2個參數(shù)隱含層神經(jīng)元個數(shù)和學習率使用網(wǎng)格搜索對其進行優(yōu)化[21-22]。此方法步驟如下:首先,確定重要性較低的參數(shù),通過初步設(shè)定值的多次試驗找到最佳方向;其次,進一步縮小確定參數(shù)的取值范圍,隱含層神經(jīng)元個數(shù)設(shè)定為1、2、4、8,學習率設(shè)定為0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0;最后,通過判定預(yù)測結(jié)果的均方根誤差和平均絕對百分比誤差優(yōu)選出最佳組合參數(shù)。LSTM基礎(chǔ)模型和BP基礎(chǔ)模型更多是借用前人的經(jīng)驗總結(jié)選取主要參數(shù)值進行網(wǎng)絡(luò)訓練,但在應(yīng)用到實際問題中很難達到更高精度。而本文采用的是基于LSTM和BP基礎(chǔ)模型通過前期篩選方法確定預(yù)測效果較高的參數(shù)值范圍,然后再運用網(wǎng)格搜索方法通過篩選出的若干參數(shù)值分別代入到網(wǎng)絡(luò)中訓練得出結(jié)果進行對比,最終找到預(yù)測精度最高的一組參數(shù)值。雖然在計算時間上相比基礎(chǔ)預(yù)測模型花費時間更長,但是相比基礎(chǔ)模型大大提高了模型的預(yù)測精度,所以在有限的計算時間上也是可以被人所接受。LSTM/BP模型訓練流程如圖4所示。
本實驗數(shù)據(jù)來源于國家統(tǒng)計局官網(wǎng),使用的是鐵路貨運量月度數(shù)據(jù),時間跨度為2005年1月—2021年7月,共有數(shù)據(jù)199組。如圖5所示,模型將2005年1月—2019年12月期間的數(shù)據(jù)作為訓練集,將2020年1月—2021年7月期間的數(shù)據(jù)作為測試集,對預(yù)測結(jié)果進行評估。
建立基于鐵路月貨運量的初步LSTM網(wǎng)絡(luò)模型,通過查找相關(guān)文獻并試驗[23-25],網(wǎng)絡(luò)結(jié)構(gòu)采用輸入層5個神經(jīng)元,隱含層128個神經(jīng)單元,輸出層1個神經(jīng)元,采用Adam優(yōu)化算法[26-27]。利用網(wǎng)格搜索算法的LSTM模型預(yù)測結(jié)果見表1。建立基于鐵路月貨運量的初步BP神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)采用輸入層5個神經(jīng)元,隱含層8個神經(jīng)元,輸出層1個神經(jīng)元。利用網(wǎng)格搜索算法的BP模型預(yù)測結(jié)果見表2。通過實驗將LSTM網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)的預(yù)測值和觀測值進行精細化的對比,如圖6所示。
表1 利用網(wǎng)格搜索算法的LSTM模型預(yù)測結(jié)果
表2 利用網(wǎng)格搜索算法的BP模型預(yù)測結(jié)果
各模型的預(yù)測值和觀測值對比如圖6所示。
通過圖6可以看出,BP神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果與觀測值存在一定差距,而LSTM模型的預(yù)測結(jié)果與觀測值更為接近。表3為各預(yù)測模型性能比較。BP模型和LSTM模型的MAPE分別6.91%和5.36%,LSTM模型要比BP模型的MAPE降低了1.55個百分點,預(yù)測誤差進一步減小。通過RMSE數(shù)值也可以分析出,LSTM模型的預(yù)測精度高于BP模型。所以整體上可以得出結(jié)論,基于時間序列的LSTM模型預(yù)測效果要優(yōu)于BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型。通過利用網(wǎng)格搜索法再進一步優(yōu)化LSTM模型和BP模型的網(wǎng)絡(luò)結(jié)構(gòu)后發(fā)現(xiàn),GS-BP模型的MAPE為4.34%,GS-LSTM模型的MAPE為4.16%,GS-LSTM模型比GS-BP模型的MAPE降低了0.18個百分點。可以得出基于網(wǎng)格搜索法的GS-BP模型和GS-LSTM模型都比原來的模型預(yù)測效果好,而優(yōu)化后的GS-LSTM模型的預(yù)測效果也要好于GS-BP模型。
表3 預(yù)測模型性能比較
結(jié)合實際情況,本文提出了一種利用網(wǎng)格搜索算法來優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)的方法。對網(wǎng)絡(luò)結(jié)構(gòu)中選取重要性較高的超參數(shù)進行網(wǎng)格式篩選,通過預(yù)測模型測試集上的評價指標,與其他模型進行分析比較,發(fā)現(xiàn)LSTM模型非常適合用于處理與時間序列高度相關(guān)的問題。同時基于網(wǎng)格搜索法的LSTM模型在鐵路貨運量預(yù)測問題上擁有更優(yōu)秀的表現(xiàn),預(yù)測精度更高,體現(xiàn)了LSTM網(wǎng)絡(luò)對長時間序列上的學習能力及泛化能力,也對鐵路日常運輸規(guī)劃具有十分重要的意義。由于本文使用的是月度貨運量,各模型之間的預(yù)測效果差距不是特別大,下一步研究可以考慮采用日貨運量,增大訓練數(shù)據(jù)量或者通過組合預(yù)測模型,再進一步提升預(yù)測能力。