周佳航,邢紅杰*
(1.河北大學(xué) 數(shù)學(xué)與信息科學(xué)學(xué)院,河北 保定 071002;2.河北省機器學(xué)習(xí)與計算智能重點實驗室(河北大學(xué)),河北 保定 071002)
在實際生活中,異常檢測模型被廣泛地應(yīng)用于視頻異常檢測、欺詐檢測、醫(yī)療檢測、文本檢測等領(lǐng)域[1-5]。異常檢測問題可被視為“單類分類”任務(wù),即在訓(xùn)練階段,利用僅由正常數(shù)據(jù)構(gòu)成的訓(xùn)練集訓(xùn)練異常檢測模型;在測試階段,由所訓(xùn)練的模型將待測樣本識別為正常數(shù)據(jù)或異常數(shù)據(jù)。常用的異常檢測方法被分為四類[6]:1)基于密度的異常檢測方法;2)基于距離的異常檢測方法;3)基于邊界的異常檢測方法;4)基于重構(gòu)的異常檢測方法。
近年來,深度學(xué)習(xí)得到了廣泛關(guān)注,而基于深度學(xué)習(xí)的異常檢測方法[7]也日益流行起來。作為一種常用的深度學(xué)習(xí)方法,自編碼器(AutoEncoder,AE)被應(yīng)用于許多異常檢測任務(wù)。自編碼器由編碼器和解碼器組成,編碼器從輸入樣本中獲得壓縮后的瓶頸特征;解碼器從瓶頸特征中重構(gòu)樣本?;谧跃幋a器的異常檢測方法僅能學(xué)習(xí)正常數(shù)據(jù)的特征,因此在測試階段對正常數(shù)據(jù)重構(gòu)的效果較好,而對異常數(shù)據(jù)重構(gòu)的效果較差?;谧跃幋a器的異常檢測方法利用上述特點計算異常得分并進行檢測,異常得分高的樣本被視為異常數(shù)據(jù),異常得分低的樣本被視為正常數(shù)據(jù)。
基于自編碼器的異常檢測方法取得了較優(yōu)的檢測性能,然而它在正常數(shù)據(jù)上取得的重構(gòu)誤差與部分異常數(shù)據(jù)的重構(gòu)誤差非常接近,導(dǎo)致這些異常數(shù)據(jù)很難被正確檢測[8]。為解決上述問題,相關(guān)學(xué)者提出許多改進方法。An 等[9]使用變分自編碼器對訓(xùn)練樣本進行建模,提出一種基于變分自編碼器重構(gòu)概率的異常檢測方法,使用數(shù)據(jù)分布的概率度量替代傳統(tǒng)自編碼器的重構(gòu)誤差以區(qū)分正常數(shù)據(jù)和異常數(shù)據(jù)。Sakurada 等[10]將自編碼器用于異常檢測,發(fā)現(xiàn)自編碼器可以通過數(shù)據(jù)在隱藏層的非線性表示很好地區(qū)分正常數(shù)據(jù)和異常數(shù)據(jù)。Xia 等[11]提出基于自編碼器的異常檢測模型,在自編碼器的訓(xùn)練過程中逐步添加判別信息,使內(nèi)點和離群點更加可分,并通過重構(gòu)誤差使內(nèi)點和離群點分離。Zong 等[12]提出一種用于異常檢測的深度自編碼高斯混合模型(Deep Autoencoding Gaussian Mixture Model,DAGMM),利用深度自編碼器生成樣本的低維表示和重構(gòu)誤差,將其輸入高斯混合模型,以端到端的方式聯(lián)合優(yōu)化深度自編碼器和混合模型的參數(shù),并利用估計網(wǎng)絡(luò)即高斯混合模型對樣本進行預(yù)測。受魯棒主成分分析[13]的啟發(fā),Zhou 等[14]提出一種魯棒自編碼器,將訓(xùn)練樣本拆分為正常數(shù)據(jù)和包含離群點以及噪聲的數(shù)據(jù),通過提取正常數(shù)據(jù)的特征和稀疏化包含離群點和噪聲的數(shù)據(jù)來提高自編碼器的魯棒性。Gong 等[15]提出深度自編碼器和內(nèi)存模塊的結(jié)合,稱為記憶增強自編碼器(Memoryaugmented AutoEncoder,MemAE),訓(xùn)練時鼓勵內(nèi)存模塊存儲更多樣的正常數(shù)據(jù)的瓶頸特征,測試時通過樣本的瓶頸特征從內(nèi)存模塊中檢索與其相關(guān)性最大的存儲項進行重構(gòu),由于存儲項全為正常數(shù)據(jù)的瓶頸特征,異常數(shù)據(jù)無法通過存儲項有效重構(gòu),因此可以通過重構(gòu)誤差分類異常數(shù)據(jù)。Lai 等[16]將魯棒子空間恢復(fù)(Robust Subspace Recovery,RSR)層添加到Vanilla 自編碼器中,RSR 層從數(shù)據(jù)的潛在表示中提取子空間,并刪除遠離該空間的數(shù)據(jù),編碼器將數(shù)據(jù)映射到潛在空間,RSR 層從中提取子空間,然后解碼器將子空間映射回原始空間,根據(jù)原始位置和經(jīng)過解碼器映射的位置之間的距離來區(qū)分正常數(shù)據(jù)和異常數(shù)據(jù)。
盡管上述基于自編碼器的異常檢測方法及其改進方法取得了較優(yōu)的檢測性能,但是這些方法的模型結(jié)構(gòu)中僅有一個自編碼器,在訓(xùn)練階段僅能通過最小化自編碼器輸入輸出間的重構(gòu)誤差對編碼器和解碼器中的參數(shù)進行更新,由于訓(xùn)練集僅由正常數(shù)據(jù)構(gòu)成,因此自編碼器無法學(xué)習(xí)到異常數(shù)據(jù)。當異常數(shù)據(jù)與正常數(shù)據(jù)較為相似,或者異常數(shù)據(jù)的重構(gòu)誤差較小時,上述方法則會取得較差的檢測性能。為了解決上述問題,提出一種基于并行雙自編碼器和Transformer 網(wǎng)絡(luò)的異常檢測方法DATN-ND(Novelty Detection method based on Dual Autoencoders and Transformer Network,該方法使用雙自編碼器在最小化重構(gòu)誤差的基礎(chǔ)上添加新的損失函數(shù)來聯(lián)合優(yōu)化自編碼器;Tramsformer 網(wǎng)絡(luò)則將輸入樣本的瓶頸特征變換為與正常數(shù)據(jù)差別較大的瓶頸特征,稱為偽異常瓶頸特征,等同于在訓(xùn)練集中增加了異常數(shù)據(jù)。在訓(xùn)練階段,編碼器將輸入樣本映射到特征空間,Transformer 網(wǎng)絡(luò)將特征空間的瓶頸特征映射到距離輸入樣本特征空間較遠的特征空間,生成偽異常瓶頸特征,通過偽異常瓶頸特征所提供的異常數(shù)據(jù)信息,解碼器將帶有異常數(shù)據(jù)信息的瓶頸特征盡可能映射為正常數(shù)據(jù);在測試階段,當異常樣本經(jīng)過編碼后得到帶有異常數(shù)據(jù)信息的瓶頸特征輸入解碼器時,解碼器會將該瓶頸特征盡可能重構(gòu)為正常數(shù)據(jù),從而提高異常數(shù)據(jù)的重構(gòu)誤差。
自編碼器是一種由編碼器fθE(·)和解碼器gθD(·)構(gòu)成的前饋神經(jīng)網(wǎng)絡(luò),其任務(wù)是使網(wǎng)絡(luò)的輸出盡可能地等于輸入x,即以盡可能小的誤差重構(gòu)輸入。自編碼器中有一個描述樣本非線性表示的隱藏層,樣本的非線性表示稱為瓶頸特征,自編碼器從樣本中學(xué)習(xí)到的瓶頸特征越好,重構(gòu)樣本的能力越強,自編碼器通過最小化x和之間的誤差來更新編碼器和解碼器的參數(shù)以學(xué)習(xí)更好的樣本瓶頸特征,表示如下:
其中:θE和θD是編碼器和解碼器的參數(shù)集;x是輸入樣本,是自編碼器的輸出,即輸入樣本經(jīng)過編碼和解碼之后的重構(gòu)樣本;‖·‖2表示L2 范數(shù)。令z表示自編碼器學(xué)習(xí)到的樣本瓶頸特征,即:
則重構(gòu)樣本可以表示為:
自編碼器重構(gòu)樣本的能力主要依賴于學(xué)習(xí)到的樣本瓶頸特征,但是不同類別的樣本存在不同的特征,假如自編碼器只學(xué)習(xí)了正常數(shù)據(jù)的瓶頸特征,那么它對異常數(shù)據(jù)的重構(gòu)能力就不如正常數(shù)據(jù),導(dǎo)致正常數(shù)據(jù)重構(gòu)的誤差較小而異常數(shù)據(jù)重構(gòu)的誤差較大,所以基于自編碼器的異常檢測方法利用該特性將重構(gòu)誤差作為數(shù)據(jù)的異常得分,根據(jù)異常得分對正常數(shù)據(jù)和異常數(shù)據(jù)進行分類,如圖1 所示。當自編碼器訓(xùn)練完成之后,給定一個輸入樣本x,x的重構(gòu)誤差S(x)即為異常得分,表示為:
圖1 基于自編碼器的異常檢測方法Fig.1 Novelty detection method based on autoencoder
基于自編碼器的異常檢測方法通過該異常得分對樣本進行分類,算法1 和算法2 給出了它的實現(xiàn)過程。
算法1 自編碼器訓(xùn)練。
已有基于自編碼器的異常檢測方法有時在正常數(shù)據(jù)與部分異常數(shù)據(jù)上產(chǎn)生的重構(gòu)誤差非常接近,導(dǎo)致部分異常數(shù)據(jù)很容易被錯分為正常數(shù)據(jù)。為了解決該問題,本文提出了基于雙自編碼器和Transformer 網(wǎng)絡(luò)的異常檢測(DATN-ND)方法。
DATN-ND 的模型由編碼器、解碼器和Transformer 網(wǎng)絡(luò)組成。首先定義輸入樣本域? 和特征域Z,令fE(·):? →Z表示編碼器;fD(·):Z →? 表示解碼器。給定一個輸入樣本x∈?,編碼器將其編碼為瓶頸特征z∈Z;解碼器將z映射到樣本域? 得到輸入樣本x的重構(gòu)樣本,如下所示:
Transformer 網(wǎng)絡(luò)由前饋神經(jīng)網(wǎng)絡(luò)組成,其目的是找到與輸入樣本對應(yīng)的特征空間Z 距離較遠的另一個特征空間Zt,將輸入樣本的瓶頸特征z∈Z 變換成偽異常瓶頸特征zt∈Zt,Transformer 網(wǎng)絡(luò)定義為fT(·):Z →Zt,則有:
由式(7)即可得到與正常數(shù)據(jù)的瓶頸特征z距離較遠的特征空間中的偽異常瓶頸特征zt,因此,zt被視為帶有異常數(shù)據(jù)的瓶頸特征,模型通過得到zt為訓(xùn)練集中增加異常數(shù)據(jù)。
DATN-ND 的模型訓(xùn)練模塊如圖2 所示,模型通過最小化樣本x的重構(gòu)誤差使編碼器E1能夠獲得更好的瓶頸特征,從而通過解碼器D1獲得更優(yōu)的重構(gòu)樣本,表示如下:
圖2 本文方法的訓(xùn)練模塊Fig.2 Training module of proposed method
其中:為重構(gòu)樣本;θE,θD是編碼器、解碼器的參數(shù)集。
為了使Transformer 網(wǎng)絡(luò)獲得遠離正常數(shù)據(jù)特征空間Z的特征空間Zt,并生成帶有異常數(shù)據(jù)信息的偽異常瓶頸特征,通過最大化輸入樣本的瓶頸特征z和其通過Transformer網(wǎng)絡(luò)變換后的瓶頸特征zt之間的誤差來訓(xùn)練Transformer 網(wǎng)絡(luò),表示如下:
其中:θT是Transformer 網(wǎng)絡(luò)的參數(shù)集。
此外,為了使解碼器盡可能將帶有異常數(shù)據(jù)信息的瓶頸特征映射為正常數(shù)據(jù)而非其本身,模型通過最小化和之間的誤差使解碼器D2將變換后的瓶頸特征zt映射為,使與正常數(shù)據(jù)盡可能地相似。表示如下:
綜合考慮式(8)~(11),本文方法的模型訓(xùn)練目標是最小化損失函數(shù):
其中:N為訓(xùn)練樣本個數(shù);α,β,γ分別是各個損失函數(shù)的權(quán)重。圖2 中的編碼器E1、E2和E3采用相同的網(wǎng)絡(luò)結(jié)構(gòu)且參數(shù)共享;解碼器D1和D2使用相同的網(wǎng)絡(luò)結(jié)構(gòu)且參數(shù)共享。
測試模塊如圖3 所示,假設(shè)給定的測試樣本是正常數(shù)據(jù),編碼器將其映射為正常數(shù)據(jù)的瓶頸特征,然后解碼器會將其映射回正常數(shù)據(jù),使正常數(shù)據(jù)獲得較小的重構(gòu)誤差;假設(shè)給定的測試樣本是異常數(shù)據(jù),編碼器將其映射為異常數(shù)據(jù)的瓶頸特征,解碼器會將帶有異常數(shù)據(jù)信息的瓶頸特征盡可能解碼為正常數(shù)據(jù)而非重構(gòu)其本身,使異常數(shù)據(jù)獲得較大的重構(gòu)誤差,因此DATN-ND 方法可以使用樣本的重構(gòu)誤差作為異常得分對樣本進行分類。
圖3 本文方法的測試模塊Fig.3 Test module of proposed method
由于訓(xùn)練階段使用的編碼器結(jié)構(gòu)相同且參數(shù)共享,解碼器亦結(jié)構(gòu)相同且參數(shù)共享,因此測試階段僅需使用訓(xùn)練好的任意一組編碼器和解碼器就可以構(gòu)成圖3 中的模型,并對待測樣本進行分類。給定一個測試樣本xtest,由圖3 中的模型獲得xtest的重構(gòu)樣本,計算xtest的重構(gòu)誤差,并使用該重構(gòu)誤差作為異常得分S(xtest)對xtest進行分類,表示如下:
基于雙自編碼器和Transformer 網(wǎng)絡(luò)的異常檢測方法訓(xùn)練階段和測試階段的算法實現(xiàn)過程如算法3 和算法4 所示。
算法3 DATN-ND 訓(xùn)練。
為了檢驗DATN-ND 方法的性能,與對比方法在4 個數(shù)據(jù)集上進行了實驗對比,并通過消融實驗驗證了DATN-ND中Transformer 網(wǎng)絡(luò)的有效性。使用Adam 優(yōu)化器[17]并設(shè)置學(xué)習(xí)率為10-4對模型進行訓(xùn)練,DATN-ND 損失函數(shù)的權(quán)重參數(shù)α取值為0.1,β取值為0.01,γ取值為-0.000 1,訓(xùn)練階段最大迭代次數(shù)為500,模型分類閾值δ為約登指數(shù)最大時的取值。
實驗使用MNIST[18]、Fashion-MNIST[19]和CIFAR-10[20]圖像數(shù)據(jù)集,都包含10 個類別的圖像。每個數(shù)據(jù)集按順序抽取10 個類別中的一類圖像作為正常數(shù)據(jù),其余類別的圖像作為異常數(shù)據(jù),因此每個圖像數(shù)據(jù)集可構(gòu)造10 個用于異常檢測的數(shù)據(jù)集,所構(gòu)建的異常檢測數(shù)據(jù)集的訓(xùn)練集僅由正常數(shù)據(jù)構(gòu)成,測試集既有正常數(shù)據(jù)也有異常數(shù)據(jù)。
與DATN-ND 對比的方法有:MemAE、自編碼器(AE)、單類支持向量機(One-class Classification Support Vector Machine,OCSVM)[21]、RSR 自編碼器(RSR-based AE,RSRAE)、深度支持向量描述(Deep Support Vector Data Description,Deep SVDD)[22]、深度結(jié)構(gòu)保存支持向量描述(Deep Structure Preservation SVDD,DSPSVDD)[23]、變分自編碼深度支持向量描述(Deep Support Vector Data Description based on Variational AE,Deep SVDD-VAE)[24]、f-AnoGAN(fast unsupervised Anomaly detection with Generative Adversarial Network)[25]、GANomaly[26]、記憶增強生成對抗網(wǎng)絡(luò)(Memory augmented Generative Adversarial Network,MemGAN)[27]、RLDA(Representation Learning with Dual Autoencoder)[28]。
DATN-ND 與AE 使用相同結(jié)構(gòu)的編碼器和解碼器,在灰度圖像數(shù)據(jù)集MNIST 和Fashion-MNIST 上使用全連接網(wǎng)絡(luò)構(gòu)建模型,如表1 所示,其中:FC 代表全連接層,括號里的第1~3 個參數(shù)分別為全連接網(wǎng)絡(luò)的輸入層、輸出層大小與激活函數(shù),none 為沒有激活函數(shù)。
DATN-ND 在彩色圖像數(shù)據(jù)集CIFAR-10 上使用卷積網(wǎng)絡(luò)構(gòu)建模型,如表1 所示,其中:Conv2d 代表卷積層;Dconv2d代表轉(zhuǎn)置卷積層,括號里的第1~4 個參數(shù)分別是卷積核大小、步長、輸入通道數(shù)與輸出通道數(shù)。
表1 模型結(jié)構(gòu)Tab.1 Model structure
測試時,DATN-ND 通過歸一化將重構(gòu)誤差縮放到[0,1]內(nèi),使用重構(gòu)誤差作為異常得分進行異常檢測,并將ROC 曲線下面積(Area Under the Receiver Operating Characteristic curve,AUC)用作評估各方法性能的度量。表2~4 分別展示了由MNIST、Fashion-MNIST、CIFAR-10 圖像數(shù)據(jù)集構(gòu)建的10個異常檢測數(shù)據(jù)集上的AUC 對比結(jié)果。
由表2 可知,對于MNIST 數(shù)據(jù)集,除了類別“2”“3”“8”,DATN-ND 在其余7 個類別的數(shù)據(jù)集上均取得了優(yōu)于其他11種方法的AUC;由表3 可知,對于Fashion-MNIST 數(shù)據(jù)集,除了類別“Coat”“Bag”和“Ankle Boot”,DATN-ND 在其余7 個類別的數(shù)據(jù)集上均取得了優(yōu)于其他11 種方法的AUC;由表3 可知,對 于CIFAR-10 數(shù)據(jù)集,除了類 別“car”“cat”“horse”和“truck”,DATN-ND 在其余6 個類別的數(shù)據(jù)集上均取得了優(yōu)于其他11 種方法的AUC 結(jié)果。與RSRAE、RLDA、MemAE 和AE 這四種基于AE 的異常檢測方法相比,DATN-ND 在所有的數(shù)據(jù)集上均取得了較優(yōu)的性能。因此,由表2~4 可知:1)與傳統(tǒng)的異常檢測方法OCSVM 相比,DATN-ND 的計算能力更強,能夠更好地處理高維復(fù)雜的數(shù)據(jù)。2)與基于深度學(xué)習(xí)的異常檢測方法相比(包括RSRAE、Deep SVDD、DSPSVDD、Deep SVDD-VAE、f-AnoGAN、GANomaly、MemGAN、RLDA、MemAE、AE),DATN-ND 中的Transformer網(wǎng)絡(luò)模塊為僅有正常數(shù)據(jù)的訓(xùn)練階段提供異常數(shù)據(jù),使模型能夠?qū)W習(xí)更多用于判別正常數(shù)據(jù)和異常數(shù)據(jù)的有用信息;另外,DATN-ND 中的雙自編碼器模塊使異常數(shù)據(jù)的重構(gòu)接近正常數(shù)據(jù),提高了異常數(shù)據(jù)的重構(gòu)誤差,提高了模型的檢測性能。針對MNIST、Fashion-MNIST 和CIFAR-10 三個數(shù)據(jù)集上所構(gòu)建的異常檢測數(shù)據(jù)集,DATN-ND 在一些數(shù)據(jù)集上的檢測性能并非最優(yōu),因為Transformer 網(wǎng)絡(luò)模塊的變換方法并不適用于上述所有的異常檢測數(shù)據(jù)集。
表2 不同方法在MNIST圖像數(shù)據(jù)集上的AUC 單位:%Tab.2 AUC for different methods on MNIST image dataset unit:%
表3 不同方法在Fashion-MNIST圖像數(shù)據(jù)集上的AUC 單位:%Tab.3 AUC for different methods on Fashion-MNIST image dataset unit:%
表4 不同方法在CIFAR-10圖像數(shù)據(jù)集上的AUC 單位:%Tab.4 AUC for different methods on CIFAR-10 image dataset unit:%
為直觀地展示DATN-ND 的訓(xùn)練和測試過程,使用MNIST 圖像數(shù)據(jù)集中所構(gòu)造的第10 組異常檢測數(shù)據(jù)集進行訓(xùn)練和測試,即將數(shù)字“9”的圖像用作正常數(shù)據(jù),其余數(shù)字的圖像用作異常數(shù)據(jù)。在訓(xùn)練階段,從數(shù)字“9”的訓(xùn)練圖像中選取前9 個正常數(shù)據(jù)進行展示,如圖4(a)所示。訓(xùn)練樣本對應(yīng)的瓶頸特征z經(jīng)過Transformer 網(wǎng)絡(luò)變換后得到與z距離較遠的特征空間中的瓶頸特征zt,zt可以被視為具有異常數(shù)據(jù)信息的瓶頸特征,解碼器將zt映射為數(shù)字“9”。因此DATNND 能夠通過Transformer 網(wǎng)絡(luò)獲得具有異常數(shù)據(jù)信息的瓶頸特征,并將其解碼為正常數(shù)據(jù)。
在測試階段,從9 個異常類別的測試圖像中分別隨機選取一幅圖像,如圖4(b)所示。假設(shè)給定的測試樣本是異常數(shù)據(jù),編碼器將其映射為異常數(shù)據(jù)的瓶頸特征,因為異常數(shù)據(jù)的瓶頸特征與訓(xùn)練時Transformer 網(wǎng)絡(luò)變換后的具有異常信息的瓶頸特征相似,所以異常數(shù)據(jù)的瓶頸特征通過解碼器映射后的重構(gòu)樣本與正常數(shù)據(jù)相似,而沒有Transformer 網(wǎng)絡(luò)的模型不能達到相同的效果。如圖4(b)所示,異常數(shù)據(jù)通過DATN-ND 模型的重構(gòu)樣本比AE 模型接近正常數(shù)據(jù),使異常數(shù)據(jù)獲得更大的重構(gòu)誤差,更容易被模型識別。
為了驗證DATN-ND 模型擴大異常數(shù)據(jù)與正常數(shù)據(jù)重構(gòu)誤差差別的有效性,將DATN-ND 模型上異常測試樣本與正常測試樣本重構(gòu)誤差之間的差值與AE 上的差值進行對比,如圖5 所示,DATN-ND 模型上異常測試樣本的重構(gòu)誤差與正常測試樣本的重構(gòu)誤差之間的差值更大,因此更易檢測異常數(shù)據(jù)。表5 通過MNIST 數(shù)據(jù)集展示了基于深度學(xué)習(xí)的相關(guān)方法時間對比,由于DAGMM、AE、DATN-ND 均采用全連接網(wǎng)絡(luò),所以優(yōu)于其他方法,而DATN-ND 方法僅次于AE,主要原因是添加了Transformer 網(wǎng)絡(luò),網(wǎng)絡(luò)復(fù)雜性要高于AE。
圖5 正常數(shù)據(jù)與異常數(shù)據(jù)重構(gòu)誤差的差值Fig.5 Difference of reconstruction error between normal data and novel data
表5 MNIST數(shù)據(jù)集上不同方法的時間 單位:sTab.5 Time of different methods on MNIST dataset unit:s
為了進一步驗證DATN-ND 的性能,在網(wǎng)絡(luò)安全數(shù)據(jù)集KDD-CUP99[29]上將它與其他6 種相關(guān)方法OCSVM、DCN(Deep Clustering Network)[30]、DAGMM 的變體PAE、DSEBM(Deep Structured Energy Based Model)[31]、DAGMM 和AE 進行實驗比較,結(jié)果如表6 所示。本實驗中將平均精度(Precision)、召回率(Recall)和F1 度量(F1)用作性能指標,而非AUC,因為文獻[12]中的相關(guān)方法(包括DCN、PAE、DSEBM、DAGMM)采用了這些性能指標。按照文獻[12]的設(shè)置,DATN-ND 只用KDD-CUP99 數(shù)據(jù)集中的正常數(shù)據(jù)對模型訓(xùn)練,KDD-CUP99 數(shù)據(jù)集中只有20%的樣本標記為“正?!?,其余樣本的標記都為“攻擊”,正常數(shù)據(jù)比較少,所以異常檢測任務(wù)中,標記為“正?!钡臉颖颈灰暈楫惓?shù)據(jù),標記為“攻擊”的樣本被視為正常數(shù)據(jù)。訓(xùn)練階段模型從正常數(shù)據(jù)中隨機抽取50%用于訓(xùn)練,剩余50%和異常數(shù)據(jù)用于測試。
從表6 中的結(jié)果可以看出,DATN-ND 的平均精度、召回率和F1 評分均優(yōu)于其他6 種方法。因此,與傳統(tǒng)的異常檢測方法OCSVM 相比,驗證了DATN-ND 的計算能力更強,且能更好地處理高維復(fù)雜的數(shù)據(jù);與基于深度學(xué)習(xí)的異常檢測方法(DCN、PAE、DSEBM、DAGMM 和AE)相 比,驗證了在DATN-ND 中所添加的Transformer 網(wǎng)絡(luò)模塊和雙自編碼器模塊可以為僅存在正常數(shù)據(jù)的訓(xùn)練階段提供異常數(shù)據(jù)的信息,使模型將異常數(shù)據(jù)重構(gòu)為正常數(shù)據(jù),提高異常數(shù)據(jù)的重構(gòu)誤差,有效提高異常檢測的性能。
表6 不同方法在KDD-CUP99數(shù)據(jù)集上的結(jié)果Tab.6 Results of different methods on KDD-CUP99 dataset
為檢驗DATN-ND 中各組成模塊、Transformer 網(wǎng)絡(luò)模塊以及損失函數(shù)權(quán)重取值的有效性,在Fashion-MNIST 數(shù)據(jù)集上進行消融實驗,實驗結(jié)果如表7 所示。
DATN-ND-nonT:即無Transformer 網(wǎng)絡(luò)的DATN-ND。由表7 中的結(jié)果可知,與DATN-ND-nonT 相比,DATN-ND 在10個類別的數(shù)據(jù)集上均取得了更優(yōu)的AUC,驗證了DATN-ND中Transformer 網(wǎng)絡(luò)對于提高檢測性能是有效的。
DATN-ND-nonL:DATN-ND 最大化損失函數(shù)(9)對Transformer 網(wǎng)絡(luò)中的參數(shù)進行優(yōu)化,為了展示損失函數(shù)(9)對DATN-ND 性能的影響,在DATN-ND 的基礎(chǔ)上去除Transformer 網(wǎng)絡(luò)的損失函數(shù)(9)。如表7 所示,與DATN-NDnonL 相比,DATN-ND 在10 個類別的數(shù)據(jù)集上均取得了更優(yōu)的AUC,驗證了DATN-NDTransformer 網(wǎng)絡(luò)的損失函數(shù)(9)對于提高性能的有效性。
DATN-ND-nonE:DATN-ND 有三個編碼器E1、E2和E3,編碼器E2、E3最小化式(11)從存在異常數(shù)據(jù)信息的重構(gòu)樣本中獲取近似正常數(shù)據(jù)的瓶頸特征,使測試階段異常數(shù)據(jù)的重構(gòu)樣本更接近正常數(shù)據(jù),DATN-ND-nonE 表示在DATN-ND 的基礎(chǔ)上去除編碼器E2、E3。如表7 所示,與DATN-ND-nonE 相比,DATN-ND 在10 個類別的數(shù)據(jù)集上均取得了更優(yōu)的AUC值,驗證了DATN-ND 編碼器E2、E3對于提高異常檢測性能的有效性。
表7 Fashion-MNIST數(shù)據(jù)集上消融實驗結(jié)果(AUC)Tab.7 AUC results of ablation experiment on Fashion-MNIST dataset
DATN-ND-sampleT:DATN-ND 利用Transformer 網(wǎng)絡(luò)對輸入樣本的瓶頸特征進行變換以獲取新的瓶頸特征,同樣它也能對輸入樣本進行變換以獲得新的樣本,為了比較兩者的分類性能,用Transformer 網(wǎng)絡(luò)對輸入樣本進行變換,記作DATN-ND-sampleT。由表7 中的結(jié)果可知,與DATN-NDsampleT 相比,DATN-ND 取得了更優(yōu)的AUC 值,因此DATNND 的Transformer 網(wǎng)絡(luò)并未直接對輸入樣本進行變換,而是對輸入樣本的瓶頸特征進行變換。
此外,為了展示損失函數(shù)權(quán)重取值對DATN-ND 分類性能的影響,首先固定β=10-2,γ=-10-4,選取不同的α值,AUC 如圖6(a)所示,當α=10-1時,模型取得最優(yōu)效果;固定α=10-2,γ=-10-4,選取不同的β值,AUC 如圖6(b)所示,當β=10-2時,模型取得最優(yōu)結(jié)果;固定α=10-1,β=10-2,選取不同的γ值,AUC 如圖6(c)所示,當γ=-10-4時,模型取得最優(yōu)效果。因此合理的超參數(shù)取值能夠有效提高模型分類性能,最終DATN-ND 超參數(shù)α取值為10-1,β取值為10-2,γ取值為-10-4。
圖6 分別固定α、β、γ 時的超參性能影響Fig.6 Effect of parameters on performance when fixing α,β or γ
綜上可知,消融實驗驗證了DATN-ND 各組成模塊、Transformer 網(wǎng)絡(luò)模塊以及損失函數(shù)權(quán)重取值能有效提高異常檢測性能。
在解決異常檢測問題時,由于訓(xùn)練集中沒有異常數(shù)據(jù),因此基于自編碼器的異常檢測方法在訓(xùn)練階段無法學(xué)習(xí)異常數(shù)據(jù)的信息,導(dǎo)致檢測性能不佳。本文提出基于雙自編碼器和Transformer 網(wǎng)絡(luò)的異常檢測方法DATN-ND。DATN-ND通過Transformer 網(wǎng)絡(luò)為模型訓(xùn)練階段提供異常數(shù)據(jù)信息,使異常數(shù)據(jù)的重構(gòu)誤差增大,有效提高模型的檢測性能。盡管DATN-ND 在3 個圖像數(shù)據(jù)集取得了較優(yōu)的性能,但是它并不適用于實驗中用到的所有異常檢測數(shù)據(jù)集,在未來的工作中,可以考慮為Transformer 網(wǎng)絡(luò)尋找更優(yōu)的變換方法來解決上述問題。