吳明慧,侯凌燕,王 超
1.北京信息科技大學 計算機開放系統(tǒng)實驗室,北京100101
2.北京材料基因工程高精尖中心,北京100101
時間序列預(yù)測方法在目標追蹤、天氣預(yù)報、市場分析和故障診斷領(lǐng)域中有廣泛的應(yīng)用。時間序列預(yù)測的目標是尋找未來時刻序列的取值與其歷史觀測值及變量之間的關(guān)系[1-2]。深度學習(deep learning)通過建立深層神經(jīng)網(wǎng)絡(luò)實現(xiàn)自動特征提取,構(gòu)建數(shù)據(jù)在不同層級、維度下的關(guān)聯(lián),提高自變量對因變量的解釋程度[2-5]。
目前,用于時間序列預(yù)測的深度學習模型主要有循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)和長短時神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory neural network,LSTM)[6]。基于時間(狀態(tài))的循環(huán)機制,RNN能將時間序列的上下文信息考慮在內(nèi),但在訓(xùn)練過程中存在梯度消失問題(即梯度向量的分量在長時序列上呈指數(shù)降低)[7-15]。Schmidhuber等人提出長短時神經(jīng)網(wǎng)絡(luò),在RNN的基礎(chǔ)上設(shè)立細胞狀態(tài)保存歷史信息、設(shè)立輸入門更新細胞狀態(tài)、設(shè)立遺忘門清除無用歷史信息,從而分離了記憶模塊與數(shù)據(jù)輸入模塊,緩解了梯度消失問題[3]。進而,涌現(xiàn)出諸多基于LSTM模型在預(yù)測領(lǐng)域的應(yīng)用案例,例如Yuan等[15]對工業(yè)設(shè)備壽命的預(yù)測。然而,后續(xù)的研究發(fā)現(xiàn)梯度消失問題在LSTM中仍然存在,尤其在工業(yè)環(huán)境中,時序數(shù)據(jù)往往由高采樣率的傳感器收集得到,隨采樣時間的增加,序列長度不斷增長,在處理距離當前時刻較遠的序列信息時這個問題更加明顯[16]。
為解決此問題,Chorowski等人[17]提出在LSTM之后增加注意力機制,通過為隱層節(jié)點分配不同權(quán)重,使重要特征在長序數(shù)據(jù)的學習過程中被保留。Wang[18]將CNN捕捉局部特征的能力與LSTM提取序列數(shù)據(jù)時序特征的能力相結(jié)合,構(gòu)建多特征提取模型。Li[19]在此基礎(chǔ)上引入注意力機制選取關(guān)鍵特征進行學習,進一步降低預(yù)測誤差,然而序列長度受限的關(guān)鍵在于LSTM,通過多特征疊加的方式并不能解決此問題。Shi等人[20]提出ConvLSTM,將卷積整合到LSTM結(jié)構(gòu)中獲得時空特征的提取能力,使LSTM應(yīng)用擴展到圖像領(lǐng)域。Conv-LSTM在短序列輸入時表現(xiàn)突出,但面對高維長序數(shù)據(jù)輸入的特征提取能力不足。
基于單鏈結(jié)構(gòu)的LSTM僅能學習正向時序關(guān)系,BiLSTM的逆序雙鏈結(jié)構(gòu)可以對數(shù)據(jù)二次訓(xùn)練,這一特性使其可以學習序列正向和逆向的時序關(guān)系。Siami[21]驗證了在預(yù)測準確度上BiLSTM優(yōu)于LSTM。隨后,Ding[22]將CNN與BiLSTM組合,結(jié)果表明在預(yù)測誤差方面優(yōu)于LSTM、BiLSTM和CNN-LSTM,是目前預(yù)測精度最高的方案。Wang[23]和Jiang[24]等人分別嘗試在CNNBiLSTM組合上附加注意力機制用于特征選取,但預(yù)測效果并不穩(wěn)定。
綜上,在LSTM對歷史序列的記憶能力隨序列長度增加而下降的問題中,關(guān)注的重點在于引入其他模型或機制來提升特征提取能力[25-27],均未從LSTM鏈式結(jié)構(gòu)信息傳導(dǎo)機理出發(fā)提升LSTM的記憶能力。鏈式結(jié)構(gòu)的長短時神經(jīng)網(wǎng)絡(luò)在梯度反向傳導(dǎo)時,歷史時刻梯度的計算基于后續(xù)時刻的梯度值。這一機制使得在面對高采樣率、分布不均衡的數(shù)據(jù)時,模型會弱化小比例數(shù)據(jù)的記憶能力。最終導(dǎo)致算法能夠接受的序列長度有限,輸入序列達到一定長度時預(yù)測精度會明顯降低。在此方面,本文提出提出在LSTM節(jié)點中構(gòu)建強化門實現(xiàn)對遺忘信息的提取,并與記憶信息按比例選取、融合、輸入記憶單元,增加學習過程中的梯度傳導(dǎo)能力,使網(wǎng)絡(luò)對相對較遠的信息保持敏感以提升記憶能力。
RNN是一種隱層具有自連接關(guān)系的神經(jīng)網(wǎng)絡(luò),每個節(jié)點通過當前時刻的狀態(tài)信息計算輸出,而當前狀態(tài)由上一時刻的狀態(tài)和當前時刻的輸入共同決定,從而實現(xiàn)時序數(shù)據(jù)的記憶。LSTM延續(xù)了RNN的鏈式傳導(dǎo)結(jié)構(gòu),并在RNN的基礎(chǔ)上增加了四種交互層(如圖1所示),input(輸入門)、forget(遺忘門)、output(輸出門)和cell(細胞狀態(tài)),以解決梯度消失問題。每個LSTM節(jié)點包含三個輸入,即上一時刻的節(jié)點狀態(tài)、上一時刻的節(jié)點輸出和當前時刻的輸入。LSTM特有的門結(jié)構(gòu)包含一個非線性激活函數(shù),決定了在節(jié)點之間傳遞的信息量。LSTM通過門結(jié)構(gòu)實現(xiàn)對歷史信息傳遞的控制[29]。
圖1 面向預(yù)測問題的LSTM結(jié)構(gòu)Fig.1 LSTM structure for prediction problems
(1)遺忘門通過自循環(huán)權(quán)重控制前一個過程中狀態(tài)信息的保存。同時通過激活函數(shù)將遺忘門的值限制在0至1之間,控制細胞狀態(tài)以防止記憶飽和[15]。計算公式為:
其中,Wf為循環(huán)權(quán)重,Uf為輸入權(quán)重,bf為偏置,ht-1和xt分別為隱含層的輸出和輸入。
(2)輸入門由sigmoid激活函數(shù)實現(xiàn),輸入單元it按需提取輸入信息C?t以控制序列的輸入。計算公式為:
其中,Ui和Uc為輸入權(quán)重,Wi和Wc為循環(huán)權(quán)重,bi和bc為偏置。
(3)細胞狀態(tài)更新。細胞狀態(tài)Ct用來記錄當前時刻LSTM神經(jīng)網(wǎng)絡(luò)的狀態(tài)。由Ct-1和遺忘門ft的乘積,和輸入門it和C?t的乘積兩部分組成。計算公式為:
其中,°為哈達瑪積[28]。
(4)輸出門將輸入的數(shù)據(jù)經(jīng)過隱藏層計算再通過激活函數(shù)壓縮到0至1進行輸出。計算公式為:
其中,Wo和Uo分別為循環(huán)權(quán)重和輸入權(quán)重,bo為偏置。
(5)隱狀態(tài)通過輸出激活函數(shù)實現(xiàn)預(yù)測。設(shè)輸入序列X=(x0,x1,…,xt),預(yù) 測 結(jié) 果 用y?=( )y?0,y?1,…,y?t表示,計算公式為:
其中,wy為權(quán)重,by為偏置,φ代表LSTM的輸出激活函數(shù)。當輸入序列(x0,x1,…,xt),LSTM模型會生成相應(yīng)的隱狀態(tài)(h0,h1,…,ht),隱狀態(tài)經(jīng)過數(shù)據(jù)激活函數(shù)φ轉(zhuǎn)換為預(yù)測值。
在數(shù)據(jù)持續(xù)輸入的過程中,會出現(xiàn)細胞狀態(tài)飽和現(xiàn)象(細胞狀態(tài)持續(xù)增長導(dǎo)致模型停止記憶新信息),因此Schmidhuber引入遺忘門限制記憶傳遞的程度。但在序列長度超過一定限度時,遺忘門會導(dǎo)致歷史信息丟失。針對長序列數(shù)據(jù)的記憶限制問題,本文提出在LSTM節(jié)點中構(gòu)建強化門實現(xiàn)對遺忘信息Ct-1(f)的提取,并與記憶信息Ct-1(r)按比例選取、融合、輸入記憶單元,增加學習過程中的梯度傳導(dǎo)能力,使網(wǎng)絡(luò)對相對較遠的信息保持敏感以提升記憶能力。
遺忘門控制上一時刻細胞狀態(tài)的傳遞,當輸入序列超出模型接受的限度時,遺忘門會過度發(fā)揮作用將重要信息(歷史信息)過濾。遺忘門的這一性質(zhì)導(dǎo)致LSTM面對長序數(shù)據(jù)會遺忘歷史信息。強化門機制是在遺忘門的基礎(chǔ)上附加了記憶回收模塊,可在輸入長序數(shù)據(jù)時回收部分遺忘的歷史信息。記憶強化結(jié)構(gòu)如圖2所示。
圖2 記憶增強LSTM模型結(jié)構(gòu)圖Fig.2 Structure of memory enhanced LSTM model
將遺忘信息Ct-1(f)的選取比例設(shè)定為W1,記憶信息Ct-1(r)的選取比例設(shè)為W2,引入強化門后記憶單元為:
其中,W3=W2-W1,通過對遺忘信息加權(quán),可使LSTM對遺忘信息保持一定程度的敏感性。將公式(4)展開得:
公式(9)表明,將記憶狀態(tài)按照時間全部展開后,第t個時刻的單元記憶Ct為第i步的輸入記憶C?i經(jīng)歷t-i+1次遺忘求和得到。通過加強每一時刻的輸入記憶C?t,可實現(xiàn)單元記憶Ct的增強。將公式(8)展開如下:其中,ft由sigmoid函數(shù)實現(xiàn),其輸出結(jié)果在0~1。當0 另一方面,LSTM長期記憶的序列長度與梯度值正向相關(guān),遞歸梯度計算是導(dǎo)致梯度消失的原因。LSTM結(jié)構(gòu)設(shè)計為通過Ct進行長期記憶,對進行展開: 其中,function表示復(fù)合函數(shù)。在長序數(shù)據(jù)(尤其是不均衡數(shù)據(jù)集)輸入的條件下,通常取值為0~1,function函數(shù)對其取值影響小于ft。對改進模型梯度展開得: 細胞狀態(tài)Ct通常在時間序列的學習過程中傾向于線性增長,在持續(xù)輸入的情況下,細胞狀態(tài)可能會無限增長,從而導(dǎo)致輸出門的飽和。輸出門飽和將使ht的導(dǎo)數(shù)消失,無法獲取輸入誤差,導(dǎo)致模型停止記憶,故遺忘門取值設(shè)置在0~1,以實現(xiàn)對單元記憶飽和度的控制[15]。因fnew_t輸出結(jié)果在0~1,記憶增強模型不會由于增加記憶信息而導(dǎo)致單元記憶飽和。 實驗選取預(yù)測擬合曲線對比改進模型(記憶增強)S_LSTM與原LSTM模型的預(yù)測能力。隨后對比S_LSTM與多種LSTM模型的預(yù)測誤差隨輸入序列長度的變化,以驗證改進模型的預(yù)測精度。之后評測參數(shù)W1對改進模型S_LSTM預(yù)測誤差與訓(xùn)練時間的影響。最后對比S_LSTM與原LSTM模型訓(xùn)練時間與測試時間隨輸入序列增加的變化趨勢,分析新參數(shù)伴隨的負面效果。 實驗數(shù)據(jù)集取自某器件中的監(jiān)控數(shù)據(jù),單個傳感器按照每20 ms一次的頻率記錄一次數(shù)值,將160個傳感器在同時刻記錄的數(shù)值集合記為一條數(shù)據(jù)。數(shù)據(jù)集包含某時刻起連續(xù)29 h采集的正常數(shù)據(jù)4 000 686條數(shù)據(jù),在0.3 h內(nèi)采集的故障數(shù)56 954條,數(shù)據(jù)集共有160個維度,每個維度表示相應(yīng)的傳感器監(jiān)測值。為平衡正負樣本,本實驗將正常數(shù)據(jù)以20為間隔選取,將數(shù)據(jù)壓縮至200 000條,故障數(shù)據(jù)過濾掉空值過多的項,總數(shù)據(jù)量共計245 463條。 在數(shù)據(jù)采集的過程中,數(shù)據(jù)集質(zhì)量會受環(huán)境因素干擾,采集數(shù)據(jù)的不正當操作以及設(shè)備本身的問題會導(dǎo)致采集的數(shù)據(jù)中存在異常。在訓(xùn)練前先對數(shù)據(jù)進行預(yù)處理。 本文采用min-max歸一化是對原始數(shù)據(jù)的線性變換,變換公式如式(13): 其中,Maxvalue為數(shù)據(jù)中的最大值,Minvalue為數(shù)據(jù)中的最小值,Maxvalue-Minvalue為極差,xi為在數(shù)據(jù)集中所取的數(shù)據(jù),xi′為歸一化后數(shù)據(jù)的大小。 將傳感器編號18S記錄的指標設(shè)為因變量18S,當18S數(shù)值大于170時機器異常,其余指標作為自變量,使用日前向鏈嵌套交叉驗證方法,基于Keras框架搭建LSTM模型實現(xiàn)對故障特征參數(shù)18S的預(yù)測。訓(xùn)練集中因變量18S的數(shù)值如圖3所示,橫坐標為數(shù)據(jù)量,縱坐標表示數(shù)值,以此數(shù)據(jù)分布模擬實際場景中一個訓(xùn)練周期。 圖3 訓(xùn)練集因變量18S度量指標Fig.3 18S metric of training set dependent variable 實驗選取平均絕對誤差(Mean Absolute Error,MAE),均方根誤差(Root Mean Square Error,RMSE)作為模型預(yù)測結(jié)果的評估標準。RMSE是用于測量觀測值與實際值之間的偏差,對非常大或較小誤差的測量高度敏感。MAE與RMSE的計算如下: 圖4 展示了記憶增強模型(S_LSTM)與原模型的預(yù)測結(jié)果,橫坐標表示數(shù)據(jù)量,縱坐標表示參數(shù)數(shù)值。直線線條為測試集因變量18S的值,虛線線條(記憶增強模型)和星狀線條(原模型)為模型預(yù)測的因變量值。因變量在潛在故障時由93變?yōu)?63,發(fā)生故障時由163增長超過170閾值。在正常時序區(qū)間,記憶增強模型的預(yù)測曲線比原LSTM模型的預(yù)測曲線更貼近于真實曲線。在故障時序區(qū),記憶增強模型的預(yù)測誤差為14.45,相對于原模型的預(yù)測誤差(22.51)減少35.8%。 圖4 預(yù)測結(jié)果對比Fig.4 Comparison of prediction results 圖5 給出記憶增強模型(S_LSTM)與其他LSTM模型在預(yù)測過程中的均方根誤差RMSE與平均絕對誤差MAE隨輸入序列長度的變化趨勢對比,對比模型包括LSTM、Attention LSTM、ConvLSTM、BiLSTM、CNNLSTM、CNN-BiLSTM及Attention CNN-LSTM。由圖5(a)的RSME曲線可見,隨輸入序列長度逐漸增加,各模型的均方根誤差均呈持續(xù)增長的趨勢。其中,S_LSTM的RSME曲線整體位于原模型的下方,該現(xiàn)象印證了改進模型記憶能力高于原LSTM模型。而與其他模型的對比中,在0~60序列長度內(nèi),模型組合以增強特征提取能力的表現(xiàn)更明顯,CNN-LSTM、BiLSTM、Attention CNN-LSTM與CNN-BiLSTM的預(yù)測誤差均小于S_LSTM。但是當序列長度增至100時,僅CNN-BiLSTM的預(yù)測能力略優(yōu)于改進模型。在100后,改進模型的誤差曲線最低,這說明在序列長度超過60時,附加其他模型特征提取能力的影響已經(jīng)逐漸弱于LSTM梯度傳導(dǎo)的影響。改進模型面對長序輸入的記憶能力高于其他LSTM模型。平均絕對誤差MAE(圖5(b))的變化趨勢與均方根誤差RMSE類似,但隨序列長度增加,曲線斜率的變化更明顯。圖5(b)中,各模型的誤差曲線斜率均呈現(xiàn)先降低后增加的趨勢。這表明,當輸入序列增加到一定程度(100)時,模型已達到記憶上限。而S_LSTM曲線斜率上升的拐點晚于其他模型,這表明S_LSTM的記憶增強機制發(fā)揮作用,添加強化門機制可使LSTM記憶上限高于其他方法。 圖5 記憶增強模型與其他模型在預(yù)測誤差上比較Fig.5 Comparison of prediction error between memory enhancement model and other models 表1 展示了S_LSTM在不同W1參數(shù)取值下與預(yù)測精度較高的LSTM相關(guān)模型(CNN-LSTM、BiLSTM、Attention CNN-LSTM及CNN-BiLSTM)對比,對比預(yù)測誤差與總訓(xùn)練時間分析S_LSTM的性能。其中序列長度設(shè)置為200,學習率為0.01,L2正則化系數(shù)為0.01,以0.1為間隔在0至1區(qū)間取值。當W1取值為0.2及0.8時RMSE與MAE最小,分別為24.65與14.11,低于原LSTM(33.76與22.51)及其相關(guān)模型。表1中,W1取值從0.1至0.9運行時間無明顯規(guī)律變化,但高于LSTM、CNN-LSTM、CNN-BiLSTM及Attention CNNLSTM??梢?,記憶增強模型的預(yù)測結(jié)果在RMSE、MAE方面均優(yōu)于其他LSTM相關(guān)模型,但訓(xùn)練時間相比LSTM、CNN-LSTM、CNN-BiLSTM及Attention CNNLSTM略微增長。 表1 參數(shù)W1對模型的影響Table 1 Effect of parameter W1 on model 圖6 進一步表現(xiàn)了記憶加強模型(S_LSTM)與原模型(LSTM)訓(xùn)練時間(圖6(a))與測試時間(圖6(b))隨輸入序列的變化(學習率為0.01,L2正則化系數(shù)為0.01)。記憶加強模型與原模型在序列長度為1時訓(xùn)練時間接近,分別為14 s與11 s。隨著序列長度的增長,兩模型的訓(xùn)練時間與測試時間均逐漸上升。記憶增強模型的平均訓(xùn)練時間為599.81 s,較原模型(509.57 s)增長17.71%。記憶加強模型的訓(xùn)練時長與輸入序列長度的增長基本呈線性關(guān)系,而原LSTM模型僅在序列長度低于130區(qū)間內(nèi)表現(xiàn)為線性,之后則呈現(xiàn)急劇增加的趨勢,表明模型的記憶能力與訓(xùn)練時間存在正向關(guān)系。當序列長度達到200時,記憶加強模型和原LSTM模型已基本持平。測試時間方面,引入強化門機制增加參數(shù)計算量,導(dǎo)致記憶增強模型的測試時間整體略高于原模型。 圖6 記憶增強模型與原模型訓(xùn)練時間與測試時間Fig.6 Training time and test time of memory enhancement model and eriginal model 本文提出了一種面向預(yù)測的長短時神經(jīng)網(wǎng)絡(luò)記憶增強機制,通過對神經(jīng)網(wǎng)絡(luò)的節(jié)點結(jié)構(gòu)修改,在遺忘門的基礎(chǔ)上增設(shè)強化門,由原模型只關(guān)注歷史信息的篩選(保留記憶部分),擴展至對遺忘信息提供傳導(dǎo)通道并實現(xiàn)記憶調(diào)節(jié),增加學習過程中的梯度傳導(dǎo)能力從而增強了長短時神經(jīng)網(wǎng)絡(luò)對歷史信息在傳遞過程中的提取能力。實驗表明,改進模型S_LSTM對長序數(shù)據(jù)的預(yù)測精度高于其他LSTM模型。 本文提出的改進方法在LSTM節(jié)點內(nèi)部實現(xiàn),引入新參數(shù)提升記憶能力的方式增加了學習的參數(shù)量,融合其他模型會帶來更大的訓(xùn)練成本。同時復(fù)雜的組合模型容易導(dǎo)致過擬合,需要加大正則系數(shù)。后期將從降低模型復(fù)雜度切入,可通過門控單元合并降低參數(shù)量,或引用卷積提取局部特征,以簡化S_LSTM輸入的特征量,降低運算復(fù)雜度。3 實驗結(jié)果分析
3.1 數(shù)據(jù)集
3.2 數(shù)據(jù)預(yù)處理
3.3 模型搭建
3.4 評價指標
3.5 結(jié)果分析
4 結(jié)語