周茂袁,伍小雙
(中國民航大學(xué)理學(xué)院,天津 300300)
異常檢測是指識別與預(yù)期行為差異大的數(shù)據(jù),檢測出的數(shù)據(jù)被稱為異常數(shù)據(jù)。隨著科技的不斷發(fā)展,各個領(lǐng)域的數(shù)據(jù)維度不斷激增且數(shù)據(jù)類型也更加復(fù)雜。傳統(tǒng)的異常檢測方法通常是基于主成分分析、最鄰近算法和支持向量機(jī)等模型開展異常檢測,其往往需要手工設(shè)計(jì)特征,且在高維數(shù)據(jù)中常常失敗,因此,對高維數(shù)據(jù)進(jìn)行異常檢測成為相關(guān)學(xué)者研究的重點(diǎn)。深度學(xué)習(xí)通過多層神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)數(shù)據(jù)的內(nèi)在信息,極大地提升了復(fù)雜數(shù)據(jù)的處理能力。因此,深度學(xué)習(xí)常被用于復(fù)雜數(shù)據(jù)的異常檢測任務(wù)中,一般通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)特征表示或異常分?jǐn)?shù)進(jìn)行異常檢測,簡稱深度異常檢測,其性能明顯優(yōu)于傳統(tǒng)的異常檢測方法。已有的異常檢測綜述[1-2]大多是對傳統(tǒng)方法的總結(jié),而較少有針對深度異常檢測的整理研究,對深度異常檢測模型的構(gòu)造思路和方法進(jìn)行梳理有助于深度異常檢測的發(fā)展。
因此,本文基于深度學(xué)習(xí)模型的分類,首先梳理了不同深度異常檢測模型的構(gòu)造原理和發(fā)展脈絡(luò),并分析不同模型的適用范圍、優(yōu)缺點(diǎn);其次介紹了深度異常檢測常用的數(shù)據(jù)集和評估指標(biāo);最后總結(jié)了深度異常檢測面臨的挑戰(zhàn),對其未來的發(fā)展進(jìn)行了展望。
不同領(lǐng)域中對異常有著不同的定義,如異常值、離群值和新穎值等,然而在正常數(shù)據(jù)的低概率區(qū)域檢測異常點(diǎn)時,這3 種定義本質(zhì)上是相同的。因此,在后續(xù)的研究中對異常定義不做區(qū)分,將明顯偏離正常值的數(shù)據(jù)統(tǒng)稱為異常值。異常檢測方法可根據(jù)數(shù)據(jù)集是否帶有標(biāo)簽分為有監(jiān)督、無監(jiān)督和半監(jiān)督3 類,其中標(biāo)簽指的是數(shù)據(jù)正常與否的標(biāo)記。
(1)有監(jiān)督的異常檢測。其是指訓(xùn)練集中所有數(shù)據(jù)都具有標(biāo)簽,但獲取準(zhǔn)確標(biāo)記的訓(xùn)練數(shù)據(jù)集十分困難,一般需要專家手動完成,因此有監(jiān)督的異常檢測應(yīng)用范圍較小。
(2)無監(jiān)督的異常檢測。其是指訓(xùn)練集中只有未標(biāo)記數(shù)據(jù),由于沒有對數(shù)據(jù)標(biāo)簽有任何可用性假設(shè),因此,無監(jiān)督異常檢測應(yīng)用范圍較廣。
(3)半監(jiān)督的異常檢測。其是指訓(xùn)練集中有部分樣本具有標(biāo)簽,當(dāng)有部分?jǐn)?shù)據(jù)可用時可以顯著提高模型的檢測性能,因此,半監(jiān)督異常檢測應(yīng)用范圍也較廣。
在通常的情況下,無監(jiān)督和半監(jiān)督的異常檢測方法較為常用。
目前有多種深度學(xué)習(xí)模型被應(yīng)用于異常檢測,本文將這些深度學(xué)習(xí)模型分為基于生成模型、基于重構(gòu)模型和基于單分類模型3 類,并分別整理3 類深度異常檢測模型的原理和發(fā)展脈絡(luò)。
該類異常檢測模型通過估計(jì)正常數(shù)據(jù)的概率分布來判斷異常,通常采用數(shù)據(jù)的概率密度作為異常的指標(biāo),包括生成對抗網(wǎng)絡(luò)(GAN,generative adversarial network)、變分自編碼器(VAE,variational autoencoder)和標(biāo)準(zhǔn)化流等模型(NF,normalization flow)。
2.1.1 生成對抗網(wǎng)絡(luò)
生成對抗網(wǎng)絡(luò)由生成器和判別器構(gòu)成,通過對抗訓(xùn)練的方式使生成器產(chǎn)生的數(shù)據(jù)服從真實(shí)數(shù)據(jù)分布。通過交替訓(xùn)練過程,判別器能夠更好地判別真實(shí)數(shù)據(jù)和生成數(shù)據(jù),而生成器則通過調(diào)整參數(shù)以欺騙判別器,從而更好地逼近真實(shí)數(shù)據(jù)分布。由于GAN 訓(xùn)練不穩(wěn)定,文獻(xiàn)[3]通過改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)提出了深度卷積生成對抗網(wǎng)絡(luò)(DCGAN,deep convolutional generative adversarial network);文獻(xiàn)[4]提出Wasserstein 生成對抗網(wǎng)絡(luò)(WGAN,Wasserstein generative adversarial network)模型,采用Wasserstein 距離(Wasserstein distance)代替JS 散度(Jensen-Shannon divergence)定義判別器的損失。利用GAN 模型進(jìn)行異常檢測的核心思想是,若測試圖像能由潛在空間中潛在點(diǎn)經(jīng)過生成器生成,則測試圖像為正常數(shù)據(jù),反之為異常數(shù)據(jù)。文獻(xiàn)[5-6]分別在DCGAN 和WGAN 的基礎(chǔ)上提出了生成對抗網(wǎng)絡(luò)異常檢測(AnoGAN,anomaly detection with GANs)模型,通過反向迭代傳播尋找潛在點(diǎn)以進(jìn)行異常檢測,但迭代方法的共同缺點(diǎn)是在檢測時間內(nèi)計(jì)算效率低下。為提高計(jì)算效率,文獻(xiàn)[7-8]分別提出快速生成對抗網(wǎng)絡(luò)異常檢測(f-AnoGAN,fast unsupervised anomaly detection with GANs)模型和基于對抗訓(xùn)練的半監(jiān)督異常檢測(GANomaly,semi-supervised anomaly detection via adversarial training)模型,二者都通過添加顯式編碼網(wǎng)絡(luò)訓(xùn)練尋找潛在點(diǎn)。以上異常檢測模型已經(jīng)應(yīng)用于醫(yī)學(xué)成像和安全檢查等領(lǐng)域中。為了檢測加油站時間序列數(shù)據(jù)中的異常,文獻(xiàn)[9]在GAN 中嵌入了長短期記憶(LSTM,long short-term memory)網(wǎng)絡(luò),使得模型能夠捕捉時間序列數(shù)據(jù)中的非線性關(guān)系,實(shí)現(xiàn)對異常數(shù)據(jù)的檢測,并將模型在加油數(shù)據(jù)集和公開時序數(shù)據(jù)集上進(jìn)行試驗(yàn),取得了較好的結(jié)果,同時驗(yàn)證了該模型的有效性。GAN 的主要問題在于訓(xùn)練困難,但由于GAN 在圖像生成方面表現(xiàn)優(yōu)秀,因此,基于GAN的異常檢測模型在圖像異常檢測方面具有更好的檢測性能。對于其他數(shù)據(jù)類型,GAN 需要與適合處理該數(shù)據(jù)類型的網(wǎng)絡(luò)相結(jié)合,才能具有更好的檢測性能。
2.1.2 變分自編碼器
變分自編碼器是一個深度貝葉斯網(wǎng)絡(luò),模擬了輸入數(shù)據(jù)與潛在變量之間的關(guān)系。其將輸入數(shù)據(jù)進(jìn)行變分推斷以學(xué)習(xí)潛在變量的概率分布,通過生成網(wǎng)絡(luò)學(xué)習(xí)輸入數(shù)據(jù)的近似概率分布,可以從隱變量的概率分布中采樣以生成新的數(shù)據(jù),因此VAE 也是一個生成模型。雖然VAE 可直接計(jì)算出輸入數(shù)據(jù)的概率密度并以此作為異常分?jǐn)?shù),但文獻(xiàn)[10]提出以重建概率作為異常分?jǐn)?shù),此時VAE 的檢測性能會更好?;赩AE 的異常檢測模型已被用于檢測雪崩[11]、人臉驗(yàn)證[12]和視頻異常檢測[13]。分別將VAE 與支持向量機(jī)在人臉數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果表明VAE的檢測性能顯著優(yōu)于支持向量機(jī)的檢測性能。在時間序列數(shù)據(jù)的處理上,LSTM 和門控循環(huán)單元網(wǎng)絡(luò)(GRU,gated recurrent unit networks)具有一定優(yōu)勢。相較于LSTM,GRU 參數(shù)更少、結(jié)構(gòu)簡單,同時過擬合的風(fēng)險更低。因此,文獻(xiàn)[14]提出一種基于門控循環(huán)單元-變分自編碼器(GRU-VAE,gated recurrent unit variational autoencoder)模型的無監(jiān)督航跡異常檢測方法,基于訓(xùn)練集輸出的重構(gòu)損失分布確定置信區(qū)間,以此作為檢測時的閾值,當(dāng)數(shù)據(jù)重構(gòu)誤差超出閾值則檢測為異常,并通過在實(shí)際數(shù)據(jù)集上的實(shí)驗(yàn)成果證明了GRU-VAE 模型在航跡異常檢測方面的優(yōu)秀性能。VAE 的優(yōu)勢在于可天然地生成低維空間,能近似地估計(jì)數(shù)據(jù)的概率密度,因此適用于異常檢測,并能形成新的采樣。但由于VAE 梯度難計(jì)算且訓(xùn)練困難,只能優(yōu)化邊緣似然函數(shù)的下邊界線,因此,其性能相比GAN 較弱。
2.1.3 標(biāo)準(zhǔn)化流
標(biāo)準(zhǔn)化流將一個簡單的概率分布(例如一個標(biāo)準(zhǔn)的正態(tài)分布),通過一個可逆和可微的映射序列轉(zhuǎn)換為一個更復(fù)雜的分布[15]。因此,數(shù)據(jù)的密度函數(shù)也能根據(jù)變量的變化精確地計(jì)算出來,從而可根據(jù)檢測數(shù)據(jù)的概率密度來判斷數(shù)據(jù)異常與否。測試數(shù)據(jù)的概率密度可表示為
式中:pz(z)為基本分布;Jφω(z)為神經(jīng)網(wǎng)絡(luò)φω每一層對變量z 的一階偏導(dǎo)所構(gòu)成的雅可比矩陣。由式(1)可看出,在計(jì)算數(shù)據(jù)的概率密度時,需要計(jì)算網(wǎng)絡(luò)中每一層的雅可比矩陣及其行列式。在數(shù)據(jù)維度較高時,以上計(jì)算需要很大的內(nèi)存空間和計(jì)算時間,因此,為減小計(jì)算所需要的內(nèi)存和時間,通常選擇雅可比矩陣行列式具有特殊結(jié)構(gòu)的流模型,例如上(下)三角形的雅可比矩陣,其行列式為對角線元素的乘積。由此可見,流模型的選擇至關(guān)重要,常見的流模型有自回歸流(autoregressive flow)[16]、耦合流(coupling flow)[17-18]和剩余流(residual flow)[19]?;谝陨狭髂P蛯W(xué)者們提出了許多異常檢測方法,并應(yīng)用在不同領(lǐng)域,例如利用對撞機(jī)尋找新粒子[20]、機(jī)器人的安全導(dǎo)航[21]以及圖像的異常識別與定位[22]等。由于能直接計(jì)算概率密度,并且能從中進(jìn)行采樣,所以標(biāo)準(zhǔn)化流能直接用于異常檢測。但由于其網(wǎng)絡(luò)性質(zhì)特殊,沒有對數(shù)據(jù)進(jìn)行降維,從而不能用于有效維度比圖片維度小的數(shù)據(jù)。
重構(gòu)模型應(yīng)用于異常檢測的基本思路是,通過學(xué)習(xí)一個模型,并使其能有效地重構(gòu)正常數(shù)據(jù),不能由該模型準(zhǔn)確重構(gòu)的數(shù)據(jù)則為異常數(shù)據(jù)。深度學(xué)習(xí)中最為熟知的重構(gòu)模型是自動編碼器(AE,autoencoder),下文將詳細(xì)介紹AE 常用于異常檢測的變體及其在異常檢測方面的應(yīng)用。
2.2.1 深度自編碼器
深度自編碼器(deep autoencoder)由編碼器和解碼器組成,其中數(shù)據(jù)經(jīng)過編碼器后輸出的隱變量是數(shù)據(jù)的低維潛在表示,使得AE 學(xué)習(xí)到數(shù)據(jù)中的有效信息,采用最小化重構(gòu)誤差訓(xùn)練網(wǎng)絡(luò)并以此作為異常指標(biāo)。文獻(xiàn)[23]提出魯棒深度自動編碼器(RDA,robust deep autoencoder),將數(shù)據(jù)分割為能被深度自動編碼器有效重建的部分和噪聲部分,以此消除異常值和噪聲,且無須訪問任何干凈的訓(xùn)練數(shù)據(jù)。文獻(xiàn)[24]提出采用兩個編碼器分別捕獲空間和時間的信息表示,對視頻數(shù)據(jù)進(jìn)行異常檢測。相比于基本的自編碼器,深度自編碼器具有更好的特征提取能力,且能與其他網(wǎng)絡(luò)結(jié)構(gòu)融合處理不同類型的數(shù)據(jù)。
2.2.2 去噪自動編碼器
去噪自動編碼器[25](DAE,denoising autoencoder)采用去噪,即清理部分損壞的輸入,從損壞的輸入中獲得好的特征表示,并有助于恢復(fù)相應(yīng)干凈的輸入。這減少了對干凈數(shù)據(jù)的依賴,還可將多個去噪自編碼器連接起來,形成堆疊去噪自編碼器(SDAE,stacked denoising autoencoders)。文獻(xiàn)[26]將DAE 與雙向長短時記憶網(wǎng)絡(luò)(Bi-LSTM,bi-directional long short-term memory)結(jié)合用于檢測聲學(xué)異常值,撤銷輸入數(shù)據(jù)損壞過程對檢測結(jié)果的影響,模型在真實(shí)音頻數(shù)據(jù)上的精度、召回率和f-測量值方面均展現(xiàn)了優(yōu)秀的性能,分別達(dá)到94.7%、92.0%和93.4%。SDAE 具有深度非線性映射,可以捕獲更多的隱藏信息和高階特征,并對原始數(shù)據(jù)進(jìn)行穩(wěn)健的重構(gòu),文獻(xiàn)[27]將其應(yīng)用于風(fēng)力渦輪機(jī)的異常檢測中,具有很好的效果。
2.2.3 對抗自編碼器
基于AE 的異常檢測模型的優(yōu)點(diǎn)在于其對于不同類型的數(shù)據(jù)是簡單和通用的,檢測異常的邏輯清晰易懂。但除DAE 外,其他基于AE 的異常檢測具有的共同不足之處可能是因?yàn)椴怀R姷囊?guī)律或訓(xùn)練集中的異常值,使得學(xué)習(xí)到的特征表示出現(xiàn)偏差,因此在訓(xùn)練的過程中需要比較干凈的正常數(shù)據(jù),以減少噪聲和異常帶來的影響。另一問題是網(wǎng)絡(luò)訓(xùn)練的目標(biāo)是關(guān)于數(shù)據(jù)降維的,然后對數(shù)據(jù)進(jìn)行重建,并通過此過程學(xué)習(xí)數(shù)據(jù)特征。但學(xué)到的特征是否適用于異常檢測的特征還有待考量,可通過在模型訓(xùn)練過程中添加有關(guān)異常檢測特征的篩選來進(jìn)行改進(jìn)。
單分類方法避免直接計(jì)算數(shù)據(jù)的概率密度,而是學(xué)習(xí)了一個決策邊界,將正常數(shù)據(jù)與其他數(shù)據(jù)進(jìn)行分隔。經(jīng)典的單分類方法包括基于核的單支持向量機(jī)(OC-SVM,one-class SVM)和支持向量描述(SVDD,support vector data description),兩者均利用核函數(shù)將數(shù)據(jù)映射到更高維的空間,使其具有更好的緊湊性,最后分別采用最優(yōu)超平面和超球面對數(shù)據(jù)進(jìn)行劃分。深度學(xué)習(xí)的單分類方法的損失函數(shù)通常受OC-SVM 和SVDD 的啟發(fā),或利用正則化技術(shù)使傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練更適合單分類。
2.3.1 單類神經(jīng)網(wǎng)絡(luò)
單類神經(jīng)網(wǎng)絡(luò)[33](OC-NN,one class neural network)利用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)了OC-SVM 等效的損失函數(shù)。OCNN 結(jié)合了深度網(wǎng)絡(luò)逐步提取豐富數(shù)據(jù)表示的能力與單類目標(biāo),得到了將所有正常數(shù)據(jù)點(diǎn)從原點(diǎn)分離出來的超平面。文獻(xiàn)[34]提出了基于卷積神經(jīng)網(wǎng)絡(luò)的單分類方法(OC-CNN,one class convolutional neural network),并在人臉身份識別[35]和視覺異常檢測[36]的數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),驗(yàn)證了該方法的有效性。OC-NN 利用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)了異常檢測的目標(biāo),使特征學(xué)習(xí)更高效,并同時解決了傳統(tǒng)模型維度災(zāi)難的問題;但當(dāng)數(shù)據(jù)維度過大時,其網(wǎng)絡(luò)訓(xùn)練時間可能過長,因此需要提升網(wǎng)絡(luò)訓(xùn)練的效率。
2.3.2 深度支持向量描述
深度支持向量描述[37](Deep-SVDD,deep support vector data description)是將深度學(xué)習(xí)和SVDD 模型結(jié)合起來提出的異常檢測模型,其使用一個聯(lián)合訓(xùn)練的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)數(shù)據(jù)特征和單分類的目標(biāo),將數(shù)據(jù)映射到一個包含正常數(shù)據(jù)且體積最小的超球面。為解決閾值問題,文獻(xiàn)[38]提出了自動閾值深度SVDD(ATDSVDD,auto-threshold deep support vector data description)模型,用于檢測網(wǎng)絡(luò)防火墻的異常攻擊。文獻(xiàn)[39]提出加權(quán)Deep-SVDD(WDSVDD,weighted deep support vector data description)模型,將Deep-SVDD 引入工業(yè)故障檢測領(lǐng)域。為解決異常數(shù)據(jù)的多樣性問題,文獻(xiàn)[40]提出將隱自回歸流(MAF,masked autoregressive flow)模型與Deep-SVDD 模型結(jié)合起來以檢測高能物理數(shù)據(jù)中的異常。Deep-SVDD 模型還被應(yīng)用于金融欺詐[41]和網(wǎng)絡(luò)入侵[42]等領(lǐng)域的異常檢測中,均克服了類不平衡的問題,并具有很好的檢測性能。但由于Deep-SVDD是通過學(xué)習(xí)正常類的特征來找到合適的超球面,從而形成正常類的邊界,但在正常類不止一類時,Deep-SVDD 就不再適用,模型參數(shù)的設(shè)置也直接影響了模型的檢測性能。
2.3.3 深度半監(jiān)督異常檢測
在490nm處測定吸光值,以葡萄糖的濃度(mg/ml)為橫坐標(biāo),吸光度A為縱坐標(biāo),繪制標(biāo)準(zhǔn)曲線,得到回歸方程:y=8.7149x-0.0087r=0.9996.
深度半監(jiān)督異常檢測[43](Deep-SAD,deep semisupervised anomaly detection)將無監(jiān)督的Deep-SVDD 方法推廣到了半監(jiān)督的異常檢測,其對標(biāo)記的異常數(shù)據(jù)到中心距離的倒數(shù)進(jìn)行懲罰,使得異常數(shù)據(jù)的潛在分布具有高熵并被映射到離中心更遠(yuǎn)的地方。文獻(xiàn)[44]提出基于偏差網(wǎng)絡(luò)(DevNet,deviation networks)的深度半監(jiān)督異常檢測方法,該方法通過異常評分和參考分?jǐn)?shù)對數(shù)據(jù)進(jìn)行異常判斷,但正常數(shù)據(jù)的參考分?jǐn)?shù)是由一個特殊的數(shù)據(jù)集隨機(jī)生成,無法獲得有效的參考分?jǐn)?shù),影響了準(zhǔn)確性。因此,文獻(xiàn)[45]提出變分偏差網(wǎng)絡(luò)(VDevNet,variational deviation networks)模型,其采用變分自編碼器生成參考分?jǐn)?shù),能更好地?cái)M合數(shù)據(jù),對多種類型的異常數(shù)據(jù)具有更大的擴(kuò)展性和更強(qiáng)的解釋性。但該類模型也存在一定局限性,其采用正態(tài)分布去擬合正常樣本的概率分布,但不是所有數(shù)據(jù)都符合正態(tài)分布,因此,需要進(jìn)一步研究變分自編碼器是否能擬合其他概率分布。
綜上所述,基于深度學(xué)習(xí)的異常檢測模型及其應(yīng)用領(lǐng)域如表1 所示。
表1 深度異常檢測模型優(yōu)缺點(diǎn)及其應(yīng)用領(lǐng)域Tab.1 The advantages and disadvantages of deep anomaly detection model and its application field
為了表明模型的有效性,研究者需要在各種數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。下面基于多維點(diǎn)集、圖片和視頻數(shù)據(jù)集3 種類型,對異常檢測中部分常用數(shù)據(jù)集產(chǎn)生的領(lǐng)域和數(shù)據(jù)內(nèi)容進(jìn)行簡要介紹。常用的多維點(diǎn)集有Financial Fraud 和CSIC 2010。Financial Fraud 是用于信用卡欺詐檢測的數(shù)據(jù)集,包含歐洲持卡人在2013 年9 月某兩天內(nèi)通過信用卡進(jìn)行的交易,在284 807 筆交易中,有492 筆欺詐。CSIC 2010 是用于入侵檢測的數(shù)據(jù)集,收集了在應(yīng)用程序中用戶使用購物車購買商品和提供一些個人信息進(jìn)行注冊形成的請求,包含36 000 個正常請求和超過25 000 個異常請求。常用的圖片數(shù)據(jù)集有MINST、MVTecAD 和SIXray。MINST為最常用的圖片數(shù)據(jù)集,是由28 × 28 像素的0~9 手寫數(shù)字圖片組成,共7 萬張,通常選擇某一類為異常數(shù)據(jù),其他數(shù)字手寫圖片為正常類。MVTecAD 是用于工業(yè)產(chǎn)品檢測的數(shù)據(jù)集,包含15 種工業(yè)產(chǎn)品,共有5 354 個圖像,其中10 種為物體,其余5 種為紋理。SIXray 是安全檢查中物品的X 射線圖像數(shù)據(jù)集,由1 059 231 個X 射線圖像組成,其中包括8 929 個違禁品圖像,涉及6 類常見的違禁物品,分別是槍、刀、扳手、鉗子、剪刀和錘子。常用的視頻數(shù)據(jù)集有UCSD和CUHK Avenue。UCSD 是通過固定在學(xué)校中較高位置上的攝像機(jī)獲得的,異常情況包括非人行道物體在人行道上的移動和異常的行人運(yùn)動模式(如從草坪中穿過,跑步)。CUHK Avenue 是拍攝的某大學(xué)校園的主干道,異常包括奇怪的動作、錯誤的方向和異常對象。其中最常用的數(shù)據(jù)集為MINST,有多種異常檢測模型在其上進(jìn)行了實(shí)驗(yàn)。
在評價模型性能時,通常采用精確率P、召回率R、F1分值和AUC(area under curve)值進(jìn)行評價,其中,P、R 和F1,分別表示如下
式中:TP 代表異常樣本被檢測為異常,稱為真陽性;FP代表正常樣本被檢測為異常,稱為假陽性;FN 代表異常樣本被檢測為正常,稱為假陰性。精確率P 和召回率R 值越大,代表分類器效果越好,但兩者是矛盾的,無法做到同時達(dá)到最高,而F1是精確率和召回率的調(diào)和平均,同時考慮了精確率P 和召回率R,讓兩者同時達(dá)到最高,取得平衡。
AUC 值是ROC(receiver operating characteristic)曲線包含的面積,ROC 曲線是以真陽性率為縱坐標(biāo)和假陽性率為橫坐標(biāo)繪制的曲線。AUC 越接近1,檢測方法真實(shí)性越高;AUC 等于0.5 時,則真實(shí)性最低,無應(yīng)用價值。對于不平衡的數(shù)據(jù)集而言,采用AUC 更能體現(xiàn)模型的性能。部分深度異常檢測模型在MINST數(shù)據(jù)集上的性能如表2 所示。實(shí)驗(yàn)中選取寫數(shù)字0 的圖片為正常值。
表2 部分深度異常檢測模型在MINST 數(shù)據(jù)集上的性能Tab.2 Performance of partial deep anomaly detection models on MINST datasets
從表2 中可以看出,大多數(shù)模型在MINST 數(shù)據(jù)集上都有很好的性能,但基于GAN 的模型性能表現(xiàn)更加突出。這是由于基于生成模型的異常檢測模型適用于圖像的異常檢測,能有效提取圖片的特征并能生成正常圖片,但該模型具有訓(xùn)練困難、不夠穩(wěn)定和對數(shù)據(jù)要求高等問題,在此方面需要進(jìn)一步的優(yōu)化。
基于重構(gòu)模型對各類數(shù)據(jù)有通用性,不同的數(shù)據(jù)類型可選擇不同的AE 變體,且運(yùn)用起來較為簡單,常直接采用重構(gòu)誤差作為異常的檢測標(biāo)準(zhǔn),這是重構(gòu)模型結(jié)構(gòu)上的優(yōu)勢,但同時也具有一定的缺陷,例如模型訓(xùn)練目標(biāo)通常是在數(shù)據(jù)降維后進(jìn)行重構(gòu),沒有為異常檢測而優(yōu)化特征學(xué)習(xí)。因此,捕捉到的特征是否對異常檢測有明顯的影響是存疑的,所以在判斷時可能被噪聲誤導(dǎo),從而基于重構(gòu)模型直接用于異常檢測的效果遜色于基于生成模型和基于單分類模型。結(jié)構(gòu)簡單的AE 模型通常需要與其他網(wǎng)絡(luò)結(jié)合,才能對某一類型的數(shù)據(jù)具有更好的分類性能,也反映了AE 具有良好的可移植性。
基于單分類的深度學(xué)習(xí)模型相比于傳統(tǒng)的單分類模型,具有不用手動設(shè)計(jì)核函數(shù)和人工選擇特征的優(yōu)勢,減少了很多前期工作,并且此類模型的特征選擇是由異常檢測的目標(biāo)而導(dǎo)出的,更有針對性,能實(shí)現(xiàn)更好的檢測效果。由表2 也可以看出基于單分類的深度異常檢測模型的性能僅次于ADGAN 模型,但單分類模型的訓(xùn)練更加穩(wěn)定。但其在正常類具有復(fù)雜的分布時不再適用,檢測中閾值的設(shè)置也至關(guān)重要。
(1)算法的自適應(yīng)性。在數(shù)據(jù)規(guī)模不斷擴(kuò)大的情況下,檢測算法的性能需要更加高效且可拓展。此外,若異常數(shù)據(jù)是動態(tài)變化或異質(zhì)的,基于深度學(xué)習(xí)的檢測算法需要根據(jù)數(shù)據(jù)變化進(jìn)行動態(tài)更新,才能使模型的檢測性能具有穩(wěn)定性。最后,基于深度學(xué)習(xí)在不同的數(shù)據(jù)上往往需要人工設(shè)置不同的參數(shù),如何減少人工的參與也是挑戰(zhàn)之一。因此,在算法設(shè)計(jì)時需要提升對數(shù)據(jù)特征的高效學(xué)習(xí),以及對數(shù)據(jù)集的適應(yīng)性。
(2)檢測結(jié)果的可解釋性。在實(shí)際應(yīng)用中,通常需要對異常檢測的結(jié)果進(jìn)行解釋和歸因。目前很多深度異常檢測模型具有很好的效果,但結(jié)果的解釋性較差,因此,如何提高模型的可解釋性是面臨的重要挑戰(zhàn)。在后續(xù)的研究中除了提升算法性能,還需要更多考慮怎樣讓用戶更好地理解檢測結(jié)果??梢钥紤]以更直觀的可視化形式呈現(xiàn),能向用戶闡明模型的內(nèi)部機(jī)理,對模型結(jié)果進(jìn)行解釋。
(3)數(shù)據(jù)集的多樣性。目前已有各種類型的基礎(chǔ)數(shù)據(jù)集,為證明算法的有效性,各種類型的數(shù)據(jù)集都得到了有效的利用,但只有很少的模型能夠在大部分?jǐn)?shù)據(jù)集上得到優(yōu)秀的結(jié)果,研究者也通常致力于展現(xiàn)算法的優(yōu)點(diǎn),而忽略了分析其可能存在的缺點(diǎn),以便于其他研究者在不同的應(yīng)用環(huán)境下更好地篩選模型。不同的模型需要同時在某個領(lǐng)域具有挑戰(zhàn)性的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),對比分析各個模型在該領(lǐng)域異常檢測的性能,分析模型的優(yōu)缺點(diǎn)和改進(jìn)方法。因此,需要更多有挑戰(zhàn)性的數(shù)據(jù)集來幫助異常檢測模型的發(fā)展。
本文首先介紹了異常檢測相關(guān)背景,隨后介紹了以各類深度學(xué)習(xí)模型為基礎(chǔ)的異常檢測模型及其原理、優(yōu)缺點(diǎn)和在各領(lǐng)域的應(yīng)用。其次,介紹了異常檢測常用的數(shù)據(jù)集和評估指標(biāo),對不同類的深度異常檢測進(jìn)行分析討論。最后,總結(jié)了深度異常檢測的關(guān)鍵問題和發(fā)展方向。本文目的在于介紹和分析各種深度異常檢測方法,評估相關(guān)方法的適用性,為其他深度學(xué)習(xí)模型在異常檢測領(lǐng)域的拓展應(yīng)用提供思路,可為不同數(shù)據(jù)類型和需求下選擇異常檢測模型提供參考。