姚 珺
(銅陵學(xué)院 數(shù)學(xué)與計(jì)算機(jī)學(xué)院,安徽 銅陵 244061)
多變量時(shí)間序列異常檢測(cè)[1]在工業(yè)控制、醫(yī)療診斷、網(wǎng)絡(luò)安全等應(yīng)用領(lǐng)域中被廣泛研究和關(guān)注,旨在通過(guò)構(gòu)建以往時(shí)間序列變化的正常模式,以檢測(cè)數(shù)據(jù)中不符合預(yù)期模式的時(shí)序片段[2]。例如,在網(wǎng)絡(luò)安全領(lǐng)域,通過(guò)監(jiān)測(cè)網(wǎng)絡(luò)流量可有效地檢測(cè)出用戶的異常行為,從而保護(hù)系統(tǒng)免受網(wǎng)絡(luò)攻擊。時(shí)間序列異常檢測(cè)通常會(huì)面臨兩大難題:一是在采集的樣本中,異常數(shù)據(jù)遠(yuǎn)比正常數(shù)據(jù)少;二是樣本標(biāo)簽通常需要由相應(yīng)領(lǐng)域的專家進(jìn)行人工標(biāo)注,但給所有樣本都打上標(biāo)簽很難實(shí)現(xiàn)。因此,僅用正常數(shù)據(jù)即可訓(xùn)練模型的無(wú)監(jiān)督方法更適合時(shí)間序列的異常檢測(cè)。
近年來(lái),生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)[3]備受關(guān)注。作為一種無(wú)監(jiān)督的深度學(xué)習(xí)模型,GAN在高維數(shù)據(jù)建模方面具有優(yōu)勢(shì),因而被廣泛應(yīng)用于時(shí)序數(shù)據(jù)的異常檢測(cè)?;贕AN的異常檢測(cè)方法通常分為兩個(gè)階段:模型訓(xùn)練階段和異常檢測(cè)階段。在訓(xùn)練階段,只使用正常數(shù)據(jù)來(lái)訓(xùn)練模型,逐步學(xué)習(xí)正常時(shí)序數(shù)據(jù)的分布特性,使得訓(xùn)練后的模型能理想地重構(gòu)正常數(shù)據(jù);在測(cè)試階段,以樣本重構(gòu)誤差作為判別依據(jù),重構(gòu)誤差偏大的數(shù)據(jù)被將判定為異常。具體來(lái)說(shuō),根據(jù)模型輸出的異常分?jǐn)?shù)來(lái)判斷樣本是否為異常,且異常分?jǐn)?shù)越高則樣本是異常的可能性就越高。
從重構(gòu)角度出發(fā),按隱空間變量的生成方式,基于GAN的異常檢測(cè)模型大致分為三種:第一種是不使用編碼器(Encoder)生成隱空間變量的方法。與標(biāo)準(zhǔn)GAN一樣,僅通過(guò)生成器和判別器來(lái)構(gòu)造GAN,并對(duì)隨機(jī)生成的隱變量進(jìn)行優(yōu)化,以生成與異常檢測(cè)對(duì)象測(cè)試數(shù)據(jù)最相似的數(shù)據(jù)。代表模型有MADGAN[4],該方法以LSTM-RNN網(wǎng)絡(luò)作為GAN的基本模型來(lái)捕捉多變量時(shí)間序列分布,并設(shè)計(jì)同時(shí)考慮判別損失和重構(gòu)損失的異常分?jǐn)?shù)檢測(cè)。第二種是使用雙向GAN[5](Bidirectional GAN,BiGAN)的方法。BiGAN是在標(biāo)準(zhǔn)GAN中添加編碼器,從而使模型具備學(xué)習(xí)真實(shí)數(shù)據(jù)到隱空間逆映射功能,因此在訓(xùn)練時(shí)可以實(shí)現(xiàn)數(shù)據(jù)空間和隱空間的雙向映射,從而生成用于重建測(cè)試數(shù)據(jù)的隱變量。代表模型有ALAD[6],該方法在特征維度較高的大數(shù)據(jù)集上表現(xiàn)優(yōu)異。第三種是使用自編碼器(Auto-encoder)的方法。該方法通過(guò)自編碼器來(lái)構(gòu)造生成器,與BiGAN一樣,在訓(xùn)練時(shí)可以實(shí)現(xiàn)學(xué)習(xí)數(shù)據(jù)空間與隱空間的雙向映射。代表模型有BeatGAN[7],該方法通過(guò)使用一維CNN或全連接神經(jīng)網(wǎng)絡(luò)來(lái)構(gòu)造自編碼器,有效提高了對(duì)單變量和多變量時(shí)間序列異常檢測(cè)的精度。
由于多變量時(shí)間序列固有的高維復(fù)雜特性,其異常檢測(cè)仍然是一個(gè)很大的挑戰(zhàn)。本文提出了一種基于GAN的多變量時(shí)間序列異常檢測(cè)模型。該模型使用長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)作為基本模塊,生成器采用編碼-解碼結(jié)構(gòu),在模型訓(xùn)練時(shí)可以學(xué)習(xí)數(shù)據(jù)空間和隱空間的雙向映射。因此,在異常檢測(cè)階段無(wú)需對(duì)每個(gè)測(cè)試樣本進(jìn)行隱空間變量?jī)?yōu)化,從而縮短了模型檢測(cè)異常的時(shí)間。此外,在編碼器、解碼器和判別器中均加入一個(gè)多通道注意力(Multi-Channel Attention)[8]層,以學(xué)習(xí)多變量時(shí)間序列時(shí)空上的復(fù)雜依賴關(guān)系,并通過(guò)捕捉時(shí)序數(shù)據(jù)在時(shí)間和空間維度的重要性,從而提升異常檢測(cè)的準(zhǔn)確性。該模型結(jié)合生成器的重構(gòu)損失和判別器的判別損失共同定義的異常分?jǐn)?shù)來(lái)檢測(cè)異常,同時(shí)在公開數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)并驗(yàn)證了本文模型的有效性。
本節(jié)給出了本文所使用的符號(hào)和問(wèn)題定義。X=(…,xt,xt+1,…)∈Rn×d,d>1被稱為多變量時(shí)間序列數(shù)據(jù),其中,n表示時(shí)序數(shù)據(jù)的長(zhǎng)度,xt∈Rd表示t時(shí)刻的時(shí)序向量,d表示時(shí)序向量的維度。
定義1多變量時(shí)間序列片段是指作為待訓(xùn)練或待檢測(cè)的時(shí)序數(shù)據(jù)集合。
本文通過(guò)滑動(dòng)窗口機(jī)制[9]從原始的多變量時(shí)間序列中提取時(shí)間序列片段?;瑒?dòng)窗口包含兩個(gè)屬性:窗口大小w和滑動(dòng)步長(zhǎng)s。將滑動(dòng)窗口與時(shí)序數(shù)據(jù)起始處對(duì)齊,并沿著時(shí)序方向滑動(dòng)。在每次滑動(dòng)后,滑窗選中的數(shù)據(jù)即為一個(gè)時(shí)序片段。Xi=(xt-w+1,…,xt-1,xt)∈Rw×d表示滑窗移動(dòng)了i步后所提取的時(shí)序片段,其中,t表示提取時(shí)序片段中時(shí)序數(shù)據(jù)的結(jié)束時(shí)刻,w表示時(shí)序片段的長(zhǎng)度。給定多變量時(shí)間序列數(shù)據(jù)X的一個(gè)時(shí)間序列片段Xi,則多變量時(shí)間序列異常檢測(cè)的目標(biāo)是得到t時(shí)刻的異常分?jǐn)?shù),該異常分?jǐn)?shù)可反映t時(shí)刻時(shí)序點(diǎn)的異常程度。
針對(duì)多變量時(shí)間序列數(shù)據(jù)的高維度和復(fù)雜性,本文基于GAN提出了一種無(wú)監(jiān)督多變量時(shí)間序列異常檢測(cè)模型。為更好地學(xué)習(xí)時(shí)間序列分布,本文使用LSTM網(wǎng)絡(luò)來(lái)構(gòu)造生成器和判別器以捕捉多變量時(shí)間序列的特征。生成器采用編碼-解碼結(jié)構(gòu),在模型訓(xùn)練時(shí)可以實(shí)現(xiàn)數(shù)據(jù)空間和隱空間的雙向映射。此外,在各網(wǎng)絡(luò)中引入多通道注意力機(jī)制,以捕捉多變量時(shí)序數(shù)據(jù)不同維度的重要性,且學(xué)習(xí)多變量時(shí)間序列在時(shí)間和特征維度上的復(fù)雜依賴關(guān)系。
多變量時(shí)間序列數(shù)據(jù)異常檢測(cè)旨在識(shí)別待測(cè)樣本是否符合一段時(shí)間內(nèi)數(shù)據(jù)的正態(tài)分布,將不符合要求的觀測(cè)結(jié)果視為異常[10]。相關(guān)研究已成功應(yīng)用GAN框架且實(shí)現(xiàn)異常檢測(cè),并驗(yàn)證了利用隱空間來(lái)重建待測(cè)樣本進(jìn)行異常識(shí)別的有效性[4-7]。本文在已有工作基礎(chǔ)上,提出了基于GAN的多變量時(shí)間序列數(shù)據(jù)異常檢測(cè)模型,如圖1所示,整個(gè)網(wǎng)絡(luò)分為兩部分:一個(gè)生成器G和一個(gè)判別器D。其中,生成器G由一個(gè)編碼器GE和一個(gè)解碼器GD組成。異常檢測(cè)方法分為兩個(gè)階段:模型訓(xùn)練階段和異常檢測(cè)階段。
圖1 模型結(jié)構(gòu)
模型訓(xùn)練階段只使用正常樣本進(jìn)行參數(shù)優(yōu)化以學(xué)習(xí)正常數(shù)據(jù)的分布。首先,通過(guò)編碼器GE將經(jīng)過(guò)預(yù)處理的時(shí)序片段Xi映射到隱空間中,并輸出其低維特征Ζ。然后,解碼器GD將隱變量Ζ重構(gòu)回原始數(shù)據(jù)空間,并輸出重構(gòu)樣本最后,將重構(gòu)樣本和原始樣本Xi輸入判別器D來(lái)進(jìn)行正則化處理,對(duì)原始特征和重構(gòu)特征進(jìn)行判別。生成器G和判別器D通過(guò)交替優(yōu)化的方式來(lái)實(shí)現(xiàn)對(duì)抗博弈,最終生成可以近似表示真實(shí)數(shù)據(jù)分布的概率。異常檢測(cè)階段使用訓(xùn)練過(guò)的模型對(duì)測(cè)試樣本進(jìn)行異常檢測(cè)。測(cè)試樣本包含正常數(shù)據(jù)和異常數(shù)據(jù),其預(yù)處理方法跟訓(xùn)練階段相同。具體來(lái)說(shuō),首先將測(cè)試樣本輸入到模型中,然后使用模型輸出的異常分?jǐn)?shù),并根據(jù)預(yù)先設(shè)定的閾值判斷樣本是否異常。本文采用生成器重構(gòu)樣本與原樣本間的誤差和判別損失來(lái)共同定義異常分?jǐn)?shù)。由于模型只使用正常樣本進(jìn)行訓(xùn)練,故沒有學(xué)習(xí)到異常樣本的隱含特征和模式,因此在推理過(guò)程中,異常樣本和其重構(gòu)樣本間的誤差會(huì)非常大。當(dāng)測(cè)試樣本通過(guò)模型輸出的異常分?jǐn)?shù)超過(guò)閾值時(shí),則可將其判斷為異常樣本,從而實(shí)現(xiàn)異常檢測(cè)。
多變量時(shí)間序列中不同時(shí)刻的數(shù)據(jù)之間具有時(shí)間相關(guān)性,而同一時(shí)刻的不同變量之間也具有空間相關(guān)性,充分利用數(shù)據(jù)間的時(shí)空相關(guān)性將更有利于提升異常檢測(cè)的準(zhǔn)確性,從而避免誤判。本文采用文獻(xiàn)[8]的多通道注意力機(jī)制,在編碼器、解碼器和判別器網(wǎng)絡(luò)中均加入一個(gè)Attention層(圖2),分別計(jì)算數(shù)據(jù)中時(shí)間和空間維度的重要性。
圖2 Attention層結(jié)構(gòu)
利用由RNN在過(guò)往時(shí)間序列中提取的特征,分別計(jì)算輸入數(shù)據(jù)時(shí)間和空間維度的重要性。時(shí)間維度的重要性權(quán)重αi可由公式(1)和公式(2)計(jì)算,有
同樣,空間維度的重要性權(quán)重βi可由公式(3)和公式(4),有
與文獻(xiàn)[7]類似,本文通過(guò)自編碼器來(lái)構(gòu)造生成器,其目標(biāo)是通過(guò)編碼和解碼的方式得到重構(gòu)樣本,即使用編碼器將輸入樣本映射到一個(gè)隱空間中,然后使用解碼器憑借隱空間以重建樣本序列。編碼器和解碼器均使用相同結(jié)構(gòu),由3個(gè)子網(wǎng)絡(luò)組成:Attention層、LSTM層和Linear層。LSTM通過(guò)一個(gè)特殊的存儲(chǔ)單元來(lái)學(xué)習(xí)數(shù)據(jù)的遠(yuǎn)程依賴關(guān)系,已廣泛應(yīng)用于學(xué)習(xí)時(shí)間序列的時(shí)間相關(guān)性[4]。同時(shí),Attention層計(jì)算輸入時(shí)序片段的時(shí)間和空間維度的重要性權(quán)重,輸出對(duì)輸入進(jìn)行加權(quán)后的數(shù)據(jù);LSTM層捕捉由Attention層加權(quán)的數(shù)據(jù)特征之間的相關(guān)性和時(shí)間依賴性;Linear層對(duì)LSTM層輸出各時(shí)刻的每個(gè)特征向量進(jìn)行獨(dú)立映射。具體來(lái)說(shuō),給定時(shí)序片段Xi,編碼器GE輸出將Xi映射到隱空間變量Z∈Rw×L。Ζ是Xi的低維特征表示,L是隱變量的維度。給定隱變量Z,解碼器GD輸出,將Z映射回原始數(shù)據(jù)空間,而是Xi的重構(gòu)結(jié)果。
為了訓(xùn)練生成器,本文模型定義了3個(gè)損失函數(shù):對(duì)抗損失、判別損失和重構(gòu)損失。
生成器G需要捕捉輸入樣本的分布,生成盡可能服從真實(shí)數(shù)據(jù)分布的樣本。因此,對(duì)其優(yōu)化的目標(biāo)是希望其能夠生成盡量服從分布p(Xi)的真實(shí)樣本,使得判別器D將不再能區(qū)分樣本是來(lái)自于真實(shí)樣本分布p(Xi)還是來(lái)自于生成器G生成的樣本G(Xi)。對(duì)抗損失La的定義如
式中D(Xi)是判別器D輸出的概率,其表示輸入樣本Xi是真實(shí)樣本的概率。
在GAN中,生成器和判別器為使彼此的損失最小化而相互競(jìng)爭(zhēng),導(dǎo)致訓(xùn)練過(guò)程的穩(wěn)定性降低。本文采用特征匹配(Feature Matching)[11]損失,通過(guò)直接優(yōu)化訓(xùn)練數(shù)據(jù)與生成數(shù)據(jù)之間特征的平方差損失,使得GAN能夠?qū)W到更多的真實(shí)數(shù)據(jù)分布信息以實(shí)現(xiàn)模型訓(xùn)練穩(wěn)定性。判別損失Lf的定義如
式中f(Xi)是判別器D的LSTM 層輸出單元的值。
為使生成器G提供更好的序列重建能力,本文模型使用重構(gòu)損失來(lái)表示X和G(Xi)數(shù)據(jù)間的差異,定義為輸入Xi與生成器輸出的重構(gòu)樣本G(Xi)之間的L1距離。重構(gòu)損失Lr的定義如
在訓(xùn)練過(guò)程中,將以上3個(gè)損失函數(shù)加權(quán)求和,并利用加權(quán)求和后的聯(lián)合損失函數(shù)來(lái)訓(xùn)練模型。聯(lián)合損失函數(shù)LG定義如
式中α、β和γ是調(diào)節(jié)參數(shù),用于確定不同損失函數(shù)的權(quán)重。
本文利用對(duì)抗性訓(xùn)練學(xué)習(xí)給定樣本的數(shù)據(jù)分布,需要同時(shí)訓(xùn)練一個(gè)生成時(shí)間序列數(shù)據(jù)的生成器和一個(gè)學(xué)會(huì)區(qū)分生成的樣本與真實(shí)樣本的判別器。為了有效處理時(shí)間序列數(shù)據(jù),判別器D使用與編碼器類似的架構(gòu),其由4個(gè)子網(wǎng)絡(luò)組成:1個(gè)Attention層、1個(gè)LSTM層和2個(gè)Linear層。網(wǎng)絡(luò)的前三層起到與編碼器相同的作用,不同之處在于第三個(gè)Linear層輸出Rw×1向量,其特征方向被映射為1。最后的全連接層將輸入的特征向量在時(shí)間方向上映射為1,且考慮整個(gè)時(shí)間序列輸入的概率并輸出到判別器。具體來(lái)說(shuō),給定Xi或判別器D識(shí)別輸入是真實(shí)樣本還是由生成器重構(gòu)的樣本,即最大化fD(Xi)和fD(G(Xi))之間的差異,從而有效區(qū)分輸入是真實(shí)樣本或生成樣本,并給出輸入是真實(shí)樣本的概率。判別器損失函數(shù)LD定義如
為了實(shí)現(xiàn)異常檢測(cè),本文采取文獻(xiàn)[4]的異常檢測(cè)策略,即使用生成器生成的樣本與輸入樣本的重構(gòu)損失,以及判別器的判別損失來(lái)共同判定待測(cè)樣本的異常情況。在給定待測(cè)樣本數(shù)據(jù)后,先將其輸入到已訓(xùn)練的GAN模型中并計(jì)算異常分?jǐn)?shù),若異常分?jǐn)?shù)超過(guò)指定閾值,則判定輸入樣本存在異常。對(duì)于測(cè)試樣本Xi,其異常分?jǐn)?shù)A(Xi)定義為
其中λ是權(quán)重調(diào)節(jié)參數(shù)。計(jì)算出所有測(cè)試樣本的異常分?jǐn)?shù)后,應(yīng)用公式(11)對(duì)異常分?jǐn)?shù)進(jìn)行歸一化,將異常分?jǐn)?shù)線性化為0到1的范圍。最終使用產(chǎn)生的異常分?jǐn)?shù)對(duì)測(cè)試樣本進(jìn)行評(píng)估,將得分超過(guò)閾值η的樣本判斷為異常樣本,未超過(guò)的判斷為正常樣本。
實(shí)驗(yàn)選取兩個(gè)公開數(shù)據(jù)集HAR[12](Heterogeneity Activity Recognition)和SWaT[13](Secure Water Treatment)進(jìn)行驗(yàn)證算法的性能。兩個(gè)數(shù)據(jù)集均為多維時(shí)間序列數(shù)據(jù),其中,HAR采集自可穿戴設(shè)備,SWaT采集自安全水處理仿真平臺(tái)。對(duì)兩個(gè)數(shù)據(jù)集分別進(jìn)行了歸一化,使其符合均值為0、標(biāo)準(zhǔn)差為1的高斯分布。所有數(shù)據(jù)集均被劃分成訓(xùn)練集和測(cè)試集,詳細(xì)信息如表1所示。實(shí)驗(yàn)選擇CNN-1D[14]、LSTM-VAE[15]、BeatGAN[9]和MAD-GAN[4]作為基線方法。
表1 異常檢測(cè)數(shù)據(jù)集描述
采用精確率[16](Precision)、召回率[16](Recall)和F1 分?jǐn)?shù)[14]來(lái)評(píng)估所有模型的異常檢測(cè)性能,具體計(jì)算公式如下:
式中TP表示本身是異常樣本,且被模型正確檢測(cè)為異常樣本的數(shù)量;FP表示本身是正常樣本,但被模型錯(cuò)誤地檢測(cè)為異常樣本的數(shù)量;FN表示本身是異常樣本,但被模型錯(cuò)誤地檢測(cè)為正常樣本的數(shù)量。精確率、召回率和F1分?jǐn)?shù)的值越高,則模型性能越好。
為了捕獲數(shù)據(jù)的相關(guān)性,本文采取文獻(xiàn)[17]的策略,通過(guò)滑動(dòng)窗口機(jī)制將訓(xùn)練集與測(cè)試集的時(shí)間序列分別劃分為時(shí)序片段的集合,其中窗口長(zhǎng)度為30,移動(dòng)步長(zhǎng)為10。將步長(zhǎng)設(shè)為小于窗口長(zhǎng)度是為了增加訓(xùn)練樣本數(shù)。實(shí)驗(yàn)中基線模型和本文模型的超參數(shù)配置如:CNN-1D 模型的編碼器包含3 個(gè)一維CNN 層,卷積核大小分別為k1=8,k2=6,k3=4,filter maps 分別為f1=64,f2=128,f3=256。在每個(gè)CNN層之后使用LReLU激活函數(shù)和批量歸一化計(jì)算。解碼器是編碼器的鏡像映射,是使用轉(zhuǎn)置卷積層取代卷積層。LSTM-VAE模型的編碼器和解碼器都包含兩個(gè)隱藏層單元個(gè)數(shù)為16的LSTM層,訓(xùn)練批處理(Batch Size)大小為32。BeatGAN模型的隱變量維度為10。編碼器、解碼器和判別器均由全連接層神經(jīng)網(wǎng)絡(luò)構(gòu)成,其中,編碼器的網(wǎng)絡(luò)層參數(shù)為256-128-32-10,解碼器為10-32-128-256-1530,判別器為256-128-32-1。使用Adam優(yōu)化器對(duì)模型進(jìn)行梯度更新,其學(xué)習(xí)率(Learning Rate)為0.000 1。訓(xùn)練批處理大小為64,總輪數(shù)(Epochs)為300。MAD-GAN 模型的隱變量維度為15。生成器為100 個(gè)單元。LSTM 的層數(shù)為3,單元數(shù)為5。判別器為100個(gè)單元和1層,且用LSTM構(gòu)建,全連接層為1個(gè)單元。生成器使用梯度下降優(yōu)化,學(xué)習(xí)率為0.1。判別器使用Adam優(yōu)化器,學(xué)習(xí)率為0.001。訓(xùn)練批處理大小為500,總輪數(shù)為100。本文模型的隱變量維度為32。每個(gè)中間層的單元數(shù)為128,LSTM層數(shù)為3。使用Adam優(yōu)化器,學(xué)習(xí)率為0.000 2。判別器使用Adam優(yōu)化器,學(xué)習(xí)率為0.000 2。訓(xùn)練批處理大小為100,總輪數(shù)為500。生成器損失函數(shù)的調(diào)節(jié)參數(shù)設(shè)為:α=1、β=0.1和γ=10。實(shí)驗(yàn)環(huán)境基于Windows 10操作系統(tǒng),并使用Pytorch框架來(lái)實(shí)現(xiàn)實(shí)驗(yàn)?zāi)P图八惴?。?shí)驗(yàn)平臺(tái)的硬件環(huán)境:GPU為GTX 760顯存,CPU為Intel i7 4790,內(nèi)存為16 GB,硬盤為1 TB。
在本文模型中,閾值η設(shè)置將直接影響模型檢測(cè)的準(zhǔn)確率。針對(duì)SWaT數(shù)據(jù)集,將閾值η以步長(zhǎng)0.1進(jìn)行增量變化,通過(guò)實(shí)驗(yàn)觀察閾值選擇對(duì)所有評(píng)估指標(biāo)的影響,實(shí)驗(yàn)結(jié)果如圖3 所示。可以看出,在SWaT 數(shù)據(jù)集中,精確率隨著閾值η的增加不斷上升,但F1分?jǐn)?shù)在η大于0.6之后開始呈下降趨勢(shì),且召回率也明顯下降。
圖3 閾值η對(duì)模型性能的影響
使用四種異常檢測(cè)模型與本文模型進(jìn)行對(duì)比實(shí)驗(yàn),對(duì)所有方法都使用相同的窗口長(zhǎng)度和移動(dòng)步長(zhǎng)選擇策略。為讓精確率和F1值都盡可能大,在每一個(gè)數(shù)據(jù)集上找到最優(yōu)F1分?jǐn)?shù)下的檢測(cè)閾值,使得其檢測(cè)結(jié)果在各評(píng)價(jià)指標(biāo)上均表現(xiàn)優(yōu)異,并報(bào)告對(duì)應(yīng)的精確率和召回率。表2對(duì)比了本文模型與各基線模型在兩個(gè)實(shí)驗(yàn)數(shù)據(jù)集上異常檢測(cè)的實(shí)驗(yàn)結(jié)果,可以看出,在實(shí)驗(yàn)條件相同的情況下,比較使用全連接層的CNN-1D和BeatGAN,以及使用LSTM層的LSTM-VAE和MAD-GAN,可以看出以對(duì)抗學(xué)習(xí)方式同時(shí)訓(xùn)練生成器和判別器的異常檢測(cè)模型明顯優(yōu)于非對(duì)抗訓(xùn)練的異常檢測(cè)模型,表明GAN在從數(shù)據(jù)集中捕獲更復(fù)雜的結(jié)構(gòu)和構(gòu)建更精細(xì)的多變量時(shí)間和空間相關(guān)性方面具有優(yōu)勢(shì),同時(shí)也驗(yàn)證了LSTM層對(duì)時(shí)間序列數(shù)據(jù)具有更高的表示能力。與基線模型相比,本文提出的異常檢測(cè)模型在兩種數(shù)據(jù)集上的異常檢測(cè)性能均優(yōu)于其它基線模型。相較于MAD-GAN,對(duì)于HAR數(shù)據(jù)集而言,在精確率、召回率和F1分?jǐn)?shù)上分別提高了7.6%、11.8%和10.4%,對(duì)于SWaT 數(shù)據(jù)集而言,分別提高了0.8%、6.9%和5.2%。這是因?yàn)楸疚哪P筒粌H可以讓LSTM 層準(zhǔn)確捕捉多維時(shí)間序列的特征,還可以讓Attention層捕捉時(shí)序數(shù)據(jù)時(shí)間和空間維度的重要性。
表2 異常檢測(cè)的實(shí)驗(yàn)結(jié)果
本文提出了一種基于GAN的多變量時(shí)間序列無(wú)監(jiān)督異常檢測(cè)方法。該方法采用編碼器和解碼器來(lái)構(gòu)造生成器,實(shí)現(xiàn)了時(shí)間序列數(shù)據(jù)空間和網(wǎng)絡(luò)編碼隱變量空間的雙向映射,從而避免了異常檢測(cè)階段的優(yōu)化過(guò)程。此外,網(wǎng)絡(luò)所采用的注意力機(jī)制使模型能夠?qū)W⒂跁r(shí)序數(shù)據(jù)的重要特征。通過(guò)學(xué)習(xí)多變量時(shí)間序列的空間和時(shí)間關(guān)系并利用聯(lián)合優(yōu)化策略,有助于提升模型的異常檢測(cè)能力?;贖AR和SWaT數(shù)據(jù)集實(shí)驗(yàn)驗(yàn)證了本文模型的有效性,與其他類似方法相比,本文模型展示了更好的異常診斷能力。