馬 躍,李成蒙,尹震宇,李明時(shí),柴安穎,趙志浩
(中國科學(xué)院大學(xué),北京 100049) (中國科學(xué)院 沈陽計(jì)算技術(shù)研究所,沈陽 110168)
現(xiàn)如今,隨著科學(xué)技術(shù)的發(fā)展,現(xiàn)代工業(yè)已基本實(shí)現(xiàn)了機(jī)械化、自動(dòng)化的生產(chǎn)流程.在生產(chǎn)線作業(yè)中也越來越多地引入大型機(jī)械化設(shè)備,這些設(shè)備間一般具有先后的生產(chǎn)次序關(guān)系,單個(gè)設(shè)備作為生產(chǎn)線的一部分,其穩(wěn)定性和安全性直接影響著整個(gè)生產(chǎn)線的持續(xù)性運(yùn)行[1].一旦生產(chǎn)線中的設(shè)備發(fā)生故障,不僅會(huì)降低生產(chǎn)效率,而且可能帶來嚴(yán)重的安全生產(chǎn)事故.同時(shí),在大多情況下,設(shè)備故障并不是瞬時(shí)發(fā)生的,而是通過一定的時(shí)間累積出現(xiàn)的異常現(xiàn)象,具有一定的規(guī)律性[2].因此,如何有效地對(duì)生產(chǎn)線中設(shè)備的運(yùn)行狀態(tài)進(jìn)行預(yù)測,對(duì)于做好安全生產(chǎn)和提高生產(chǎn)效率至關(guān)重要.
傳統(tǒng)上對(duì)于設(shè)備運(yùn)行狀態(tài)的判斷主要依靠人工經(jīng)驗(yàn)來完成,一般根據(jù)已掌握的設(shè)備歷史維護(hù)信息來判斷未來一段時(shí)間內(nèi)是否會(huì)發(fā)生故障,但是這種維護(hù)方式帶有很強(qiáng)的主觀性,可能會(huì)受到設(shè)備的運(yùn)行強(qiáng)度、環(huán)境因素、人為因素等的影響;另外就是采用定時(shí)維護(hù)的方式,但是會(huì)帶來“維修不足”以及“維修過?!钡葐栴}[3].
一般來說,設(shè)備運(yùn)行過程中產(chǎn)生的數(shù)據(jù)屬于時(shí)序數(shù)據(jù),其本質(zhì)上反應(yīng)的是某個(gè)或某些隨機(jī)變量隨時(shí)間不斷變化的趨勢[4].時(shí)序數(shù)據(jù)會(huì)受到各方面的影響,具體表現(xiàn)為數(shù)據(jù)的非線性、非平穩(wěn)性、快速變換且包含噪聲等特點(diǎn)[5].傳統(tǒng)ARIMA(差分整合移動(dòng)平均自回歸)模型要求輸入為平穩(wěn)數(shù)據(jù),但是現(xiàn)實(shí)中獲取到的時(shí)序數(shù)據(jù)一般多為非平穩(wěn)的,因此還需要對(duì)數(shù)據(jù)進(jìn)行差分處理,使數(shù)據(jù)最終滿足平穩(wěn)性的要求.隨著人工智能技術(shù)的發(fā)展,出現(xiàn)了越來越多的深度學(xué)習(xí)算法,這些算法能夠很好地對(duì)非線性數(shù)據(jù)進(jìn)行處理,有效地解決了ARIMA模型對(duì)數(shù)據(jù)平穩(wěn)性的依賴問題.晏臻等[6]人采用CNN和LSTM相結(jié)合的方式實(shí)現(xiàn)了對(duì)交通流量的短時(shí)預(yù)測;馮浩等[7]人針對(duì)樣本類別分布不均衡的問題,提出了一種加權(quán)焦點(diǎn)損失函數(shù)(WFL),并與LSTM模型相結(jié)合,實(shí)驗(yàn)結(jié)果表明,這種預(yù)測模型相較于傳統(tǒng)的機(jī)器學(xué)習(xí)算法能夠更好地學(xué)習(xí)到特征在時(shí)間維度上的變化規(guī)律;陳平等[8]人基于GRNN神經(jīng)網(wǎng)絡(luò)建立了電子裝備的狀態(tài)預(yù)測模型,通過仿真分析,驗(yàn)證了模型的可行性與預(yù)測的準(zhǔn)確性;侯晨煜等[9]人在神經(jīng)網(wǎng)絡(luò)算法的基礎(chǔ)上,結(jié)合卡爾曼濾波,提出了一種新型有效的地鐵客流短時(shí)預(yù)測算法;代杰杰等[10]人為預(yù)測電力變壓器運(yùn)行狀態(tài),建立了基于長短時(shí)記憶網(wǎng)絡(luò)的電力變壓器狀態(tài)預(yù)測模型,能較準(zhǔn)確地反映出變壓器的優(yōu)劣狀況.
為了能更好地描述設(shè)備的未來運(yùn)行狀態(tài),為設(shè)備維護(hù)提供及時(shí)有效的建議,本研究針對(duì)生產(chǎn)線設(shè)備維護(hù)過程中存在的問題,結(jié)合獲取到的設(shè)備運(yùn)行狀態(tài)數(shù)據(jù),采用LSTM網(wǎng)絡(luò)結(jié)構(gòu)作為預(yù)測模型對(duì)設(shè)備的狀態(tài)進(jìn)行初步預(yù)測.同時(shí)針對(duì)多步預(yù)測過程中存在的誤差“累積”問題,采用另外一個(gè)LSTM網(wǎng)絡(luò)結(jié)構(gòu)對(duì)預(yù)測模型的殘差數(shù)據(jù)進(jìn)行建模,作為輔助模型對(duì)初步預(yù)測結(jié)果進(jìn)行修正,可以有效降低誤差傳播對(duì)預(yù)測精度的影響.
隨著Hinton等[11]人提出深度學(xué)習(xí)的概念以來,諸如人工神經(jīng)網(wǎng)絡(luò)(ANN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)和遞歸神經(jīng)網(wǎng)絡(luò)(RNN)等逐漸被越來越多的領(lǐng)域所采用.深度學(xué)習(xí)相較于傳統(tǒng)的統(tǒng)計(jì)學(xué)習(xí)方法,能夠通過多層非線性變換,從原始數(shù)據(jù)中提取到由底層到高層、由具體到抽象、由一般到特定語義的特征[12].這種結(jié)構(gòu)上的優(yōu)勢,讓深度學(xué)習(xí)能夠在計(jì)算機(jī)視覺、自然語言處理等領(lǐng)域中發(fā)揮較好的預(yù)測效果.
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)將時(shí)序的概念引入到了網(wǎng)絡(luò)設(shè)計(jì)中,使其能夠更好地處理時(shí)序數(shù)據(jù)問題[13],能更大限度地挖掘出時(shí)序數(shù)據(jù)間隱含的信息.循環(huán)神經(jīng)網(wǎng)絡(luò)在相鄰的神經(jīng)節(jié)點(diǎn)之間都有連接,可以用來傳遞數(shù)據(jù)間的狀態(tài)信息,同時(shí)每個(gè)神經(jīng)節(jié)點(diǎn)又可以接受新的狀態(tài)輸入,結(jié)合歷史保留信息,能夠預(yù)測輸出下一時(shí)刻的數(shù)據(jù)狀態(tài).具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
圖1中xt-1、xt、xt+1代表輸入的時(shí)序數(shù)據(jù),yt-1、yt、yt+1表示每個(gè)時(shí)刻的輸出,可由如下公式得到:
ht=f(U·xt+W·ht-1)
(1)
yt=g(V·ht)
(2)
其中U、V、W為權(quán)重矩陣,可以被網(wǎng)絡(luò)所共享,大大減小了網(wǎng)絡(luò)的訓(xùn)練復(fù)雜度;f(x)和g(x)分別為隱藏層和輸出層的激活函數(shù),f(x)通常采用tanh(x)函數(shù),而g(x)根據(jù)輸出數(shù)據(jù)的類型來選擇對(duì)應(yīng)的激活函數(shù);ht則為網(wǎng)絡(luò)保存的歷史狀態(tài),可以有效地利用數(shù)據(jù)間的關(guān)聯(lián)性信息.
雖然循環(huán)神經(jīng)網(wǎng)絡(luò)能夠記憶狀態(tài)信息,但是,在處理時(shí)間跨度較長的輸入時(shí)會(huì)存在長期依賴問題.這是由于狀態(tài)ht在接受每個(gè)輸入時(shí)都會(huì)被更新,因此會(huì)失去前期輸入的“記憶”,導(dǎo)致不能有效利用時(shí)間跨度較長的時(shí)序數(shù)據(jù)中的信息.因此,在循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上演化出了長短時(shí)記憶網(wǎng)絡(luò)(LSTM),通過加入3個(gè)“門”和一個(gè)能保存輸入“記憶”的結(jié)構(gòu),有效解決了RNN在處理長序數(shù)據(jù)時(shí)存在的問題[14,15].其細(xì)胞結(jié)構(gòu)如圖2所示.
圖2 LSTM細(xì)胞結(jié)構(gòu)圖Fig.2 LSTM cell structure diagram
1)遺忘門(forget gate):用來控制需要保留的細(xì)胞狀態(tài)信息,計(jì)算公式為:
ft=σ(Wf·[ht-1,xt]+bf)
(3)
其中[ht-1,xt]為上次輸出與本次輸入向量的一個(gè)拼接,Wf和bf分別表示權(quán)重矩陣和偏置項(xiàng).運(yùn)算結(jié)果通過一個(gè)sigmoid激活函數(shù)映射到0-1之間,決定了保留之前信息的程度.
2)輸入門(input gate):主要負(fù)責(zé)當(dāng)前序列位置的輸入,計(jì)算公式為:
it=σ(Wi·[ht-1,xt]+bi)
(4)
(5)
3)細(xì)胞狀態(tài)更新:將遺忘門和輸入門得到的數(shù)據(jù)添加到上一細(xì)胞狀態(tài)中,計(jì)算公式為:
(6)
細(xì)胞狀態(tài)記錄了起始輸入到當(dāng)前輸入所保留的信息,通過遺忘門信息與輸入門信息進(jìn)行求和運(yùn)算,可以有效解決RNN中的梯度消失和梯度爆炸的問題.
4)輸出門(output gate):根據(jù)細(xì)胞狀態(tài)和輸入數(shù)據(jù)決定當(dāng)前的輸出,計(jì)算公式為:
ot=σ(Wo[ht-1,xt]+b0)
(7)
ht=ot*tanh(Ct)
(8)
其中狀態(tài)輸出由兩部分組成,第1部分ot為上次輸出和本次輸入向量拼接后通過sigmoid激活函數(shù)映射得到,第2部分則由細(xì)胞狀態(tài)與第1部分的輸出相乘得到.狀態(tài)輸出有兩個(gè)作用:1)作為當(dāng)前時(shí)刻的預(yù)測值,2)進(jìn)入下一個(gè)細(xì)胞網(wǎng)絡(luò)中參與參數(shù)運(yùn)算.
根據(jù)時(shí)序數(shù)據(jù)前后相互關(guān)聯(lián)的特點(diǎn),通過滑動(dòng)窗口的方式進(jìn)行數(shù)據(jù)分割,結(jié)合LSTM循環(huán)神經(jīng)網(wǎng)絡(luò),本節(jié)給出Dual-LSTM混合模型的數(shù)據(jù)預(yù)測方法,實(shí)現(xiàn)對(duì)設(shè)備狀態(tài)的準(zhǔn)確預(yù)測.
系統(tǒng)的總體結(jié)構(gòu)如圖3所示.首先通過數(shù)據(jù)庫或者遠(yuǎn)程推送的方式獲取到設(shè)備的歷史狀態(tài)數(shù)據(jù).由于設(shè)備信息采集裝置處于工業(yè)環(huán)境現(xiàn)場,可能會(huì)受到傳感器失效、網(wǎng)絡(luò)阻塞等各種情況的影響,從而導(dǎo)致采集到的數(shù)據(jù)出現(xiàn)異常,因此需要采用一定的方法對(duì)這些原始數(shù)據(jù)進(jìn)行預(yù)處理,主要包括異常值去除、缺失值補(bǔ)全、數(shù)據(jù)歸一化等.然后對(duì)處理后的時(shí)序數(shù)據(jù)進(jìn)行數(shù)據(jù)分割,以滿足后續(xù)模型的輸入格式要求.最后進(jìn)行模型的網(wǎng)絡(luò)參數(shù)訓(xùn)練,通過預(yù)測模型和輔助模型相結(jié)合的方式完成對(duì)設(shè)備狀態(tài)的預(yù)測工作.
圖3 系統(tǒng)結(jié)構(gòu)Fig.3 System structure
為了提升模型的收斂速度以及訓(xùn)練精度,首先采用公式9對(duì)數(shù)據(jù)做歸一化處理,將數(shù)據(jù)映射到[min,max]的區(qū)間中,一般取min=0,max=1.
(9)
其中x′為歸一化后的值,x為原始值,xmax和xmin分別為數(shù)據(jù)中的最大值和最小值.通過歸一化后,數(shù)據(jù)保留了原始的走向趨勢,但是其值被限定在一個(gè)較小范圍內(nèi),在一定程度上減小了異常值對(duì)模型的影響.對(duì)于模型的預(yù)測結(jié)果,還需要進(jìn)行反歸一化為實(shí)際值,反歸一化的公式為:
(10)
然后在歸一化后的數(shù)據(jù)基礎(chǔ)上構(gòu)建數(shù)據(jù)集,對(duì)于時(shí)序數(shù)據(jù)采用的是過去一段時(shí)間內(nèi)的數(shù)據(jù)對(duì)未來數(shù)據(jù)進(jìn)行預(yù)測,因此可以采用滑動(dòng)窗口的方式構(gòu)建數(shù)據(jù)集.具體做法為指定滑動(dòng)窗口的長度為n,在原數(shù)據(jù)上以步長為1進(jìn)行滑動(dòng),以窗口中的數(shù)據(jù)作為模型的輸入數(shù)據(jù),窗口的下一個(gè)數(shù)據(jù)作為預(yù)測值,不斷重復(fù)這個(gè)過程,直到構(gòu)建出符合要求的數(shù)據(jù)集,具體做法如圖4所示.同時(shí)為了驗(yàn)證模型的準(zhǔn)確性,保留最后2000個(gè)時(shí)刻的數(shù)據(jù)作為測試集,其余的數(shù)據(jù)作為訓(xùn)練集參與模型參數(shù)的訓(xùn)練工作.
圖4 數(shù)據(jù)集構(gòu)建Fig.4 Construction of data sets
預(yù)測工作主要由預(yù)測模型和輔助模型共同完成,其中預(yù)測模型主要完成對(duì)數(shù)據(jù)的初步預(yù)測,輔助模型則對(duì)預(yù)測模型的預(yù)測殘差值進(jìn)行確定,從而實(shí)現(xiàn)對(duì)初步預(yù)測結(jié)果的修正.模型均采用了第2節(jié)中提到的LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),主要包括輸入層、隱藏層、輸出層3部分,其中輸入層節(jié)點(diǎn)個(gè)數(shù)與數(shù)據(jù)分割窗口大小相對(duì)應(yīng),隱藏層則實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的非線性變換,輸出層通過linear線性激活函數(shù)將輸出映射到實(shí)數(shù)空間中.同時(shí)考慮到不同設(shè)備狀態(tài)數(shù)據(jù)間的差異,可以在模型的隱藏層中加入全連接層對(duì)數(shù)據(jù)進(jìn)行多維度映射.
3.3.1 預(yù)測模型構(gòu)建
根據(jù)數(shù)據(jù)的特點(diǎn),將分割數(shù)據(jù)的窗口大小設(shè)置為100,即每次預(yù)測需要依賴前100個(gè)時(shí)刻的序列數(shù)據(jù),其數(shù)據(jù)格式表示為{yt-100,…,yt-2,yt-1}.同時(shí)預(yù)測模型的輸入節(jié)點(diǎn)個(gè)數(shù)與輸入數(shù)據(jù)長度相等,然后加入3層LSTM層學(xué)習(xí)數(shù)據(jù)中的隱含信息和1層全連接層進(jìn)行維度映射,采用平均絕對(duì)誤差(Mean Absolute Error, MAE)作為損失函數(shù),利用自適應(yīng)動(dòng)量估計(jì)(Adaptive Moment Estimation, Adam)優(yōu)化算法更新網(wǎng)絡(luò)權(quán)重,并將劃分好的訓(xùn)練集送入模型進(jìn)行訓(xùn)練.
通過上述動(dòng)態(tài)構(gòu)建輸入序列數(shù)據(jù)的方法,預(yù)測模型進(jìn)行多步預(yù)測的步驟如下:
2.判斷是否達(dá)到預(yù)設(shè)的預(yù)測步長,若不滿足,則進(jìn)入步驟3,否則,進(jìn)入步驟4;
3.重新構(gòu)建輸入序列,加入預(yù)測值,并將新構(gòu)建的序列帶入步驟1中;
4.將各個(gè)預(yù)測流程中的值返回,預(yù)測結(jié)束.
3.3.2 輔助模型構(gòu)建
1.將初始時(shí)間序列數(shù)據(jù)輸入預(yù)測模型和輔助模型中,分別得到初步預(yù)測結(jié)果和殘差預(yù)測值;
2.通過殘差預(yù)測值對(duì)初步預(yù)測結(jié)果進(jìn)行修正,得到更為精確的預(yù)測值;
3.判斷是否達(dá)到預(yù)設(shè)的預(yù)測步長,若不滿足,進(jìn)入步驟4,否則,進(jìn)入步驟5;
4.重新構(gòu)建輸入序列,加入修正后的預(yù)測值,并將新構(gòu)建的序列帶入步驟1中;
5.將各個(gè)預(yù)測流程中的值返回,預(yù)測結(jié)束.
為了驗(yàn)證本文所提出的Dual-LSTM混合模型對(duì)時(shí)序數(shù)據(jù)預(yù)測的有效性,以實(shí)驗(yàn)產(chǎn)線為目標(biāo),通過將溫度傳感器部署到六軸機(jī)械手伺服電機(jī)的外圍殼體處,以采集到的溫度數(shù)據(jù)進(jìn)行實(shí)驗(yàn)驗(yàn)證,從不同的預(yù)測方式上進(jìn)行結(jié)果對(duì)比,采用均方根誤差(RMSE)、平均絕對(duì)誤差(MAE)作為模型的預(yù)測性能評(píng)價(jià)指標(biāo).
首先從數(shù)據(jù)庫中讀取已儲(chǔ)存的溫度數(shù)據(jù),由于數(shù)據(jù)中存在一定的異常值和缺失值,因此采用線性插值算法對(duì)這些值進(jìn)行替換、填充,使數(shù)據(jù)滿足連續(xù)性的特點(diǎn)要求.然后采用第3節(jié)中的分割方法將數(shù)據(jù)劃分為訓(xùn)練集和測試集,分別進(jìn)行預(yù)測模型和輔助模型的網(wǎng)絡(luò)參數(shù)訓(xùn)練.
為了驗(yàn)證混合模型能夠有效地降低預(yù)測過程中產(chǎn)生的誤差,首先在測試數(shù)據(jù)集上對(duì)模型的單步預(yù)測效果進(jìn)行驗(yàn)證分析,利用訓(xùn)練完成后的預(yù)測模型和輔助模型進(jìn)行預(yù)測,與單LSTM模型預(yù)測結(jié)果對(duì)比如圖5所示.
從圖5中可以看出,單模型預(yù)測曲線雖然與真實(shí)值曲線趨勢保持一致,但是與真實(shí)值之間還是存在一定的差距,而加入輔助模型后,由于能夠?qū)γ看蔚念A(yù)測結(jié)果進(jìn)行修正,因此混合模型能夠更好地?cái)M合真實(shí)數(shù)據(jù)值,減小預(yù)測過程中產(chǎn)生的誤差.另外從表1中的預(yù)測結(jié)果指標(biāo)數(shù)據(jù)上也可以看出,混合模型在RMSE值和MAE值上均比單預(yù)測模型更低,驗(yàn)證了本文提出的Dual-LSTM混合模型在設(shè)備狀態(tài)數(shù)據(jù)單步預(yù)測上具有良好的有效性.
圖5 單步預(yù)測結(jié)果對(duì)比Fig.5 Comparison of single-step prediction results
表1 單步預(yù)測結(jié)果Table 1 Single-step prediction results
為了進(jìn)一步說明本文提出的Dual-LSTM混合模型在數(shù)據(jù)多步預(yù)測上的有效性,利用第3節(jié)中提到的對(duì)數(shù)據(jù)循環(huán)預(yù)測的方法,在測試集上進(jìn)行循環(huán)預(yù)測25個(gè)時(shí)刻的狀態(tài)數(shù)據(jù),結(jié)果如圖6所示.
圖6 多步預(yù)測結(jié)果對(duì)比Fig.6 Comparison of multi-step prediction results
由于每次在進(jìn)行輸入序列重建時(shí)都會(huì)引入一個(gè)預(yù)測誤差值,因此單模型在預(yù)測到第7個(gè)時(shí)刻的數(shù)據(jù)時(shí),誤差的“累積”導(dǎo)致輸入序列數(shù)據(jù)偏離了正常范圍,在后續(xù)過程中已經(jīng)不能準(zhǔn)確地預(yù)測出當(dāng)前時(shí)刻的真實(shí)值.而混合模型能夠?qū)γ恳徊降念A(yù)測結(jié)果進(jìn)行修正,因此,在前期預(yù)測過程中引入的誤差較小,預(yù)測模型依然可以進(jìn)行正常預(yù)測.在第10個(gè)時(shí)刻時(shí),
表2 多步預(yù)測結(jié)果Table 2 Multi-step prediction results
雖然預(yù)測值與真實(shí)值的差異變大,但是依然能夠捕捉到真實(shí)數(shù)據(jù)的走向趨勢,從表2中的預(yù)測結(jié)果指標(biāo)數(shù)據(jù)對(duì)比中也可以看出,混合模型的預(yù)測精度更高.
本文提出了一種Dual-LSTM混合模型數(shù)據(jù)預(yù)測方法,針對(duì)時(shí)序數(shù)據(jù)預(yù)測過程中出現(xiàn)的誤差“累積”問題,提出了一個(gè)可以對(duì)預(yù)測結(jié)果進(jìn)行修正的輔助模型,并在實(shí)際產(chǎn)線設(shè)備數(shù)據(jù)上進(jìn)行了驗(yàn)證,通過與單LSTM模型在單步和多步的預(yù)測結(jié)果上進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果表明,輔助模型能夠有效提升預(yù)測精度,并在多步預(yù)測上也能有較為出色的表現(xiàn)效果,較大地改善了對(duì)產(chǎn)線設(shè)備狀態(tài)預(yù)測的能力.在本實(shí)驗(yàn)研究的基礎(chǔ)上,下一步的研究工作應(yīng)該主要放在對(duì)狀態(tài)數(shù)據(jù)的識(shí)別以及故障預(yù)測方面,通過對(duì)已有故障數(shù)據(jù)進(jìn)行建模,來識(shí)別出預(yù)測數(shù)據(jù)中可能會(huì)出現(xiàn)的故障信息.