李建偉 魯一萍 郭 宏
(1.太原科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 太原 030024)(2.太原科技大學(xué)機(jī)械工程學(xué)院 太原 030024)
工業(yè)設(shè)備中,一把刀在監(jiān)測(cè)過程中會(huì)產(chǎn)生幾千萬(wàn)甚至上億的數(shù)據(jù)[1,7],而且生成十分迅速,較難捕捉到異常數(shù)據(jù),刀具的監(jiān)測(cè)往往需要采用實(shí)時(shí)的方法進(jìn)行。傳統(tǒng)工業(yè)中常用的3σ建模方法[1]已經(jīng)不能滿足現(xiàn)有的刀具異常數(shù)據(jù)監(jiān)測(cè)。
目前,異常數(shù)據(jù)的檢測(cè)方法多種多樣,有基于距離的異常檢測(cè)[2],基于密度的異常檢測(cè)[3]等。近幾年也有一些針對(duì)流數(shù)據(jù)的異常處理方法,如基于多分辨率網(wǎng)格的異常檢測(cè)方法[4],基于在線集成學(xué)習(xí)和隔離機(jī)制的流數(shù)據(jù)異常檢測(cè)算法[5~6],基于ST與孤立森林的流數(shù)據(jù)異常檢測(cè)算法[7~8],基于聚類的異常檢測(cè)算法[9],基于稀疏表征的異常點(diǎn)檢測(cè)方法[10]等。
此外,Hassan Sarmadi 等提出一種基于自適應(yīng)馬哈拉諾比斯平方距離和一類稱為AMSD-kNN 的kNN規(guī)則的新穎異常檢測(cè)方法[11],用于在變化的環(huán)境條件下SHM[11],為SHM 創(chuàng)建了一種新穎的無(wú)監(jiān)督學(xué)習(xí)策略,這是針對(duì)一類變化的異常檢測(cè),不是普遍適用的。還有k 近鄰的方法解決查找相似日志數(shù)據(jù)的異常[12],自適應(yīng)的離群值檢測(cè)[13],基于統(tǒng)計(jì)模式的系統(tǒng)調(diào)用跟蹤特征提取方法[14],用于心電檢測(cè)的一維的卷積神經(jīng)網(wǎng)絡(luò)的異常檢測(cè)[15]。
LSTM[16]適用于對(duì)時(shí)間性要求較高的數(shù)據(jù)檢測(cè),因此本文提出一種基于LSTM 的刀具異常檢測(cè)方法。
LSTM最顯著的特征便是可以快速學(xué)習(xí)數(shù)據(jù)的新特點(diǎn),實(shí)時(shí)地調(diào)節(jié)更新網(wǎng)絡(luò),以保證模型的準(zhǔn)確性、有效性。本實(shí)驗(yàn)選擇一個(gè)合適的時(shí)間窗口,將數(shù)據(jù)分組進(jìn)行預(yù)測(cè),利用差值進(jìn)行分布建模,求出閾值,之后進(jìn)行比較,來(lái)直觀地觀察判斷每個(gè)數(shù)據(jù)異常的可能性。
用pt表示t時(shí)刻模型接收到的實(shí)時(shí)數(shù)據(jù),pt是來(lái)自傳感器網(wǎng)絡(luò)采集的傳感器數(shù)據(jù),因此模型的輸入為ptt,ptt+1,ptt+2……為了可以清楚地計(jì)算出每個(gè)異常數(shù)據(jù)的可能性,將每個(gè)數(shù)據(jù)預(yù)測(cè)建模求出一個(gè)值,與閾值進(jìn)行比對(duì)。
LSTM可以通過輸入大量訓(xùn)練的流數(shù)據(jù)進(jìn)行多次迭代來(lái)調(diào)整自身的參數(shù),得到一個(gè)訓(xùn)練數(shù)據(jù)的模型。LSTM網(wǎng)絡(luò)在隱含層中加入了一個(gè)狀態(tài)來(lái)存儲(chǔ)長(zhǎng)期狀態(tài),避免了梯度消失的問題。
LSTM邏輯架構(gòu)示意圖如圖1所示。
圖1 LSTM邏輯架構(gòu)示意圖
首先是遺忘門,它用來(lái)控制LSTM是否讓前一時(shí)刻學(xué)到的信息ct-1通過。然后是輸入門,通過sig?mod 決定哪些值這一層進(jìn)行更新,一個(gè)tanh 層用來(lái)生成新的候選值ct,ct作為當(dāng)前層產(chǎn)生的候選值添加到cell state 中,把這兩部分產(chǎn)生的值結(jié)合來(lái)進(jìn)行更新。ct的更新公式如式(1)所示:
最后是決定模型的輸出,通過sigmod層得到一個(gè)初始輸出,再使用tanh 將值縮放到-1~1 之間,與sigmod得到的輸出逐對(duì)相乘,從而得到模型的輸出ht,ht的計(jì)算公式如式(2)所示:
輸出門和單元狀態(tài)ct共同決定LSTM的輸出。
和其他的神經(jīng)網(wǎng)絡(luò)類似,疊加隱含層可以使得整個(gè)模型更加深入,得到較為準(zhǔn)確的輸出。本文有兩個(gè)隱含層,其堆疊模型如圖2所示。
圖2 LSTM堆疊模型結(jié)構(gòu)
為了解決2.1 節(jié)提出的問題,運(yùn)用LSTM 進(jìn)行刀具數(shù)據(jù)預(yù)測(cè),及時(shí)地調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),避免預(yù)測(cè)不準(zhǔn)確。除此之外,預(yù)測(cè)之后的差值不直接作為與閾值進(jìn)行比較的對(duì)象,而是將差值進(jìn)行正態(tài)分布建模,再依據(jù)差值在分布內(nèi)的概率密度函數(shù)值來(lái)分配當(dāng)前時(shí)刻數(shù)據(jù)的異常值,具有可靠性。
首先將從傳感器采集到的刀具數(shù)據(jù)進(jìn)行預(yù)測(cè)得到預(yù)測(cè)值pt',將pt'與t時(shí)刻的數(shù)據(jù)pt進(jìn)行比較,計(jì)算預(yù)測(cè)差值xt。得到xt后,選擇一個(gè)合適的時(shí)間窗口[t1,t2],計(jì)算這段時(shí)間內(nèi)差值xt的均值和方差,再用求得的均值和方差進(jìn)行正態(tài)分布建模,計(jì)算得到差值xt的概率密度函數(shù)值F(xt),F(xiàn)(xt)為pt的異常值;之后將F(xt)與異常值閾值A(chǔ)S(AS∈[0,1])進(jìn)行比較,大于閾值,則pt屬于異常數(shù)據(jù),否則pt為正常數(shù)據(jù)。
圖3 方法整體流程
實(shí)驗(yàn)共采集了六把刀的數(shù)據(jù),其中用前三把刀的數(shù)據(jù)來(lái)訓(xùn)練LSTM 模型,后三把刀依次送入訓(xùn)練好的模型中,做異常檢測(cè)。閾值A(chǔ)S是由前三把刀的歷史正常數(shù)據(jù)訓(xùn)練得出,具有一定的代表性。
通常情況下,預(yù)測(cè)與實(shí)際的差值xt轉(zhuǎn)換為統(tǒng)一量度的異常值概率密度函數(shù)F(xt),然后將異常值與之前求得的閾值進(jìn)行比較,大于閾值A(chǔ)S的即為異常數(shù)據(jù)。
但是由于數(shù)據(jù)量較大,容易出現(xiàn)概念漂移的現(xiàn)象,正常數(shù)據(jù)和異常數(shù)據(jù)的模式都會(huì)受到一定的影響,單一將差值作為計(jì)算異常值的點(diǎn),會(huì)使得在發(fā)生概念漂移之后的異常數(shù)值不是十分準(zhǔn)確。因此本文選擇一個(gè)合適的時(shí)間窗口,將窗口內(nèi)的差值序列進(jìn)行一個(gè)正態(tài)分布建模,計(jì)算F(xt)。
這樣每個(gè)數(shù)據(jù)的異常分?jǐn)?shù)就取決于t時(shí)刻以及之前的一段時(shí)間的預(yù)測(cè)差值分布,所求得的異常分?jǐn)?shù)可以根據(jù)刀具數(shù)據(jù)的變化而變化,提高了預(yù)測(cè)的準(zhǔn)確性。F(xt)計(jì)算如式(3):
其中μ和σ2是時(shí)間窗口中差值序列的平均值和方差,x是滑動(dòng)窗口里的實(shí)際時(shí)間序列數(shù)據(jù)。
本文選取第n個(gè)異常所在時(shí)間區(qū)間作為建模分布的區(qū)間,維持這個(gè)區(qū)間有利于讓差值序列更符合模擬數(shù)據(jù)的實(shí)時(shí)模式。實(shí)驗(yàn)分別對(duì)后三把刀進(jìn)行了一個(gè)異常檢測(cè),由于初檢測(cè)的時(shí)候,刀具適應(yīng)傳感器需要一定的時(shí)間,所以在檢測(cè)異常的時(shí)候選取中間30s~60s的時(shí)間段作為時(shí)間窗口,AS根據(jù)公式求得0.13789,結(jié)果如圖4~圖6所示。
圖4 第四把刀的異常檢測(cè)
圖5 第五把刀的異常檢測(cè)
圖6 第六把刀的異常檢測(cè)
異常檢測(cè)的結(jié)果表明:LSTM 可以有效預(yù)測(cè)得出當(dāng)前刀具的異常情況,完成了異常數(shù)據(jù)的識(shí)別。
實(shí)驗(yàn)環(huán)境:本文所用的實(shí)驗(yàn)環(huán)境為戴爾筆記本,CPU:Intel 酷睿i7 7700HQ,內(nèi)存32GB,GPU:GeForceGTX1080Ti×4,操作系統(tǒng)為Windows10,開發(fā)環(huán)境為使用Python3.6 語(yǔ)言的jupyter notebook 集成的開發(fā)工具,使用Keras 提供的LSTM 神經(jīng)網(wǎng)絡(luò)模型。
實(shí)驗(yàn)的流程按照數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)歸一化處理、模型的訓(xùn)練、調(diào)參數(shù)、數(shù)據(jù)預(yù)測(cè)以及正態(tài)分布建模幾個(gè)步驟完成,如圖7所示。
圖7 實(shí)驗(yàn)流程圖
數(shù)據(jù)采集:利用太原科技大學(xué)機(jī)械工程實(shí)驗(yàn)室已有的傳感器設(shè)備,采集到六把銑刀的數(shù)據(jù),包括溫度,切削力,振動(dòng)以及噪聲等時(shí)序數(shù)據(jù)。
數(shù)據(jù)預(yù)處理:由于采集到的數(shù)據(jù)在開始的時(shí)候會(huì)有采集失誤,需要對(duì)采集到的原始數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗等操作,得到完整的數(shù)據(jù)。
數(shù)據(jù)標(biāo)準(zhǔn)化處理:由于刀具的切削力、振動(dòng)等參數(shù)同時(shí)作為特征值輸入,一次采集到的數(shù)據(jù)量一般達(dá)到七千萬(wàn),而且不能因?yàn)榈毒邤?shù)據(jù)量過大就對(duì)預(yù)測(cè)影響的比例變大,所以需要對(duì)特征序列進(jìn)行最大-最小標(biāo)準(zhǔn)化處理,處理方式如式(4)所示:
調(diào)參數(shù):在數(shù)據(jù)訓(xùn)練的過程中不斷地調(diào)整網(wǎng)絡(luò)框架結(jié)構(gòu)以及LSTM 層中的參數(shù)值,一直到整個(gè)模型的預(yù)測(cè)效果最佳。
4.2.1 單雙層網(wǎng)絡(luò)對(duì)比
1)首先搭建單層的LSTM 神經(jīng)網(wǎng)絡(luò)和全連接層模型,對(duì)刀具數(shù)據(jù)進(jìn)行預(yù)測(cè),將前兩把刀的數(shù)據(jù)作為訓(xùn)練集,第三把刀的數(shù)據(jù)作為測(cè)試集。慮到模型的準(zhǔn)確度之后,經(jīng)過多次調(diào)試與測(cè)試,將網(wǎng)絡(luò)層中的隱藏神經(jīng)元設(shè)置為64,其實(shí)驗(yàn)結(jié)果如表1 所示。
表1 單層神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果
2)實(shí)驗(yàn)二搭建了兩層的LSTM 網(wǎng)絡(luò)層和全連接層模型,其中第一個(gè)LSTM 層隱藏神經(jīng)元和單層的一樣,第二層設(shè)置為128,采用相同的訓(xùn)練集和測(cè)試集,放到模型中繼續(xù)訓(xùn)練測(cè)試之后,其實(shí)驗(yàn)結(jié)果如表2所示。
表2 雙層神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果
從實(shí)驗(yàn)二的結(jié)果可以看出,兩層LSTM 模型的預(yù)測(cè)性能大大增加,預(yù)測(cè)準(zhǔn)確率也增加了約50%。
除此之外,由文獻(xiàn)[17]可知,適當(dāng)?shù)脑黾由窠?jīng)網(wǎng)絡(luò)層數(shù)可以提高預(yù)測(cè)的準(zhǔn)確率,但是本文在增加了三層神經(jīng)網(wǎng)絡(luò)后,準(zhǔn)確率只提高了不到0.001%,說明不斷增加神經(jīng)網(wǎng)絡(luò)的層數(shù)并不一定能使預(yù)測(cè)的性能達(dá)到改善,相反還增加了計(jì)算的冗余。故而,對(duì)于像刀具數(shù)據(jù)的這種時(shí)間序列來(lái)說,綜合計(jì)算量和預(yù)測(cè)性能,在適當(dāng)?shù)木W(wǎng)路層數(shù)下,可以不必增加網(wǎng)絡(luò)層數(shù)。
最終LSTM 模型使用含有2 個(gè)隱含層,每個(gè)隱含層的神經(jīng)元個(gè)數(shù)分別為128,64,時(shí)間步長(zhǎng)為165。為了避免過擬合現(xiàn)象采用dropout機(jī)制,drop?out設(shè)置為0.2,提高模型整個(gè)的泛化能力。
4.2.2 LSTM算法與PCA降維算法對(duì)比
為了證明LSTM 算法的有效性,將LSTM 算法與本組另一個(gè)PCA 降維算法在最后的預(yù)測(cè)準(zhǔn)確度方面進(jìn)行了對(duì)比,準(zhǔn)確度的計(jì)算如式(5):
pt是原始數(shù)據(jù),pt'是通過預(yù)測(cè)之后的數(shù)據(jù),L是整個(gè)時(shí)間窗口的長(zhǎng)度。準(zhǔn)確度比較結(jié)果如圖8 所示。
圖8 準(zhǔn)確度對(duì)比圖
通過對(duì)比實(shí)驗(yàn)可以發(fā)現(xiàn),LSTM 模型的準(zhǔn)確度高于PCA模型,因此我們最終采用LSTM模型。
本文提出了基于LSTM 的刀具異常數(shù)據(jù)檢測(cè)模型,通過捕獲時(shí)間序列中的關(guān)系,利用差值分布建模得出了閾值與異常值。總體來(lái)說,LSTM 方法準(zhǔn)確度優(yōu)于PCA方法。PCA方法進(jìn)行對(duì)比后,刀具異常數(shù)據(jù)檢測(cè)的準(zhǔn)確率提高了約20%。實(shí)驗(yàn)過程中采集的真實(shí)刀具數(shù)據(jù),進(jìn)一步驗(yàn)證了LSTM 模型的有效性。