王 寧 ,李建華 ,王軍軍 ,李雙雪 ,唐 寧
(1.蘭州理工大學(xué)機電工程學(xué)院,甘肅 蘭州 730050;2.蘭州蘭石集團有限公司鑄鍛分公司,甘肅 蘭州 730050)
備件在保障設(shè)備正常使用和維修任務(wù)中占據(jù)重要地位,備件的消耗受到使用環(huán)境、設(shè)備維護、備件使用壽命等多種因素影響,預(yù)測難度較大?;跁r間序列進行的預(yù)測容易理解與應(yīng)用,預(yù)測精度較高[1]。精確的備件需求預(yù)測能夠優(yōu)化庫存結(jié)構(gòu),降低庫存管理難度,減少資金占用,因此科學(xué)的預(yù)測技術(shù)是非常重要的。
現(xiàn)有的時間序列預(yù)測技術(shù)包括統(tǒng)計方法和機器學(xué)習(xí)兩大類[2],統(tǒng)計方法以差分自回歸移動平均(ARIMA)模型[3-5]為代表,而機器學(xué)習(xí)方法以神經(jīng)網(wǎng)絡(luò)、支持向量機等為代表。韓梅麗[6]等以需求量波動較大的備件為研究對象,采用ARIMA時序模型對備件時序消耗做出了預(yù)測。丁紅衛(wèi)[7]等通過所需設(shè)備的歷史數(shù)據(jù)對構(gòu)建BP神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練,將訓(xùn)練好的模型用于電網(wǎng)物資的需求預(yù)測。有學(xué)者將LSTM與卷積神經(jīng)網(wǎng)絡(luò)融合,并運用于預(yù)測、語音識別等領(lǐng)域[8,9],李梅[10]等提出基于注意力機制的CNN-LSTM模型,運用于熱電聯(lián)產(chǎn)供熱的預(yù)測,對比支持向量機、LSTM單一預(yù)測模型,該組合模型取得了更好效果。
但是ARIMA僅適用于線性時間序列的預(yù)測,而神經(jīng)網(wǎng)絡(luò)適用于非線性系統(tǒng)的預(yù)測,基于ARIMA和神經(jīng)網(wǎng)絡(luò)在時間序列預(yù)測方面各自的優(yōu)劣勢,本研究提出一種基于ARIMA、BP神經(jīng)網(wǎng)絡(luò)和卷積長短期記憶神經(jīng)網(wǎng)絡(luò)的組合模型 (ARIMA-BP-CNN),充分提取時間序列數(shù)據(jù)的線性和非線性特征,應(yīng)用該模型對備件需求量做預(yù)測,并通過電解鋁企業(yè)天車某備件的消耗情況進行驗證。
差分自回歸移動平均模型,記作ARIMA,是一種時間序列預(yù)測分析方法。ARIMA(p,d,q)中,AR為自回歸,MA為移動平均,p是自回歸項數(shù),q是移動平均項數(shù),d是保障差分后得到平穩(wěn)序列數(shù)據(jù)的差分次數(shù)。時間序列模型是基于歷史數(shù)據(jù)建立起來的模型,以p、d、q為參數(shù)的ARIMA模型可表示為:
其中:Xt為時間序列的樣本值,φi(i=1,2,…,p)和θi(i=1,2,…,q)為模型參數(shù),εt為獨立正態(tài)分布的白噪聲。
ARIMA模型首先要對時間序列做一次或者多次差分,轉(zhuǎn)換成平穩(wěn)時間序列,再進行建模分析。ARIMA模型對時間序列數(shù)據(jù)的線性相關(guān)性預(yù)測精度高,但對分線性關(guān)系處理效果欠缺。
BP神經(jīng)網(wǎng)絡(luò)是20世紀80年代提出的誤差反向傳播算法,BP神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)由輸入層、隱藏層和輸出層組成,隱藏層可以是一層或多層,本文訓(xùn)練的是隱藏層為一層BP神經(jīng)網(wǎng)絡(luò),如圖1所示。BP算法分為前向傳播和反向傳播兩個部分,前向傳播是輸入信息從輸入層傳入,經(jīng)中間的隱藏層最終傳至輸出層,若獲得預(yù)期的輸出結(jié)果,則學(xué)習(xí)過程終止;否則,它將轉(zhuǎn)向反向傳播。反向傳播是與原始連接路徑反方向,通過誤差逐層修改網(wǎng)絡(luò)權(quán)值及閾值,再將更新的權(quán)值和閾值正向傳播,通過正向、反向傳播的循環(huán)進行得到最優(yōu)權(quán)值和閾值。
隱藏層與輸入層關(guān)系:
其中,θj為隱藏層第j個神經(jīng)元的閾值,wij為輸入層和隱藏層的連接權(quán)值,netj是第j個神經(jīng)元的激活值,yj是隱藏層的輸出值,f為激活函數(shù),通常是Sigmoid函數(shù)。輸出層和隱藏層與上述關(guān)系類似,激活函數(shù)通常為線性函數(shù)。
圖1 三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
1.3.1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò) (Convolutional Neural Networks,CNN)是一種具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),由輸入層、卷積層、池化層、全連接層以及輸出層組成。卷積神經(jīng)網(wǎng)絡(luò)可以有多個卷積層與池化層,二者交替使用從原始數(shù)據(jù)中獲得有效表征,提取數(shù)據(jù)的特征,然后經(jīng)過全連接層解除多維結(jié)構(gòu),最后到達輸出層,完成分類、預(yù)測等任務(wù)。
1.3.2 長短期記憶網(wǎng)絡(luò)
LSTM是一類特殊的遞歸神經(jīng)網(wǎng)絡(luò),它克服了傳統(tǒng)遞歸神經(jīng)網(wǎng)絡(luò)存在的梯度爆炸和梯度消失的問題,適合處理和預(yù)測時間序列事件。如圖2所示,每個LSTM由輸入門、忘記門、輸出門和細胞狀態(tài)組成,更新方式如下:
圖2 LSTM網(wǎng)絡(luò)基本單元
其中,ft、it、Ct、ot分別表示忘記門、輸入門、細胞狀態(tài)和輸出門;bf、bi、bc、bo分別表示不同門對應(yīng)的偏置;Wf、Wi、Wc、Wo分別表示不同門對應(yīng)權(quán)值;xt表示當前節(jié)點的輸入;ht表示當前節(jié)點的輸出;σ表示激勵函數(shù)Sigmoid;G^t表示計算過程中的候選值向量。
1.3.3 CNN-LSTM神經(jīng)網(wǎng)絡(luò)
CNN-LSTM神經(jīng)網(wǎng)絡(luò)算法由三部分組成。第一層,將原始數(shù)據(jù)熱向量編碼,使其映射為k維空間,得到新特征。第二層,將新特征輸入卷積神經(jīng)網(wǎng)絡(luò),設(shè)置若干對卷積層和池化層,提取數(shù)據(jù)特征。第三層,將CNN的輸出數(shù)據(jù)作為LSTM神經(jīng)網(wǎng)絡(luò)的輸入,做時序的預(yù)測,如圖3所示。
圖3 CNN-LSTM模型
傳統(tǒng)的預(yù)測方法以及機器學(xué)習(xí)算法均有其局限性,單一的方法不能得到理想的預(yù)測結(jié)果,文章采用組合預(yù)測方法對備件需求進行預(yù)測。Armstrong分析表明,組合預(yù)測方法對短期問題的預(yù)測更有效,預(yù)測結(jié)果的精確度更高[11]。組合預(yù)測理論中,若存在n種解決實際問題的預(yù)測方法,那么可以能通過給這n種方法分別賦予適當?shù)臋?quán)重,再將n種方法的預(yù)測結(jié)果分別乘以對應(yīng)的權(quán)重,各項累加,進而得到組合模型的預(yù)測結(jié)果。
假設(shè)某項預(yù)測問題在觀測時段的實際值為yt(t=1,2,…,m),對于該問題的n種預(yù)測模型中,各自的預(yù)測值為 git(i=1,2,…,n; t=1,2,…,m),各預(yù)測模型的權(quán)重系數(shù)為wi(i=1,2,…,n)。于是組合模型的預(yù)測值t表示為:
進而得到組合預(yù)測的誤差:
文章結(jié)合前面介紹的ARIMA、BP神經(jīng)網(wǎng)絡(luò)和卷積長短期記憶神經(jīng)網(wǎng)絡(luò),將三種方法結(jié)合,組成新組合預(yù)測方法(ARIMA-BP-CNN)。于是公式(9)的形式為:
應(yīng)用該組合預(yù)測方法進行預(yù)測,得到較高精度的預(yù)測結(jié)果,關(guān)鍵是確立各單一模型的權(quán)重系數(shù),本文采用遺傳算法優(yōu)化ARIMA-BP-CNN模型的權(quán)重系數(shù)。圖4是本文提出的ARIMA-BP-CNN組合模型流程圖,該組合預(yù)測方法步驟如下:
步驟 1:分別使用 ARIMA、BP神經(jīng)網(wǎng)絡(luò)和CNN-LSTM對原始時間序列數(shù)據(jù)進行預(yù)測,得到單一模型的預(yù)測結(jié)果。
步驟2:為各單一模型分配初始權(quán)重,分別用步驟1各方法的預(yù)測結(jié)果乘以對應(yīng)的權(quán)重,各項累加,得到ARIMA-BP-CNN模型的預(yù)測結(jié)果。
步驟3:采用遺傳算法優(yōu)化權(quán)重系數(shù)。初始權(quán)重未必能得到預(yù)期的結(jié)果,使用遺傳算法對組合模型的權(quán)重加以優(yōu)化。
步驟4:精度的預(yù)測。若組合模型得到期望的預(yù)測精度,進行步驟5;否則,返回步驟2繼續(xù)采用遺傳算法優(yōu)化權(quán)重系數(shù),直至得到期望的預(yù)測精度。
步驟5:輸出組合模型的預(yù)測結(jié)果,如圖4所示。
圖4 基于ARIMA、BP和CNN的組合預(yù)測流程圖
現(xiàn)有2010年至2018年間某電解鋁企業(yè)天車某備件消耗數(shù)據(jù),以季度為時間單位統(tǒng)計了36個歷史消耗數(shù)據(jù),詳細見表1.在這36個歷史數(shù)據(jù)中,選擇前32個作為訓(xùn)練數(shù)據(jù),后面4個作為檢驗數(shù)據(jù)。
表1 某備件消耗數(shù)據(jù)
將2010年至2017年的32個消耗數(shù)據(jù)作為輸入數(shù)據(jù),得到2018年四個季度該備件消耗的預(yù)測結(jié)果。
(1)檢驗序列的平穩(wěn)性。
圖5 備件消耗不平穩(wěn)序列圖
圖5時序圖顯示該序列具有曲折上升的趨勢,可以判斷為非平穩(wěn)序列;單位根檢驗統(tǒng)計量對應(yīng)的p值為0.11487顯著大于0.05,最終判斷該序列為非平穩(wěn)序列。
(2)對原始序列一階差分,并進行平穩(wěn)性和白噪聲檢驗。
圖6顯示,一階差分后的序列時序圖在均值附近比較平穩(wěn)的波動;圖7顯示,自相關(guān)圖有很強的短期相關(guān)性;單位根檢驗p值為0.04小于0.05;白噪聲檢驗p值為0.02小于0.05,所以一階差分后的序列為平穩(wěn)非白噪聲序列。
圖6 備件消耗平穩(wěn)序列圖
圖7 備件消耗ACF圖
(3)對差分后的序列擬合ARIMA模型。
計算ARMA(p,q)。計算p和q均小于等于3的所有組合的BIC信息量,取其中BIC信息量最小的模型階數(shù)。計算結(jié)果顯示p值為0、q值為1時最小BIC 值為 166.2731,因此 p、q 定階 0、1。
(4)ARIMA模型預(yù)測。
應(yīng)用ARIMA(0,1,1)對該備件2018年四個季度(Q1-Q4)需求量做預(yù)測,預(yù)測結(jié)果見表2。
表2 備件實際消耗量與各模型的預(yù)測值
將該備件的歷史消耗數(shù)據(jù),依次從第1個數(shù)據(jù)開始,緊鄰的8個作為神經(jīng)網(wǎng)絡(luò)的輸入,第9個數(shù)據(jù)作為待預(yù)測的消耗值,即神經(jīng)網(wǎng)絡(luò)的輸出,將這9個相鄰的歷史數(shù)據(jù)作為1個樣本。將前32個數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,按此方法得到24個樣本,用來訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)。輸入層有8個單元,輸出層有1個單元,取隱藏層8個單元,relu作為激活函數(shù),訓(xùn)練該BP神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)5000次后,用這個訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)模型對2018年四個季度該備件的消耗量做預(yù)測,預(yù)測結(jié)果見表2。
將該備件的歷史消耗數(shù)據(jù),依次從第1個數(shù)據(jù)開始,緊鄰的4個作為神經(jīng)網(wǎng)絡(luò)的輸入,第5個數(shù)據(jù)作為待預(yù)測的消耗值,即神經(jīng)網(wǎng)絡(luò)的輸出,將這5個相鄰的歷史數(shù)據(jù)作為1個樣本。將前32個數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,按此方法得到28個樣本,以此訓(xùn)練深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)。輸入層為4個單元,依次通過卷積、池化、LSTM層、Flatten等過程,輸出層為1個單元,relu作為激活函數(shù),mae作為損失函數(shù),對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,學(xué)習(xí)1000次后,用這個訓(xùn)練好的CNN-LSTM模型對該備件2018年四個季度的消耗量做預(yù)測,預(yù)測結(jié)果見表2。
(1)確定權(quán)系數(shù)
以誤差平方和最小作為模型組合的最優(yōu)準則,建立如下廣義誤差最小的組合預(yù)測權(quán)重確定模型:
運用遺傳算法確定該非線性問題的權(quán)重,將目標函數(shù)作為遺傳算法的適應(yīng)度計算值,使用MATLAB中的GA工具箱調(diào)用該函數(shù)進行計算,通過反復(fù)實驗,得到三種方法對應(yīng)的權(quán)值:
(2)組合模型做預(yù)測
通過公式(14)計算得到組合模型預(yù)測值,結(jié)果見表2。
另外,為進一步比較三種方法組合模型的預(yù)測精確度,同樣計算了單一方法的兩兩組合預(yù)測結(jié)果,以誤差平方和最小作為模型組合的最優(yōu)準則,使用相同方法計算得到ARIMA-BP的組合權(quán)重為:w1=0.356,w2=0.644;ARIMA-CNN 的組合權(quán)重為:w1=0.236,w2=0.764;BP-CNN 的組合權(quán)重為:w1=0.26,w2=0.74。兩兩組合方法的預(yù)測結(jié)果見表2。
文章提出的ARIMA-BP-CNN方法是綜合三種不同方法的新方法,結(jié)合三種方法的過程中,對每一種方法進行加權(quán),其中CNN的權(quán)重系數(shù)最高,對組合方法的貢獻最大。
為了直觀顯示單一方法和組合方法的預(yù)測精度,將備件消耗的實際值減去各方法的預(yù)測值,得到圖8的誤差曲線圖。從圖中可以看出ARIMABP-CNN方法的整體誤差最接近于零,其他三種方法只有第二季度CNN有較小的誤差,其他季度里三種單一的方法都具有較大的誤差。
圖8 四種預(yù)測方法的誤差曲線
為進一步說明預(yù)測結(jié)果的有效性以及改進后組合模型的提升效果,從均方根誤差(RMSE),平均絕對誤差(MAE),平均絕對百分比誤差(MAPE)這3個方面進行對比分析,具體見表3。
表3 預(yù)測效果評價表
從表3可以看出,ARIMA-BP-CNN方法的評價指標均低于三種單一方法的評價指標,其中,相比于ARIMA方法,ARIMA-BP-CNN將RMSE降低了65.9%,將MAE降低了69.6%,將MAPE降低了69.5%,預(yù)測精度取得了較大提升。
兩兩組合模型中,ARIMA-BP方法的預(yù)測精度相對偏低,ARIMA-CNN和BP-CNN的預(yù)測精度相對較高,但仍低于組合預(yù)測模型ARIMA-BP-CNN的預(yù)測精度。
綜上所述,ARIMA-BP-CNN組合預(yù)測模型的預(yù)測精度最高,優(yōu)于三種單一預(yù)測方法。
針對電解鋁企業(yè)的備件需求預(yù)測問題,構(gòu)建了基于ARIMA、BP神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)CNN-LSTM神經(jīng)網(wǎng)絡(luò)三種方法的組合預(yù)測模型,解決了備件消耗的預(yù)測問題,充分發(fā)揮了ARIMA解決線性問題的能力和神經(jīng)網(wǎng)絡(luò)解決非線性問題的能力,擺脫了單一預(yù)測方法的弊端,通過電解鋁企業(yè)天車某備件為實例,驗證了該組合模型在備件需求預(yù)測中的可行性與精確性。