張 提
(同濟大學電子與信息工程學院,上海 201804)
對于工業企業來說,訂單量的不確定性給庫存管理帶來了巨大的風險,尤其是生產和運輸提前期較長的企業,以及嚴格按照訂單進行生產的企業,訂單更是作為連接企業與客戶的橋梁。對訂單量進行精準預測,可以幫助企業及時改進生產計劃,作出合理決策,提高市場競爭力。
工業訂單可以作為時間序列數據進行研究。自回歸差分移動平均模型(ARIMA)由G.P.Box和G.M.Jenkins于21世紀70年代初提出,是非常著名的線性單變量時間序列預測模型[1]。W.J.Kim基于時間序列,使用ARIMA模型對海外施工訂單進行預測[2]。然而,ARIMA模型很難捕捉到時間序列的非線性特性。人工神經網絡(ANN)可以有效地處理非線性問題,該方法也被廣泛地應用于預測。黃建強等[3]使用低偏差序列混合遺傳粒子群優化算法對灰色神經網絡參數進行優化,并將其用于冰箱訂單預測。華曉暉等[4]利用BP神經網絡組合徑向基神經網絡建立訂單預測模型,提高對訂單數據的預測精度。M.Khashei等[5]和Voronin[6]利用ARIMA與ANN模型分別比較線性與非線性建模的優勢,有效地將ARIMA和ANN模型進行混合建模,提高了模型的預測精度。此外,還有一些其他機器學習方法也成功地應用在時間序列的非線性回歸問題中,并受到越來越多的關注。例如,支持向量機(SVM)[7]、多層感知器(MLP)[8]、貝葉斯神經網絡[9]、廣義回歸神經網絡(GRNN)[10-11]、K近鄰回歸算法[12]、分類與回歸樹(CART)[13]與高斯過程回歸[14]。Nesreen K.Ahmed等[15]對用于時間序列預測問題的機器學習模型進行大規模的比較研究,驗證了機器學習在時間序列預測領域的可行性。
與傳統的機器學習方法相比,深度學習具有很強的學習能力,能夠更好地利用數據集提取特征。隨著計算能力的不斷提高,深度學習也已經成為時間序列預測的重要方法。RNN及其改進算法LSTM的出現就是利用深度學習能夠表征復雜的數據這一特征【16-19】。
本研究基于LSTM模型分析了瑞典某企業的訂單預測問題。為了提升模型的泛化能力,采用STL方法對時序數據進行了特征分解。
本研究針對瑞典某企業2016年11月至2020年12月近50個月的訂單數據【20】進行分析,考慮到訂單量作為企業的保密數據,因此使用該企業提供的每月訂單量的增長率進行分析預測,可以達到和使用訂單量預測相同的效果。
以訂單月增長率作為目標變量,如圖1所示,訂單影響因素變量包括工業生產指數、經濟趨勢、生產者物價指數、制造業信息指數、消費者信心指數和家庭消費月增長率,分別如圖2-7所示。

圖1 工業訂單月增長率Fig.1 Monthly growth rate of industrial orders

圖2 工業生產指數月增長率Fig.2 Monthly growth rate of industrial production index
本研究通過Keras框架構建基于LSTM的訂單預測模型,包括Dense層即全連接層、LSTM層、Dropout層,如圖8所示。

圖3 經濟趨勢Fig.3 Economic trends

圖8 訂單預測模型結構Fig.8 The structure of order prediction model
LSTM層的激活函數采用ReLU函數,即f(x)=max(0,x)。模型評價指標采用第i個預測時刻的平均絕對誤差、均方根誤差以及趨勢準確度,其定義分別如式(1)-式(3)所示。


圖4 生產者物價指數月增長率Fig.4 Monthly growth rate of pproducer price index

圖5 制造業信心指數Fig.5 Manufacturing confidence index

圖6 消費者信心指數Fig.6 Consumer confidence index
其中,m為模型獨立運行的次數,n為模型的預測時刻數,yi為實際值,fi為預測值。當前時刻的預測值fi和實際值yi分別與上一時刻的實際值yi-1作差,所得差值如果其符號一致,則表示該時刻的預測趨勢正確。ri為預測趨勢正確的時刻數,k為總的預測時刻數。
為了提高模型的泛化能力,本研究對時序數據進行一定的擴充并用于模型訓練。根據時間序列分解方法STL可知,時間序列數據可分解為

圖7 家庭消費月增長率Fig.7 Monthly growth rate of household consumption

其中,Ti表示趨勢成分,Si表示季節成分,Ri表示殘差成分。
為了進一步擴充特征數據,對{Ti,Si,Ri}三個成分進行加權,如式(5)所示,即

其中,α1+α2+α3=1。
本研究提出了一種動態加權的方法,在模型訓練的過程中動態生成包含趨勢成分、季節成分、殘差成分的特征數據,如圖8所示。
以原訂單數據、影響因素數據及其分解后的趨勢成分、季節成分、殘差成分作為輸入,在這些輸入數據用于LSTM層訓練之前,輸入數據中的趨勢成分、季節成分、殘差成分作為全連接層Dense的輸入,Dense層的輸出為加權后的趨勢成分、季節成分和殘差成分,權重可以通過整個模型訓練得到。

圖9 時序數據特征分解動態加權Fig.9 Dynamic weighting for time series data feature decomposition
由于整個訓練過程是在一個模型中,因此,模型在訓練的過程中便會根據損失函數動態調整趨勢成分、季節成分和殘差成分的權重,以生成不同的時間序列數據并輸入到后續網絡層。用于LSTM層的輸入數據保留了原數據的趨勢性和季節性,同時,保留的殘差成分有利于提升模型的泛化能力。
本研究將訂單和6個影響因素進行時間序列分解,并通過不同的權重進行加權,每組影響因素數據產生10組擴充數據,加上原影響因素數據一共產生66組數據。然后,將66組數據與訂單數據擴充產生的11組數據一同作為模型的輸入進行訓練,并將下一時刻的訂單數據作為輸出,對訂單數據進行單步預測。輸入輸出結構如圖10所示。

圖10 訂單預測模型輸入輸出結構Fig.10 The input-output structure of order prediction model
模型訓練參數如表1所示。

表1 LSTM模型訓練參數Tab.1 The parameters for LSTM model training
模型運行10次,其統計預測結果如圖11所示。

圖11 訂單預測結果Fig.11 The results of order prediction
經統計,模型的均方根誤差為1.97,趨勢準確度為78.7%,結果可以接受。
本研究是作者碩士學位論文《基于LSTM的工業訂單預測及應用研究》[21]的一部分,主要探討了LSTM模型用于解決訂單預測問題的可行性。LSTM模型用于訂單預測具有兩方面的優越性,一是其能夠學習時間序列在時間維度上的依賴關系,二是其能夠從眾多的特征數據中學習到關鍵信息。為了進一步提高模型的泛化能力,采用時間序列分解方法STL對原訂單數據及其影響因素進行了特征加權分解,并基于Dense網絡對權重進行動態學習。原數據及擴充數據同時作為LSTM模型的輸入,提高了訂單預測模型的預測精度。