王德文,潘曉飛,趙紅博
(1.華北電力大學(xué) 控制與計(jì)算機(jī)工程學(xué)院,河北 保定 071003;2.復(fù)雜能源系統(tǒng)智能計(jì)算教育部工程研究中心,河北 保定 071003)
近年來(lái),隨著深度神經(jīng)網(wǎng)絡(luò)迅速發(fā)展,基于深度學(xué)習(xí)的異常檢測(cè)算法變得越來(lái)越流行,它能夠較好地處理復(fù)雜的時(shí)間相關(guān)性并且具有較強(qiáng)的學(xué)習(xí)能力,因此被用于許多時(shí)序數(shù)據(jù)的異常檢測(cè)中[1-3]。
生成對(duì)抗網(wǎng)絡(luò)(generative adversarial network,GAN)在圖像的異常檢測(cè)和生成領(lǐng)域被廣泛應(yīng)用[4],并且GAN和對(duì)抗訓(xùn)練框架已經(jīng)能夠成功地用于生成復(fù)雜和高維分布的真實(shí)數(shù)據(jù)中[5],足以說(shuō)明它可以用于時(shí)序數(shù)據(jù)的異常檢測(cè)。使用GAN進(jìn)行異常檢測(cè)的方法是使用對(duì)抗訓(xùn)練學(xué)習(xí)正常數(shù)據(jù)的特征,檢測(cè)重構(gòu)效果不佳的異常數(shù)據(jù)[6]。
然而,由于時(shí)序數(shù)據(jù)具有高度復(fù)雜的時(shí)間相關(guān)性并且通常缺少標(biāo)簽,現(xiàn)有的異常檢測(cè)模型難以有效提取時(shí)序數(shù)據(jù)的時(shí)間信息,缺乏時(shí)間關(guān)系和特征關(guān)系的結(jié)合,模型檢測(cè)的準(zhǔn)確性不高;模型在訓(xùn)練過(guò)程中不穩(wěn)定,容易發(fā)生訓(xùn)練不穩(wěn)定[7]等問(wèn)題;進(jìn)行異常檢測(cè)時(shí),若使用人為統(tǒng)一設(shè)定的閾值會(huì)影響異常檢測(cè)效果。針對(duì)以上問(wèn)題,本文提出結(jié)合BiLSTM與WGAN-GP的時(shí)序數(shù)據(jù)異常檢測(cè)模型。該模型的生成器和判別器采用BiLSTM來(lái)捕捉時(shí)序數(shù)據(jù)復(fù)雜的時(shí)間相關(guān)性。為保證訓(xùn)練過(guò)程穩(wěn)定性,使用Wasserstein距離代替JS散度的衡量方法,并且在判別器損失中增加梯度懲罰項(xiàng)。最后使用重構(gòu)損失和判別損失的加權(quán)平均值來(lái)定義異常函數(shù),通過(guò)局部自適應(yīng)閾值判別異常,提高異常檢測(cè)的準(zhǔn)確性。
時(shí)序數(shù)據(jù)異常檢測(cè)方法主要包括基于相似度、基于預(yù)測(cè)、基于重構(gòu)3大類方法。
基于相似度的方法有:基于距離度量的KNN(K-nearest-neighbors)算法、基于密度度量的LOF(local outlier factor)算法。然而,這些方法無(wú)法捕捉時(shí)序數(shù)據(jù)之間的時(shí)間相關(guān)性,不適用于時(shí)序數(shù)據(jù)中[8]。
基于預(yù)測(cè)的方法是通過(guò)預(yù)測(cè)未來(lái)值,將預(yù)測(cè)值與預(yù)定義的閾值或者觀測(cè)值相比較來(lái)檢測(cè)異常?;陂L(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)[9]和基于深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)[10]的模型被提出用于預(yù)測(cè)下一個(gè)時(shí)間戳來(lái)發(fā)現(xiàn)時(shí)序數(shù)據(jù)中的異常。
基于重構(gòu)的方法是通過(guò)學(xué)習(xí)一個(gè)模型來(lái)捕捉時(shí)序數(shù)據(jù)的潛在結(jié)構(gòu),將重構(gòu)值與觀測(cè)值的差異進(jìn)行比較檢測(cè)異常。一種基于自動(dòng)編碼器的無(wú)監(jiān)督時(shí)序數(shù)據(jù)的實(shí)時(shí)異常檢測(cè)方法被提出[11],然而,該方法較容易發(fā)生過(guò)擬合問(wèn)題,降低異常檢測(cè)的效果,因此本文采用對(duì)抗學(xué)習(xí)的方式進(jìn)行時(shí)序數(shù)據(jù)的重構(gòu)。
與傳統(tǒng)的方法不同,在缺少標(biāo)簽的情況下,GAN經(jīng)過(guò)訓(xùn)練后的判別器可以判別數(shù)據(jù)的真假,這使得GAN成為一種有吸引力的無(wú)監(jiān)督異常檢測(cè)模型。AnoGAN[12]模型是基于無(wú)監(jiān)督GAN的圖像數(shù)據(jù)異常檢測(cè)方法,該模型使用CNN作為生成器和判別器,將圖像映射到潛在空間并重構(gòu)圖像數(shù)據(jù),使用重構(gòu)圖像的損失來(lái)計(jì)算異常分?jǐn)?shù)。Zenati等[13]提出了稱為EGBAD的異常檢測(cè)方法,該模型使用BiGAN[14]網(wǎng)絡(luò)結(jié)構(gòu),解決了AnoGAN每次接收新圖片需要調(diào)整參數(shù)的問(wèn)題。但是,由于CNN不包含處理時(shí)序數(shù)據(jù)的機(jī)制,AnoGAN和EGBAD方法并不適用于序列數(shù)據(jù)。Li等[5]提出了MAD-GAN模型,該模型將LSTM作為生成器和判別器檢測(cè)異常,通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)LSTM能夠有效地捕捉時(shí)序數(shù)據(jù)的時(shí)間關(guān)系輸入到GAN中。BeatGAN[15]模型將自動(dòng)編碼器(AE)和GAN結(jié)合檢測(cè)異常節(jié)拍。Bashar等[16]提出了一種TAnoGAN異常檢測(cè)方法,結(jié)合LSTM和AnoGAN來(lái)處理時(shí)序數(shù)據(jù)異常問(wèn)題,可以用在只有少量實(shí)例的時(shí)候。馬標(biāo)等[17]提出使用多級(jí)離散小波變換進(jìn)行數(shù)據(jù)預(yù)處理,在GAN模型中加入注意力機(jī)制并使用多層LSTM提取數(shù)據(jù)特征。但是上述幾種方法忽略了原始GAN在訓(xùn)練的過(guò)程中對(duì)超參數(shù)非常敏感,容易造成訓(xùn)練不穩(wěn)定的問(wèn)題[18]。
使用GAN進(jìn)行異常檢測(cè)的研究已經(jīng)有幾年的時(shí)間了,但它在時(shí)序數(shù)據(jù)異常檢測(cè)上的應(yīng)用仍是一個(gè)新興的領(lǐng)域,針對(duì)現(xiàn)有的模型仍存在準(zhǔn)確率不高、訓(xùn)練不穩(wěn)定等問(wèn)題,本文使用能夠保留長(zhǎng)期歷史信息的BiLSTM來(lái)捕獲時(shí)序數(shù)據(jù)特征,使用Wasserstein距離度量真實(shí)數(shù)據(jù)分布與模型擬合分布之間的距離。
圖1 原始數(shù)據(jù)與滑動(dòng)窗口的關(guān)系
本文提出一種BiLSTM與WGAN-GP結(jié)合的時(shí)序數(shù)據(jù)異常檢測(cè)模型,結(jié)構(gòu)如圖2所示。
圖2 BiLSTM-WGAN-GP模型結(jié)構(gòu)
BiLSTM-WGAN-GP時(shí)序數(shù)據(jù)異常檢測(cè)模型主要分為模型訓(xùn)練和異常檢測(cè)兩個(gè)部分。
網(wǎng)絡(luò)模型訓(xùn)練部分的主要目的是通過(guò)對(duì)抗性訓(xùn)練學(xué)習(xí)真實(shí)的數(shù)據(jù)分布,經(jīng)過(guò)足夠多次迭代后訓(xùn)練出能夠產(chǎn)生相似(假)時(shí)序數(shù)據(jù)的生成器(Generator,G)和能夠區(qū)分假時(shí)序數(shù)據(jù)與真時(shí)序數(shù)據(jù)的判別器(Critic,C)。將隨機(jī)噪聲Z輸入到G中,G需要學(xué)習(xí)如何生成相似(假)的樣本騙過(guò)C。然后將生成的時(shí)序數(shù)據(jù)和真實(shí)的時(shí)序數(shù)據(jù)輸入到C中,C需要區(qū)分出真實(shí)樣本和假樣本。為了處理時(shí)序數(shù)據(jù),生成器和判別器均使用BiLSTM作為基礎(chǔ)網(wǎng)絡(luò),BiLSTM的計(jì)算過(guò)程將在2.3.1節(jié)中詳細(xì)闡述。
異常檢測(cè)部分是使用訓(xùn)練好的生成器G和判別器C來(lái)檢測(cè)序列中的異常數(shù)據(jù)。首先將測(cè)試樣本通過(guò)逆映射從潛在空間中找到最合適的隨機(jī)噪聲向量z,然后將最合適的隨機(jī)噪聲向量z輸入到G中,G生成的樣本與真實(shí)樣本的距離定義為重構(gòu)損失;將測(cè)試樣本輸入到判別器C中,輸出得到判別損失。最后利用重構(gòu)損失和判別損失的加權(quán)平均值計(jì)算出異常分?jǐn)?shù),采用局部自適應(yīng)閾值方法找出異常的時(shí)序數(shù)據(jù)。基于BiLSTM-WGAN-GP的時(shí)序數(shù)據(jù)異常檢測(cè)算法如算法1所示。
算法1:基于BiLSTM-WGAN-GP的時(shí)序數(shù)據(jù)異常檢測(cè)算法
輸入:一個(gè)小序列X
輸出:異常分?jǐn)?shù)Score
(1)Function Train(X):
for epochs do
從隨機(jī)噪聲Z中取隨機(jī)噪聲向量z
從真實(shí)樣本分布Pr中取真實(shí)數(shù)據(jù)向量x
Train C//訓(xùn)練判別器C區(qū)分真實(shí)數(shù)據(jù)和生成數(shù)據(jù),更新參數(shù)
Train G//在第二組隨機(jī)噪聲向量上訓(xùn)練生成器G,更新參數(shù)
return G,C
(2)Function AD(X,G,C):
foriin 1 to m do
通過(guò)逆映射從隨機(jī)噪聲中找到最合適的噪聲向量zi
forλin 1 toτdo
生成器生成數(shù)據(jù)向量G(zi)
計(jì)算損失函數(shù)L并通過(guò)梯度下降更新zi
計(jì)算異常分?jǐn)?shù)Score
returnScore
2.3.1 BiLSTM捕獲時(shí)序數(shù)據(jù)相關(guān)性
在本文所提出的模型中,生成器和判別器均將BiLSTM作為基礎(chǔ)網(wǎng)絡(luò)來(lái)捕獲時(shí)序數(shù)據(jù)的時(shí)間相關(guān)性。BiLSTM是以LSTM為基礎(chǔ)的優(yōu)化網(wǎng)絡(luò),包含正向?qū)雍头聪驅(qū)?,其運(yùn)算如圖3所示。
圖3 BiLSTM運(yùn)算
BiLSTM網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)勢(shì)在于可以讓輸出單元同時(shí)包含過(guò)去和未來(lái)序列的數(shù)據(jù)特征,更好地捕捉時(shí)序數(shù)據(jù)的依賴性,能夠保留長(zhǎng)期的歷史信息。其正向?qū)佑?jì)算過(guò)程可以表示為
(1)
(2)
基于以上計(jì)算,則隱藏層輸出為
(3)
2.3.2 生成器
生成器的目的是能夠生成與真實(shí)樣本相似的假數(shù)據(jù)分布來(lái)騙過(guò)判別器。對(duì)于小數(shù)據(jù)集上的訓(xùn)練,淺層的生成器無(wú)法生成足夠相似的假數(shù)據(jù),因此本文采用中等深度的生成器,使用具有64個(gè)隱藏單元的兩層BiLSTM、一層全連接層,采用LeakyRELU作為激活函數(shù),生成器結(jié)構(gòu)如圖4所示。
圖4 生成器結(jié)構(gòu)
(4)
生成器的損失函數(shù)定義為
(5)
式中:pg表示生成樣本分布。
2.3.3 判別器
針對(duì)數(shù)據(jù)集較小的情況,若使用較大的判別器容易發(fā)生過(guò)擬合,因此本文模型的判別器使用一層包含100個(gè)隱藏單元的BiLSTM網(wǎng)絡(luò)。原始的GAN容易發(fā)生訓(xùn)練不穩(wěn)定的問(wèn)題,它的生成器傾向于生成那些被發(fā)現(xiàn)擅長(zhǎng)于愚弄判別器的樣本,不愿意生成有助于獲取時(shí)序數(shù)據(jù)中的其它模式的新樣本。為了克服這個(gè)限制,保證訓(xùn)練過(guò)程的穩(wěn)定性,本文使用Wasserstein距離代替JS散度,并且在判別器的損失中加入梯度懲罰項(xiàng)限制梯度變化范圍。直接計(jì)算真實(shí)樣本分布Pr和生成樣本分布Pg的Wasserstein距離比較困難,因此采用以下方式計(jì)算
(6)
(7)
由于需要擬合Wasserstein距離,去掉了最后一層的Sigmoid函數(shù),采用全連接層來(lái)輸出各類分布的值。判別器的損失函數(shù)定義為
(8)
(9)
δ為0到1之間的一個(gè)隨機(jī)數(shù)。
(1)重構(gòu)損失
(10)
(2)判別損失
原始GAN是完成真假二分類任務(wù),但本文模型采用了WGAN-GP的思想,判別器輸出的是Wasserstein距離,因此本文使用判別器的輸出來(lái)計(jì)算判別損失,定義為
Lc(xn)=f(xn)
(11)
f(·) 表示判別器的輸出。
損失函數(shù)L被定義為重構(gòu)損失LR和判別損失LC的加權(quán)平均值
L(xn)=(1-η)LR(xn)+ηLC(xn)
(12)
η是由經(jīng)驗(yàn)決定的平衡因子。
在每次迭代中,損失函數(shù)L會(huì)估計(jì)生成的假序列和真實(shí)序列的差異,異常評(píng)分函數(shù)Score(x)以表示給定時(shí)間序列X與正常小序列模型的差異,公式如下
Score(xn)=(1-η)R(xn)+ηC(xn)
(13)
為了減少誤報(bào),本文采用Hundman等[9]提出的修剪方法。對(duì)于每個(gè)異常序列,先獲得該異常序列的最大異常分?jǐn)?shù) {Score1,Score2,…,Scorem},然后按照降序排序,計(jì)算下降百分比pi=(Scorei-1-Scorei)/Scorei-1,當(dāng)?shù)谝粋€(gè)Scorei不超過(guò)某個(gè)閾值θ(默認(rèn)θ=0.1)時(shí),后續(xù)的序列則被重新分類為正常序列。
本文所有實(shí)驗(yàn)均在同一環(huán)境及配置下進(jìn)行,見(jiàn)表1。
表1 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)使用numenta anomaly benchmark(NAB)數(shù)據(jù)集[19],NAB數(shù)據(jù)集旨在為時(shí)間序列異常檢測(cè)提供數(shù)據(jù)。該數(shù)據(jù)集分為7類,除去一類不含任何異常的人工數(shù)據(jù)集和一類已知異常原因不含手工標(biāo)簽的數(shù)據(jù)集,本文選取剩下的5類包括多個(gè)領(lǐng)域的時(shí)序數(shù)據(jù)集共45個(gè)數(shù)據(jù)文件(除去一個(gè)不含任何異常的數(shù)據(jù)文件),每個(gè)文件有1000~22 000個(gè)數(shù)據(jù)實(shí)例,每一行包含一個(gè)時(shí)間戳和一個(gè)標(biāo)量值。這5類數(shù)據(jù)集分別是AWS、AdEx、Art、Traffic、Tweets。AWS是AmazonCloudwatch服務(wù)收集的AWS服務(wù)器指標(biāo)數(shù)據(jù)集;AdEx是在線廣告點(diǎn)擊率數(shù)據(jù)集;Art是包含不同類型異常的人工生成的數(shù)據(jù)集;Traffic是由明尼蘇達(dá)州交通部收集的實(shí)時(shí)交通數(shù)據(jù)集;Tweets是Twitter上關(guān)于大型上市公司報(bào)道的數(shù)據(jù)集。
本文提出的方法是基于無(wú)監(jiān)督的方式來(lái)訓(xùn)練模型,也就是說(shuō)沒(méi)有標(biāo)簽,NAB提供的標(biāo)簽僅僅用于比較檢測(cè)的異常來(lái)評(píng)估模型的性能。
本文采用精確率(Precision)、召回率(Recall)、F1分?jǐn)?shù)3項(xiàng)指標(biāo)作為評(píng)估指標(biāo)。
精確率Precision值是針對(duì)識(shí)別為正確的樣本,反映的是模型能正確識(shí)別出樣本類別的程度
(14)
召回率Recall值是針對(duì)實(shí)際樣本,反映的是模型能夠正確識(shí)別出所有樣本類別的程度
(15)
F1分?jǐn)?shù)是調(diào)和平均值,能夠兼顧精確率和召回率的影響,作為評(píng)估模型的主要指標(biāo)
(16)
3.3.1 模型訓(xùn)練過(guò)程分析
本文通過(guò)可視化訓(xùn)練過(guò)程中生成器和判別器的損失函數(shù)的絕對(duì)值來(lái)反映本文提出模型的性能,原始GAN和BiLSTM-WGAN-GP模型訓(xùn)練過(guò)程中的生成器和判別器的損失函數(shù)變化對(duì)比如圖5所示。
圖5 訓(xùn)練損失對(duì)比
圖5顯示了迭代500次模型損失函數(shù)變化對(duì)比,圖中虛線為未使用WGAN-GP的GAN模型損失值變化,實(shí)線為本文提出模型的損失值變化,左圖為生成器損失函數(shù)變化,右圖為判別器損失函數(shù)變化,縱坐標(biāo)為損失值??梢钥闯觯词褂肳GAN-GP的模型在訓(xùn)練過(guò)程中損失值變化浮動(dòng)較大,損失值未收斂。本文所提出模型在訓(xùn)練的剛開(kāi)始階段,判別器能夠比較容易地判別出輸入數(shù)據(jù)的真假,生成器和判別器的損失變化較大;當(dāng)訓(xùn)練次數(shù)在50次之后,生成器逐漸學(xué)習(xí)到部分特征,生成器和判別器的損失函數(shù)的絕對(duì)值呈現(xiàn)下降的趨勢(shì);在訓(xùn)練次數(shù)達(dá)到75次之后,生成器和判別器的損失函數(shù)值變化趨勢(shì)趨于平緩;在訓(xùn)練次數(shù)達(dá)到100次之后,生成器和判別器的損失沒(méi)有較大的波動(dòng)達(dá)到相對(duì)穩(wěn)定且接近0,表示該模型具有了較好的收斂能力,判別器的判別能力在訓(xùn)練過(guò)程中不斷增強(qiáng),生成器能夠生成相似于真實(shí)數(shù)據(jù)的樣本。
3.3.2 滑動(dòng)窗口大小設(shè)置
在BiLSTM-WGAN-GP模型中,使用了滑動(dòng)窗口將長(zhǎng)時(shí)間序列劃分為較短的時(shí)間序列,滑動(dòng)窗口太短則會(huì)無(wú)法很好地捕捉時(shí)序數(shù)據(jù)的特征,同時(shí)也不宜太長(zhǎng)。因此確定出最佳的窗口長(zhǎng)度是該研究中一項(xiàng)重要的問(wèn)題。本文嘗試了不同長(zhǎng)度的窗口大小來(lái)進(jìn)行實(shí)驗(yàn),經(jīng)過(guò)分析,窗口長(zhǎng)度window_length控制在70范圍以內(nèi)即可,以10為間隔進(jìn)行對(duì)比實(shí)驗(yàn),如圖6所示。
圖6 滑動(dòng)窗口大小對(duì)比實(shí)驗(yàn)
由圖6中所顯示的實(shí)驗(yàn)結(jié)果可以看出,當(dāng)窗口長(zhǎng)度window_length為60時(shí),BiLSTM-WGAN-GP模型的各項(xiàng)評(píng)估指標(biāo)均為最好。
3.3.3 實(shí)驗(yàn)結(jié)果
為了分析BiLSTM-WGAN-GP模型的時(shí)序數(shù)據(jù)異常檢測(cè)效果,本文采用LSTM[9]、DeepANT[10]、LSTM-AE[11]、MAD-GAN[3]、TAnoGAN[16]、CNNGAN[12]模型與其進(jìn)行比較,通過(guò)對(duì)比幾種模型在5類數(shù)據(jù)集上的綜合性指標(biāo)F1分?jǐn)?shù)來(lái)驗(yàn)證本文提出模型的性能。對(duì)比結(jié)果見(jiàn)表2。
表2 不同時(shí)序數(shù)據(jù)異常檢測(cè)模型實(shí)驗(yàn)結(jié)果對(duì)比
表2中使用加粗字體顯示了各個(gè)數(shù)據(jù)集中最高的結(jié)果,BiLSTM-WGAN-GP模型同其它幾個(gè)模型相比,F(xiàn)1分?jǐn)?shù)的平均值最高。
LSTM、DeepANT是基于預(yù)測(cè)的方法學(xué)習(xí)時(shí)間序列的歷史變化,對(duì)接下來(lái)的幾個(gè)時(shí)間步長(zhǎng)進(jìn)行預(yù)測(cè),使用逐點(diǎn)預(yù)測(cè)損失定義異常分?jǐn)?shù)。這兩種模型在每個(gè)數(shù)據(jù)集上的F1分?jǐn)?shù)均不如本文提出的模型。LSTM對(duì)上下文異常并不敏感,檢測(cè)準(zhǔn)確性并不高。DeepANT模型在各個(gè)數(shù)據(jù)集上的檢測(cè)結(jié)果均不佳,使用CNN作為預(yù)測(cè)器檢測(cè)異常的效果并不好。
LSTM-AE、MAD-GAN、TAnoGAN、CNNGAN均是基于重構(gòu)的異常檢測(cè)方法。LSTM-AE使用LSTM單元捕捉傳感器之間的時(shí)間依賴性,自動(dòng)編碼器結(jié)構(gòu)用于學(xué)習(xí)數(shù)據(jù)集的正常行為。LSTM-AE在AWS數(shù)據(jù)集上表現(xiàn)最好,但在其它4類數(shù)據(jù)集上異常檢測(cè)效果并不如本文提出的模型,且本文所提出模型的F1分?jǐn)?shù)平均值提升了6.9%。MAD-GAN、TAnoGAN具有與BiLSTM-WGAN-GP相似的架構(gòu)。MAD-GAN是使用LSTM-RNN作為GAN基本架構(gòu)的多元時(shí)序數(shù)據(jù)異常檢測(cè)模型,本文模型的異常檢測(cè)結(jié)果明顯優(yōu)于MAD-GAN模型,所使用的BiLSTM能夠?qū)崿F(xiàn)捕捉上一單元和下一單元的時(shí)序特征。MAD-GAN在面對(duì)數(shù)據(jù)集較小時(shí),異常檢測(cè)效果并不好,適用于數(shù)據(jù)集較大的情況。TAnoGAN同樣是適用于較小數(shù)據(jù)集的異常檢測(cè)模型,使用LSTM作為生成器和判別器的基礎(chǔ)網(wǎng)絡(luò),通過(guò)表中對(duì)比結(jié)果來(lái)看本文所提出模型的F1分?jǐn)?shù)平均值提升了6.2%,且在5類數(shù)據(jù)集上的F1分?jǐn)?shù)均比TAnoGAN模型高。TAnoGAN中使用原始GAN,忽略了可能會(huì)發(fā)生訓(xùn)練不穩(wěn)定的問(wèn)題。CNNGAN模型將CNN作為生成器和判別器的基礎(chǔ)網(wǎng)絡(luò)捕獲時(shí)間依賴性,其結(jié)構(gòu)與AnoGAN[14]相似,該模型在Art數(shù)據(jù)集上檢測(cè)效果最好,但在其它數(shù)據(jù)集上的檢測(cè)效果均不如本文提出的模型,本文模型的F1分?jǐn)?shù)平均值相比較該模型提升了4.2%,這是由于使用CNN作為生成器并不適用于時(shí)序數(shù)據(jù)中。
為了進(jìn)一步驗(yàn)證本文所提出模型的性能,本文模型與使用LSTM作為生成器和判別器的GAN(LSTM-GAN)、使用BiLSTM作為生成器和判別器的GAN(BiLSTM-GAN)、使用LSTM作為生成器和判別器的WGAN-GP(LSTM-WGAN-GP)分別進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)對(duì)比結(jié)果如圖7所示。
圖7 不同模型實(shí)驗(yàn)結(jié)果對(duì)比
從圖中可以看出,僅僅加入BiLSTM之后3項(xiàng)指標(biāo)均有所上升,這是因?yàn)锽iLSTM能夠捕捉過(guò)去和未來(lái)的數(shù)據(jù)特征。單獨(dú)使用WGAN-GP作為基本模型時(shí),可以發(fā)現(xiàn)雖然精確率有所下降但是有更高的召回率,綜合指標(biāo)F1分?jǐn)?shù)也比基礎(chǔ)模型GAN高,驗(yàn)證了本文使用WGAN-GP模型的有效性。本文所提出的BiLSTM-WGAN-GP模型在3個(gè)評(píng)估指標(biāo)上表現(xiàn)均為最好,表明了該模型將BiLSTM與WGAN-GP結(jié)合可以提升異常檢測(cè)效果。
本文提出BiLSTM-WGAN-GP模型用于時(shí)序數(shù)據(jù)異常檢測(cè)。該模型使用BiLSTM作為生成器和判別器的基本模型,用來(lái)捕捉時(shí)間依賴性。使用Wasserstein距離代替JS散度的計(jì)算方法并且在判別器損失中增加梯度懲罰項(xiàng),避免訓(xùn)練不穩(wěn)定等問(wèn)題;將重構(gòu)損失與判別損失相結(jié)合定義異常函數(shù),使用局部自適應(yīng)閾值方法找出異常數(shù)據(jù)。為了驗(yàn)證BiLSTM-WGAN-GP模型有良好的性能,該模型在涉及多個(gè)領(lǐng)域的5類數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),并且與其它方法進(jìn)行了對(duì)比,本文提出的模型有較好的異常檢測(cè)效果。在接下來(lái)的工作中,我們將在模型訓(xùn)練時(shí)間方面繼續(xù)探索,做到在提升模型異常檢測(cè)效果的同時(shí)壓縮模型訓(xùn)練的時(shí)間。