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