曹丹陽,任旭
(北方工業(yè)大學(xué)信息學(xué)院,北京 100144)
近年來,隨著工業(yè)互聯(lián)網(wǎng)的發(fā)展,工業(yè)大數(shù)據(jù)越來越被人們所重視。在工業(yè)生產(chǎn)的環(huán)境下很容易在很少的時(shí)間內(nèi)累積大量的時(shí)間序列數(shù)據(jù),這是因?yàn)楣I(yè)生產(chǎn)很復(fù)雜,傳感器的數(shù)量很多并且獲取傳感器數(shù)據(jù)的頻率很高[1-2]。在生產(chǎn)過程中發(fā)生的某些異常情況將導(dǎo)致工業(yè)設(shè)備的損壞。鋁電解槽在工作過程中如果出現(xiàn)異常可能會(huì)導(dǎo)致電解槽的損壞和生產(chǎn)原料的浪費(fèi),會(huì)大大增加生產(chǎn)的成本。通過實(shí)施早期預(yù)防性維護(hù),及早的發(fā)現(xiàn)異常可以提高設(shè)備的生產(chǎn)效率。工業(yè)時(shí)間序列數(shù)據(jù)具有規(guī)模大,周期長(zhǎng)的特點(diǎn)。為此設(shè)計(jì)一種有效的異常檢測(cè)方法是非常有價(jià)值的課題,這也是本文的工作。
異常,也稱為離群點(diǎn),是指與其他點(diǎn)的區(qū)別很大,從而讓我們懷疑它們產(chǎn)生是遵循不同的機(jī)制[3-4]。大多數(shù)學(xué)者根據(jù)這個(gè)定義和實(shí)際應(yīng)用領(lǐng)域提出了時(shí)間序列異常的概念?,F(xiàn)如今在各種數(shù)據(jù)領(lǐng)域中都包含了異常檢測(cè)的研究,其中包括高維數(shù)據(jù)研究,不確定的流數(shù)據(jù)研究,網(wǎng)絡(luò)數(shù)據(jù)研究和時(shí)間序列數(shù)據(jù)研究[5-9]。其中大量的工作都花費(fèi)在了時(shí)間序列異常檢測(cè)的研究中。在我們統(tǒng)計(jì)的文獻(xiàn)中,總共提出了幾種模型,包括差分整合移動(dòng)平均自回歸(ARIMA),累積求和統(tǒng)計(jì)(CUSUM),指數(shù)加權(quán)移動(dòng)平均值(EWMA),貝葉斯分類器,支持向量機(jī)(SVM),神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)方法等。但是,面對(duì)工業(yè)時(shí)間序列數(shù)據(jù),由于樣本不平衡的問題,傳統(tǒng)的時(shí)間序列異常檢測(cè)方法在效率和準(zhǔn)確率上都無法滿足預(yù)期的要求,因?yàn)檫@些方法都是基于樣本平衡的假設(shè)。在過去的幾年中,許多基于深度學(xué)習(xí)的無監(jiān)督方法被用于異常檢測(cè)研究。許多學(xué)者使用神經(jīng)網(wǎng)絡(luò)建立一個(gè)預(yù)測(cè)模型,然后通過每個(gè)時(shí)間點(diǎn)的預(yù)測(cè)值與實(shí)際值之間的差值來檢測(cè)異常。例如,在正常時(shí)間序列數(shù)據(jù)上建立了基于一種LSTM預(yù)測(cè)模型的異常檢測(cè)方法,通過比較預(yù)測(cè)值和真實(shí)值的殘差來識(shí)別異常。
為了解決這些問題,近期學(xué)者們提出了一些基于重構(gòu)的模型。出現(xiàn)了基于自動(dòng)編碼器(AE)的異常檢測(cè)方法。編碼器學(xué)習(xí)輸入時(shí)間序列的矢量表示,解碼器通過該矢量表示來重建時(shí)間序列?;贏E的方法通過重構(gòu)差異進(jìn)行異常檢測(cè)。 AE是一種代表性的重構(gòu)方法,它是一種將編碼器和解碼器連接起來的網(wǎng)絡(luò)。滑動(dòng)窗口也被應(yīng)用到這種模型來重構(gòu)時(shí)間序列數(shù)據(jù)。隨后,提出了一些基于變分自動(dòng)編碼器(VAE)的時(shí)間序列異常檢測(cè)方法。與AE不同,VAE使用變分推理對(duì)觀測(cè)值的潛在概率分布進(jìn)行建模。最近,Goodfellow等人提出的生成對(duì)抗網(wǎng)絡(luò)(GAN)為類不平衡問題提供了新的解決方案。最初在中提出用于圖像識(shí)別和生成樣本。GAN的基本思想是,它通過具有滿足特定分布(例如:高斯分布)的隨機(jī)數(shù)據(jù)點(diǎn)的生成器來生成原型樣本。在圖像異常檢測(cè)領(lǐng)域,學(xué)者們相應(yīng)地設(shè)計(jì)了一些效果不錯(cuò)的基于GAN的網(wǎng)絡(luò)架構(gòu),例如AnoGAN,BiGAN和GANomaly。這些方法在訓(xùn)練過程中只需要正常樣本,在測(cè)試階段,模型依據(jù)正常樣本與異常樣本之間的區(qū)別來進(jìn)行異常檢測(cè)。從這一點(diǎn)上看,這些基于GAN的方法很擅長(zhǎng)處理樣本不平衡的問題,可以防止模型判斷結(jié)果大部分都是正常樣本的情況。但是在工業(yè)應(yīng)用中,很少見到基于GAN的異常檢測(cè)方法,而且也不能達(dá)到預(yù)期效果。最近,學(xué)者們提出了一種基于GAN的新型工業(yè)時(shí)間序列異常檢測(cè)方法。在生成器和鑒別器中加入LSTM網(wǎng)絡(luò),用于捕獲時(shí)間序列的分布。但是,這個(gè)方法需要在異常階段找到從實(shí)時(shí)空間到潛在空間的最佳映射。尋找最佳映射的優(yōu)化過程會(huì)帶來新的錯(cuò)誤,并且需要很長(zhǎng)時(shí)間,因此系統(tǒng)無法及時(shí)提供預(yù)警。綜上所述,GAN在圖像異常檢測(cè)的領(lǐng)域應(yīng)用很成功,展示了GAN學(xué)習(xí)復(fù)雜的高維圖像分布的能力,以上研究啟發(fā)我們利用GAN學(xué)習(xí)圖像的能力解決工業(yè)異常檢測(cè)問題,特別是對(duì)于沒有異常數(shù)據(jù)的情況。
針對(duì)鋁電解領(lǐng)域中時(shí)間序列樣本的不平衡的問題,我們利用GAN學(xué)習(xí)復(fù)雜的高維圖像分布的能力,提出了一種基于GAN的新型異常檢測(cè)方法。下面我們將介紹這種模型的結(jié)構(gòu)以及訓(xùn)練過程。
圖1 VarP-GAN模型架構(gòu)
本文模型分為兩大部分,整個(gè)網(wǎng)絡(luò)由一個(gè)生成器和一個(gè)鑒別器組成,而生成器由一組自編碼器構(gòu)成。
生成器網(wǎng)絡(luò)中的由一個(gè)編碼器和多個(gè)自編碼器組組成,一組自編碼器由一個(gè)編碼器和一個(gè)譯碼器組成,構(gòu)成模型的生成器,其結(jié)構(gòu)如下所示:
為了增加模型異常檢測(cè)的準(zhǔn)確率和減少模型的訓(xùn)練時(shí)間,自編碼器組的數(shù)量由輸入樣本的維度和稠密度決定,輸入的二維矩陣維度越大,稠密度越高,自編碼器組的數(shù)量就越高。在自編碼器組數(shù)量提升的過程當(dāng)中,雖然模型的精度有所改善,但是也將同時(shí)伴隨著模型訓(xùn)練時(shí)間的加大,所以不能一味地增加數(shù)量,公式(1)中m1的數(shù)量取3,模型由三個(gè)子網(wǎng)絡(luò)組成。
第一個(gè)子網(wǎng)是自編碼器組,生成器學(xué)習(xí)輸入的圖像數(shù)據(jù),并分別通過使用編碼器和解碼器網(wǎng)絡(luò)來重建輸入圖像。自編碼器組由若干個(gè)編碼器和解碼器組成,子網(wǎng)的形式原則如下:生成器G讀取輸入圖像x,其中x∈RW×f×c,并將其轉(zhuǎn)發(fā)到其編碼器網(wǎng)絡(luò)GE。通過分別使用卷積層,batch-norm和leaky ReLU()激活,GE將x壓縮為向量z從而縮小x的大小,其中z∈Rd。卷積層/反卷機(jī)層的數(shù)量取3。
x的潛在表示z也稱為G的bottleneck features,當(dāng)模型訓(xùn)練完成后,z可以認(rèn)為是x的最佳特征表示,并且具有最小維度。生成器網(wǎng)絡(luò)G的解碼器部分GD采用與DCGAN中的生成器相似的體系結(jié)構(gòu),在其中包括反卷機(jī)層,ReLU()激活,batch-norm以及tanh層。這種方法將向量z放大以至于將圖像x重建為。自編碼器組根據(jù)自編碼器的數(shù)量進(jìn)行多次的重建過程,使模型加大異常樣本的重建差異。綜上所述,自編碼器組DE通過多次過程生成圖像,其中。
第二個(gè)子網(wǎng)是編碼器網(wǎng)絡(luò)E,它壓縮由自編碼器組DE重建的圖像。通過不同的參數(shù)化,它具有與GE相同的體系結(jié)構(gòu)細(xì)節(jié)。E將縮小以得到其特征表示。為了方便比較,向量的維度與z的維度相同。該子網(wǎng)是所提出方法的獨(dú)特部分之一。與現(xiàn)有的基于自動(dòng)編碼器的方法不同,在該方法中,通過bottleneck features實(shí)現(xiàn)了潛在矢量的最小化,該子網(wǎng)E明確學(xué)習(xí)了通過參數(shù)化來最小化距離。此外,在測(cè)試階段,通過這種最小化來執(zhí)行異常檢測(cè)。
表1顯示了我們生成對(duì)抗網(wǎng)絡(luò)異常檢測(cè)方法(VarPGAN)的最終結(jié)果,以及基于生成模型的代表性時(shí)間序列異常檢測(cè)方法的最終結(jié)果。 LSTM-AE和LSTM-VAE均使用LSTM網(wǎng)絡(luò)作為基本模塊,其基本參數(shù)與基于LSTM的VAEGAN中的參數(shù)相同。為了更加客觀的比較模型區(qū)分異常數(shù)據(jù)和正常數(shù)據(jù)的能力,我們對(duì)所有方法都使用了相同的閾值、窗口長(zhǎng)度和移動(dòng)步長(zhǎng)選擇策略。如表1所示,相對(duì)于其他的生成模型,我們的方法在SWaT和WADI這種依據(jù)一個(gè)點(diǎn)的數(shù)據(jù)來判別異常的數(shù)據(jù)集來說表現(xiàn)不是很理想,但是在鋁電解領(lǐng)域,需要根據(jù)多個(gè)時(shí)間步長(zhǎng)上的時(shí)間序列數(shù)據(jù)來判別這段時(shí)間是否出現(xiàn)異常,我們的模型性能高于現(xiàn)存的基于生成模型的時(shí)間序列異常檢測(cè)方法。
表1 生成模型結(jié)果比較
在本篇論文中提出了一種可變參數(shù)生成對(duì)抗網(wǎng)絡(luò)時(shí)間序列異常檢測(cè)方法(VarP-GAN)。該方法旨在通過按時(shí)間序列形式收集的鋁電解槽數(shù)據(jù)來判斷設(shè)備是否出現(xiàn)異常?;贕AN的時(shí)間序列異常檢測(cè)方法可以分為兩個(gè)階段。一個(gè)是模型訓(xùn)練階段,其中模型學(xué)習(xí)正常數(shù)據(jù)的分布。另一個(gè)是異常檢測(cè)階段,其中計(jì)算時(shí)間序列的異常得分以識(shí)別異常。VarP-GAN聯(lián)合訓(xùn)練生成器和鑒別器,可以同時(shí)利用編碼器和解碼器的映射能力。同時(shí)避免了異常檢測(cè)階段的優(yōu)化過程,從而可以更快,更準(zhǔn)確地檢測(cè)異常。在基于SWaT,WADI和鋁電解時(shí)間序列數(shù)據(jù)的實(shí)驗(yàn)中,我們的方法在鋁電解數(shù)據(jù)集上具有比其他幾種基于生成模型的時(shí)間序列異常檢測(cè)方法更高的性能。由于移動(dòng)的窗口機(jī)制,某些點(diǎn)的異常分?jǐn)?shù)被計(jì)算了多次,但是準(zhǔn)確性不受異常檢測(cè)階段的異常分?jǐn)?shù)的計(jì)算次數(shù)的影響。為了增加在訓(xùn)練階段用于訓(xùn)練模型的樣本的數(shù)量,我們通常將步長(zhǎng)設(shè)置為小于窗口的長(zhǎng)度。如果時(shí)間序列的長(zhǎng)度足夠長(zhǎng),則可以以窗口長(zhǎng)度為時(shí)間間隔劃分時(shí)間序列。