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