張 提
(同濟(jì)大學(xué)電子與信息工程學(xué)院,上海 201804)
對(duì)于工業(yè)企業(yè)來(lái)說(shuō),訂單量的不確定性給庫(kù)存管理帶來(lái)了巨大的風(fēng)險(xiǎn),尤其是生產(chǎn)和運(yùn)輸提前期較長(zhǎng)的企業(yè),以及嚴(yán)格按照訂單進(jìn)行生產(chǎn)的企業(yè),訂單更是作為連接企業(yè)與客戶的橋梁。對(duì)訂單量進(jìn)行精準(zhǔn)預(yù)測(cè),可以幫助企業(yè)及時(shí)改進(jìn)生產(chǎn)計(jì)劃,作出合理決策,提高市場(chǎng)競(jìng)爭(zhēng)力。
工業(yè)訂單可以作為時(shí)間序列數(shù)據(jù)進(jìn)行研究。自回歸差分移動(dòng)平均模型(ARIMA)由G.P.Box和G.M.Jenkins于21世紀(jì)70年代初提出,是非常著名的線性單變量時(shí)間序列預(yù)測(cè)模型[1]。W.J.Kim基于時(shí)間序列,使用ARIMA模型對(duì)海外施工訂單進(jìn)行預(yù)測(cè)[2]。然而,ARIMA模型很難捕捉到時(shí)間序列的非線性特性。人工神經(jīng)網(wǎng)絡(luò)(ANN)可以有效地處理非線性問(wèn)題,該方法也被廣泛地應(yīng)用于預(yù)測(cè)。黃建強(qiáng)等[3]使用低偏差序列混合遺傳粒子群優(yōu)化算法對(duì)灰色神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化,并將其用于冰箱訂單預(yù)測(cè)。華曉暉等[4]利用BP神經(jīng)網(wǎng)絡(luò)組合徑向基神經(jīng)網(wǎng)絡(luò)建立訂單預(yù)測(cè)模型,提高對(duì)訂單數(shù)據(jù)的預(yù)測(cè)精度。M.Khashei等[5]和Voronin[6]利用ARIMA與ANN模型分別比較線性與非線性建模的優(yōu)勢(shì),有效地將ARIMA和ANN模型進(jìn)行混合建模,提高了模型的預(yù)測(cè)精度。此外,還有一些其他機(jī)器學(xué)習(xí)方法也成功地應(yīng)用在時(shí)間序列的非線性回歸問(wèn)題中,并受到越來(lái)越多的關(guān)注。例如,支持向量機(jī)(SVM)[7]、多層感知器(MLP)[8]、貝葉斯神經(jīng)網(wǎng)絡(luò)[9]、廣義回歸神經(jīng)網(wǎng)絡(luò)(GRNN)[10-11]、K近鄰回歸算法[12]、分類與回歸樹(shù)(CART)[13]與高斯過(guò)程回歸[14]。Nesreen K.Ahmed等[15]對(duì)用于時(shí)間序列預(yù)測(cè)問(wèn)題的機(jī)器學(xué)習(xí)模型進(jìn)行大規(guī)模的比較研究,驗(yàn)證了機(jī)器學(xué)習(xí)在時(shí)間序列預(yù)測(cè)領(lǐng)域的可行性。
與傳統(tǒng)的機(jī)器學(xué)習(xí)方法相比,深度學(xué)習(xí)具有很強(qiáng)的學(xué)習(xí)能力,能夠更好地利用數(shù)據(jù)集提取特征。隨著計(jì)算能力的不斷提高,深度學(xué)習(xí)也已經(jīng)成為時(shí)間序列預(yù)測(cè)的重要方法。RNN及其改進(jìn)算法LSTM的出現(xiàn)就是利用深度學(xué)習(xí)能夠表征復(fù)雜的數(shù)據(jù)這一特征【16-19】。
本研究基于LSTM模型分析了瑞典某企業(yè)的訂單預(yù)測(cè)問(wèn)題。為了提升模型的泛化能力,采用STL方法對(duì)時(shí)序數(shù)據(jù)進(jìn)行了特征分解。
本研究針對(duì)瑞典某企業(yè)2016年11月至2020年12月近50個(gè)月的訂單數(shù)據(jù)【20】進(jìn)行分析,考慮到訂單量作為企業(yè)的保密數(shù)據(jù),因此使用該企業(yè)提供的每月訂單量的增長(zhǎng)率進(jìn)行分析預(yù)測(cè),可以達(dá)到和使用訂單量預(yù)測(cè)相同的效果。
以訂單月增長(zhǎng)率作為目標(biāo)變量,如圖1所示,訂單影響因素變量包括工業(yè)生產(chǎn)指數(shù)、經(jīng)濟(jì)趨勢(shì)、生產(chǎn)者物價(jià)指數(shù)、制造業(yè)信息指數(shù)、消費(fèi)者信心指數(shù)和家庭消費(fèi)月增長(zhǎng)率,分別如圖2-7所示。
圖1 工業(yè)訂單月增長(zhǎng)率Fig.1 Monthly growth rate of industrial orders
圖2 工業(yè)生產(chǎn)指數(shù)月增長(zhǎng)率Fig.2 Monthly growth rate of industrial production index
本研究通過(guò)Keras框架構(gòu)建基于LSTM的訂單預(yù)測(cè)模型,包括Dense層即全連接層、LSTM層、Dropout層,如圖8所示。
圖3 經(jīng)濟(jì)趨勢(shì)Fig.3 Economic trends
圖8 訂單預(yù)測(cè)模型結(jié)構(gòu)Fig.8 The structure of order prediction model
LSTM層的激活函數(shù)采用ReLU函數(shù),即f(x)=max(0,x)。模型評(píng)價(jià)指標(biāo)采用第i個(gè)預(yù)測(cè)時(shí)刻的平均絕對(duì)誤差、均方根誤差以及趨勢(shì)準(zhǔn)確度,其定義分別如式(1)-式(3)所示。
圖4 生產(chǎn)者物價(jià)指數(shù)月增長(zhǎng)率Fig.4 Monthly growth rate of pproducer price index
圖5 制造業(yè)信心指數(shù)Fig.5 Manufacturing confidence index
圖6 消費(fèi)者信心指數(shù)Fig.6 Consumer confidence index
其中,m為模型獨(dú)立運(yùn)行的次數(shù),n為模型的預(yù)測(cè)時(shí)刻數(shù),yi為實(shí)際值,fi為預(yù)測(cè)值。當(dāng)前時(shí)刻的預(yù)測(cè)值fi和實(shí)際值yi分別與上一時(shí)刻的實(shí)際值yi-1作差,所得差值如果其符號(hào)一致,則表示該時(shí)刻的預(yù)測(cè)趨勢(shì)正確。ri為預(yù)測(cè)趨勢(shì)正確的時(shí)刻數(shù),k為總的預(yù)測(cè)時(shí)刻數(shù)。
為了提高模型的泛化能力,本研究對(duì)時(shí)序數(shù)據(jù)進(jìn)行一定的擴(kuò)充并用于模型訓(xùn)練。根據(jù)時(shí)間序列分解方法STL可知,時(shí)間序列數(shù)據(jù)可分解為
圖7 家庭消費(fèi)月增長(zhǎng)率Fig.7 Monthly growth rate of household consumption
其中,Ti表示趨勢(shì)成分,Si表示季節(jié)成分,Ri表示殘差成分。
為了進(jìn)一步擴(kuò)充特征數(shù)據(jù),對(duì){Ti,Si,Ri}三個(gè)成分進(jìn)行加權(quán),如式(5)所示,即
其中,α1+α2+α3=1。
本研究提出了一種動(dòng)態(tài)加權(quán)的方法,在模型訓(xùn)練的過(guò)程中動(dòng)態(tài)生成包含趨勢(shì)成分、季節(jié)成分、殘差成分的特征數(shù)據(jù),如圖8所示。
以原訂單數(shù)據(jù)、影響因素?cái)?shù)據(jù)及其分解后的趨勢(shì)成分、季節(jié)成分、殘差成分作為輸入,在這些輸入數(shù)據(jù)用于LSTM層訓(xùn)練之前,輸入數(shù)據(jù)中的趨勢(shì)成分、季節(jié)成分、殘差成分作為全連接層Dense的輸入,Dense層的輸出為加權(quán)后的趨勢(shì)成分、季節(jié)成分和殘差成分,權(quán)重可以通過(guò)整個(gè)模型訓(xùn)練得到。
圖9 時(shí)序數(shù)據(jù)特征分解動(dòng)態(tài)加權(quán)Fig.9 Dynamic weighting for time series data feature decomposition
由于整個(gè)訓(xùn)練過(guò)程是在一個(gè)模型中,因此,模型在訓(xùn)練的過(guò)程中便會(huì)根據(jù)損失函數(shù)動(dòng)態(tài)調(diào)整趨勢(shì)成分、季節(jié)成分和殘差成分的權(quán)重,以生成不同的時(shí)間序列數(shù)據(jù)并輸入到后續(xù)網(wǎng)絡(luò)層。用于LSTM層的輸入數(shù)據(jù)保留了原數(shù)據(jù)的趨勢(shì)性和季節(jié)性,同時(shí),保留的殘差成分有利于提升模型的泛化能力。
本研究將訂單和6個(gè)影響因素進(jìn)行時(shí)間序列分解,并通過(guò)不同的權(quán)重進(jìn)行加權(quán),每組影響因素?cái)?shù)據(jù)產(chǎn)生10組擴(kuò)充數(shù)據(jù),加上原影響因素?cái)?shù)據(jù)一共產(chǎn)生66組數(shù)據(jù)。然后,將66組數(shù)據(jù)與訂單數(shù)據(jù)擴(kuò)充產(chǎn)生的11組數(shù)據(jù)一同作為模型的輸入進(jìn)行訓(xùn)練,并將下一時(shí)刻的訂單數(shù)據(jù)作為輸出,對(duì)訂單數(shù)據(jù)進(jìn)行單步預(yù)測(cè)。輸入輸出結(jié)構(gòu)如圖10所示。
圖10 訂單預(yù)測(cè)模型輸入輸出結(jié)構(gòu)Fig.10 The input-output structure of order prediction model
模型訓(xùn)練參數(shù)如表1所示。
表1 LSTM模型訓(xùn)練參數(shù)Tab.1 The parameters for LSTM model training
模型運(yùn)行10次,其統(tǒng)計(jì)預(yù)測(cè)結(jié)果如圖11所示。
圖11 訂單預(yù)測(cè)結(jié)果Fig.11 The results of order prediction
經(jīng)統(tǒng)計(jì),模型的均方根誤差為1.97,趨勢(shì)準(zhǔn)確度為78.7%,結(jié)果可以接受。
本研究是作者碩士學(xué)位論文《基于LSTM的工業(yè)訂單預(yù)測(cè)及應(yīng)用研究》[21]的一部分,主要探討了LSTM模型用于解決訂單預(yù)測(cè)問(wèn)題的可行性。LSTM模型用于訂單預(yù)測(cè)具有兩方面的優(yōu)越性,一是其能夠?qū)W習(xí)時(shí)間序列在時(shí)間維度上的依賴關(guān)系,二是其能夠從眾多的特征數(shù)據(jù)中學(xué)習(xí)到關(guān)鍵信息。為了進(jìn)一步提高模型的泛化能力,采用時(shí)間序列分解方法STL對(duì)原訂單數(shù)據(jù)及其影響因素進(jìn)行了特征加權(quán)分解,并基于Dense網(wǎng)絡(luò)對(duì)權(quán)重進(jìn)行動(dòng)態(tài)學(xué)習(xí)。原數(shù)據(jù)及擴(kuò)充數(shù)據(jù)同時(shí)作為L(zhǎng)STM模型的輸入,提高了訂單預(yù)測(cè)模型的預(yù)測(cè)精度。