本文為博主翻譯自:Jinwon的Variational Autoencoder based Anomaly Detection using Reconstruction Probability,如侵立刪
http://dm.snu.ac.kr/static/docs/TR/SNUDM-TR-2015-03.pdf
摘要
我們提出了一種利用變分自動編碼器重構概率的異常檢測方法。重建概率是一種考慮變量分布變異性的概率度量。重建概率具有一定的理論背景,使其比重建誤差更具有原則性和客觀性,而重建誤差是自動編碼器(AE)和基於主成分(PCA)的異常檢測方法所采用的。實驗結果表明,所提出的方法形成了基於自動編碼器的方法和基於主成分的方法。利用變分自動編碼器的生成特性,可以推導出數據重構,分析異常的根本原因。
1 簡介
異常或異常值是與剩余數據顯着不同的數據點。 霍金斯將異常定義為一種觀察結果,它與其他觀察結果有很大的偏差,從而引起人們懷疑它是由不同的機制產生的[5]。 分析和檢測異常非常重要,因為它揭示了有關數據生成過程特征的有用信息。 異常檢測應用於網絡入侵檢測,信用卡欺詐檢測,傳感器網絡故障檢測,醫療診斷等眾多領域[3]。
在許多異常檢測方法中,光譜異常檢測技術試圖找到原始數據的低維嵌入,其中異常和正常數據預期彼此分離。 在找到那些較低維度的嵌入之后,它們被帶回原始數據空間,這被稱為原始數據的重建。 通過使用低維表示重建數據,我們期望獲得數據的真實性質,而沒有不感興趣的特征和噪聲。 數據點的重建誤差(原始數據點與其低維重建之間的誤差)被用作檢測異常的異常分數。 基於主成分分析(PCA)的方法屬於這種檢測異常的方法[3]。
隨着深度學習的出現,自動編碼器還用於通過堆疊層來形成深度自動編碼器來執行降維。 通過減少隱藏層中的單元數量,預計隱藏單元將提取很好地表示數據的特征。此外,通過堆疊自動編碼器,我們可以以分層方式應用降維,在更高的隱藏層中獲得更抽象的特征,從而更好地重建數據。
在這項研究中,我們提出了一種使用變分自動編碼器(VAE)的異常檢測方法[8]。 變分自動編碼器是一種將變分推理與深度學習相結合的概率圖形模型。 因為VAE以概率上合理的方式減小尺寸,所以理論基礎是堅定的。 VAE相對於自動編碼器和PCA的優勢在於它提供概率測量而不是重建誤差作為異常分數,我們稱之為重建概率。 概率比重建誤差更具原則性和客觀性,並且不需要模型特定閾值來判斷異常。
2 背景
2.1 異常檢測
異常檢測方法可以大致分為基於統計,基於鄰近和基於偏差[1]三種類型。
統計異常檢測假定數據是根據指定的概率分布建模的。諸如高斯混合的參數模型或諸如核密度估計的非參數模型可用於定義概率分布。 如果數據點從模型生成的概率低於某個閾值,則將數據點定義為異常。這種模型的優點在於它給出概率作為判斷異常的決策規則,這是客觀的,理論上合理的。
基於鄰近度的異常檢測假設異常數據與大量數據隔離。以這種方式對異常建模有三種方式,即基於聚類,基於密度和基於距離。對於基於聚類的異常檢測,將聚類算法應用於數據以識別數據中存在的密集區域或聚類。接下來,評估數據點與每個聚類的關系以形成異常分數。這樣的標准包括到聚類質心的距離和最近聚類的大小。如果到集群質心的距離高於閾值或者最近集群的大小低於閾值,則將數據點定義為異常。基於密度的異常檢測將異常定義為位於數據的稀疏區域中的數據點。例如,如果數據點的局部區域內的數據點的數量低於閾值,則將其定義為異常。基於距離的異常檢測使用與給定數據點的相鄰數據點相關的測量。可以以這樣的方式使用K-最近鄰距離,其中具有大k-最近鄰距離的數據點被定義為異常。
基於偏差的異常檢測主要基於光譜異常檢測,其使用重建誤差作為異常分數。 第一步是使用降維方法(如主成分分析或自動編碼器)重建數據。 使用k個最重要的主成分重建輸入並測量其原始數據點和重建之間的差異導致重建誤差,其可以用作異常分數。 具有高重建誤差的數據點被定義為異常。
2.2 AE與異常檢測
自動編碼器是通過無監督學習訓練的神經網絡,其被訓練以學習接近其原始輸入的重建。 自動編碼器由兩部分組成,編碼器和解碼器。 具有單個隱藏層的神經網絡分別具有如等式(1)和等式(2)中的編碼器和解碼器。 W和b是神經網絡的權重和偏差,σ是非線性變換函數。
等式(1)中的編碼器通過非線性之后的仿射映射將輸入矢量x映射到隱藏表示h。 等式(2)中的解碼器通過與編碼器相同的變換將隱藏表示h映射回原始輸入空間作為重建。 原始輸入矢量x和重建z之間的差異被稱為重建誤差,如等式(3)中所示。 自動編碼器學習最小化該重建誤差。 普通自動編碼器的訓練算法如算法1所示,其中fθ和gφ是自動編碼器的多層神經網絡。
通過使用自動編碼器的隱藏表示作為另一個自動編碼器的輸入,我們可以堆疊自動編碼器以形成深度自動編碼器[16]。 為了避免隱藏單元的簡單查找表格表示,自動編碼器減少了隱藏單元的數量。 還開發了具有各種其他正則化的自動編碼器。 壓縮自動編碼器使用激活梯度作為懲罰項,並嘗試使用僅響應數據真實性質的稀疏激活來建模數據[13]。 去噪自動編碼器使用向原始輸入向量x添加噪聲並使用該有噪聲輸入x作為輸入向量。 結果輸出,噪聲輸入的重建和原始輸入之間的差異被用作重建誤差。 簡而言之,這是訓練自動編碼器從嘈雜的輸入x再現原始輸入x。 這允許自動編碼器對具有白噪聲的數據具有魯棒性,並且僅捕獲有意義的數據模式[16]。
基於自動編碼器的異常檢測是基於偏差的使用半監督學習的異常檢測方法。 它使用重建誤差作為異常分數。 具有高重建的數據點被認為是異常。 僅使用具有普通實例的數據來訓練自動編碼器。 訓練之后,自動編碼器將非常好地重建正常數據,而自動編碼器未遇到的異常數據則會重建失敗。 算法2演示出了使用自動編碼器的重建誤差的異常檢測算法。
2.3 變分自編碼器
變分自動編碼器(VAE)是一種定向概率圖形模型(DPGM),其后置由神經網絡近似,形成類似自動編碼器的架構。 圖1顯示了典型的定向圖形模型。 在VAE中,有向圖形模型z的最高層被視為生成過程開始的潛在變量。 g(z)表示數據生成的復雜過程,其導致數據x,其在神經網絡的結構中建模。 VAE的目標函數是數據邊際可能性的變化下界,因為邊際可能性是難以處理的。 邊際可能性是各個數據點的邊際可能性之和,其中各個數據點的邊際可能性可以如下重寫:
qφ(z | x)是近似后驗,pθ(z)是潛在變量z的先驗分布。 等式(4)右邊的第一項是近似后驗和先驗的KL散度。 等式(4)右邊的第二項是數據點i的邊際似然的變化下界。 由於KL發散項總是大於0,所以可以如下重寫等式(4)。
pθ(x | z)是給定潛在變量z的數據x的似然性。 等式(7)的第一項是潛在可變z的近似后驗和先驗之間的KL散度。 該術語迫使后驗分布與先前分布相似,作為正則化項。 等式(7)的第二項可以通過后驗分布qφ(z | x)和似然pθ(x | z)的x重構來理解。
VAE通過使用神經網絡模擬近似后驗qφ(z | x)的參數。這是VAE與自動編碼器相關的地方。如圖2所示,在自動編碼器類比中,近似后驗qφ(z | x)是編碼器,定向概率圖模型pθ(x | z)是解碼器。值得強調的是,VAE模擬分布的參數而不是值本身。也就是說,編碼器中的f(x,φ)輸出近似后驗qφ(z | x)的參數並獲得潛在變量z的實際值,從q(z; f(x,φ))中采樣是必須的。因此,VAE的編碼器和解碼器可以被稱為概率編碼器和解碼器。作為神經網絡的f(x,φ)表示數據x和潛在變量z之間的復雜關系。為了得到重構x,給定樣本z,通過g(z,θ)獲得pθ(x | z)的參數,其中從pθ(x; g(z,θ))對重建x進行采樣。總而言之,它是在VAE中建模的分布參數,而不是值本身。分布的選擇對任何類型的參數分布都是開放的。對於潛在變量z的分布,即pθ(z)和qφ(z | x),常見的選擇是各向同性法線,因為假設潛變量空間中變量之間的關系比原始輸入數據空間。似然pθ(x | z)的分布,圖3取決於數據的性質。如果數據是二進制形式,則使用伯努利分布。如果數據是連續的,則使用多變量高斯。圖3顯示了整個VAE的結構。
VAE和自動編碼器之間的主要區別在於VAE是一種可以提供校准概率的隨機生成模型,而自動編碼器是一種沒有概率基礎的確定性判別模型。 這是顯而易見的,因為VAE模擬分布的參數,如上所述。
反向傳播用於訓練VAE。 由於等式(7)的第二項應通過蒙特卡羅方法計算,因此必須使用蒙特卡羅梯度法。 然而,眾所周知,用於優化變分下界的傳統蒙特卡羅梯度方法存在非常高的方差,因此不適合使用[10]。 VAE通過使用重新參數化技巧克服了這一點,該技巧使用來自標准正態分布的隨機變量而不是原始分布中的隨機變量。 隨機變量z~qφ(z | x)通過確定性變換hφ(s,x)重新定量,其中s來自標准正態分布。
重新計量應確保z~遵循qφ(z | x)的分布。 這比直接使用蒙特卡羅梯度法更穩定。 用於訓練VAE的算法在算法3中示出。
3 提議方案
我們提出了一種異常檢測方法,該方法使用VAE來計算我們稱之為重建概率的概率的異常分數。
3.1 算法
該方法的算法在算法4中。異常檢測任務是一個半監督框架,僅使用正常實例的數據來訓練VAE。概率編碼器fφ和解碼器gθ分別對潛在變量空間和原始輸入變量空間中的各向同性正態分布進行參數化。為了測試,從訓練的VAE的概率編碼器中抽取許多樣本。對於來自編碼器的每個樣本,概率解碼器輸出均值和方差參數。使用這些參數,計算從分布產生原始數據的概率。平均概率用作異常分數,稱為重建概率。這里計算的重建概率是等式(7)的右手側的第二項Eqφ(z|x)[log pθ(x|z)]的蒙特卡洛估計。具有高重建概率的數據點被歸類為異常。
3.2 重建概率
通過導出原始輸入變量分布的參數的隨機潛變量來計算重建概率。正在重建的是輸入變量分布的參數,而不是輸入變量本身。這基本上是從近似后驗分布中提取的給定潛在變量生成數據的概率。因為從潛在變量分布中抽取了許多樣本,這允許重建概率考慮潛在變量空間的可變性,這是所提出的方法與基於自動編碼器的異常檢測之間的主要區別之一。可以使用適合數據的輸入變量空間的其他分布。對於連續數據,可以如算法4中那樣使用正態分布。對於二進制數據,可以使用伯努利分布。在潛在可變空間分布的情況下,優選諸如各向同性正態分布的簡單連續分布。這可以通過光譜異常檢測的假設來證明,與輸入變量空間相比,潛變量空間更加簡單。
3.3 與基於自動編碼器的異常檢測的區別
重建概率與自動編碼器的重建誤差有兩種不同。 首先,潛在變量是隨機變量。 在自動編碼器中,潛在變量由確定性映射定義。然而,由於VAE使用概率編碼器來模擬潛在變量的分布而不是潛在變量本身,因此可以從采樣過程考慮潛在空間的可變性。與自動編碼器相比,這擴展了VAE的表現力,即使正常數據和異常數據可能共享相同的平均值,變化也可能不同。 據推測,異常數據將具有更大的方差並且顯示出更低的重建概率。由於自動編碼器的確定性映射可以被認為是映射到狄拉克δ分布的平均值,因此自動編碼器缺乏解決可變性的能力。
其次,重建是隨機變量。重建概率不僅考慮重建與原始輸入之間的差異,而且還考慮通過考慮分布函數的方差參數來重建的可變性。 該屬性使得能夠根據變量方差對重建具有選擇性靈敏度。 具有大方差的變量將容忍重建中的大差異和原始數據作為正常行為,而具有小方差的變量將顯著降低重建概率。這也是自動編碼器由於其確定性而缺乏的特征。
第三,重建是概率測量。基於自動編碼器的異常檢測使用重建誤差作為異常分數,如果輸入變量是異構的,則難以計算。為了總結異構數據的差異,需要加權和。問題是,沒有一種通用的客觀方法來確定適當的權重,因為權重將根據您擁有的數據而有所不同。此外,即使在確定權重之后,確定重建誤差的閾值也是麻煩的。沒有明確的目標切割閾值。相反,重建概率的計算不需要加權異構數據的重建誤差,因為每個變量的概率分布允許它們通過其自身的可變性單獨地計算。對於任何數據,1%的概率總是1%。因此,確定重建誤差的閾值比重建誤差更客觀,合理且易於理解。
4 實驗結果
將基於VAE的具有重建概率的異常檢測與基於自動編碼器和基於PCA的方法的其他基於重建的方法進行比較。
4.1 數據集准備
用於異常檢測的數據集是MNIST數據集[9]和KDD杯1999網絡入侵數據集(KDD)[6]。 數據集根據其類標簽分為普通數據和異常數據。 為了應用半監督學習,訓練數據由80%的正常數據組成,測試數據由剩余的20%的正常數據和所有異常數據組成。 因此,模型僅使用正常數據進行訓練,並使用正常和異常數據進行測試。
對於MNIST數據集,訓練模型,每個數字類別標記為異常,其他數字標記為正常。 這導致數據集具有10個不同的異常。 我們將被標記為異常的數字類i稱為異常數字i。 數據總數為60,000,每個數字的實例數相同。 僅應用最小最大縮放作為預處理,以使每個像素值在0和1之內。
KDD杯數據集由五個主要類別組成,分別是DoS,R2L,U2R,Probe和Normal。前4個類是異常,而Normal類是正常的。前4個類中的每一個都被視為異常。對於每個異常類,正常數據以兩種不同的方式定義。第一種是將普通數據定義為僅具有Normal類的數據。由於模型僅使用正常數據進行訓練,因此每個異常類產生相同的模型。普通數據的另一個定義是除指定的異常類之外的所有數據。這為每個異常類產生不同的訓練數據,並且還具有比正常數據的前一個定義更多的訓練數據。我們將第一種定義普通數據的方法稱為普通方法,第二種方法除了異常方法外都會被調用。表1中顯示了每個類的實例數。對於分類變量,使用一個熱編碼將其轉換為數值。對於數值變量,將0均值和單位方差的標准化應用為預處理。
4.2 模型准備
對於VAE,編碼器和解碼器都是具有400維度的單個隱藏層。 潛在尺寸為200維。 對於自動編碼器(AE),我們使用了兩個隱藏層去噪自動編碼器,分別用於第一和第二隱藏層的400,200維度。 通過堆疊前一層輸出來訓練第二層。 對於PCA,我們使用線性PCA(PCA)和具有高斯內核的內核PCA(kPCA)。 使用交叉驗證估計高斯核的參數。 VAE使用重建概率作為異常分數,而其他模型使用重建誤差作為異常分數。
4.3 效果評估
接收器操作特性曲線下面積(AUC ROC)和精確召回曲線(AUC PRC)和f1得分曲線下的平均精度或面積用於評估。 通過從驗證數據集f1得分確定二元決策的閾值來獲得f1得分。
4.3.1 MNIST 數據集
表2顯示了異常數據集的每個模型的性能。 VAE在大多數時候都優於其他型號。 對於所有型號,性能較低當數字1,7和9是異常數字時。 詳細的VAE的其他性能測量結果如表3所示。可以看出,數字1和7,9是異常數字的情況在AUC PRC中表現出低的性能,並且f1得分也是如此。 這似乎與數據結構本身難以重建的方式有關。 分析重建揭示了這個結果的可能原因。
4.3.2 重建 MNIST dataset
圖4顯示了每個異常數字具有低重建概率的數據樣本及其重建。 也就是說,它顯示了每個異常數字數據的檢測到的異常。 可以很容易地注意到,除了1,7和9之外,VAE不能很好地重建異常數字的數據,正確地導致將其定義為異常。 對於異常數字1,可以看出1未被檢測為異常。 圖7和9也類似地跟隨被判斷為異常的其他數字。 如果我們看到數據樣本及其重建對於圖5中所示的每個異常數字具有高重建概率,則可以理解VAE不對這些數字起作用的原因。即,這些數據樣本被判斷為正常數據。
除異常數字1之外的所有異常數字僅顯示具有最高重建概率的1的樣本。 即使在1處於異常數據中並且沒有給予訓練數據的情況下,如異常數字1顯示1具有7和9具有高重建概率。
由此可以推斷,由於1是單個垂直筆划的結構非常簡單,因此VAE從數據的其他部分學習了該結構。例如,如果以剛性方式書寫而沒有太多曲率,則幾乎任何數字,4中心,7和9右側包括垂直筆划。這可能為VAE提供了學習結構組件的數據。即使在這個實驗中使用的VAE是一個相當淺的有三個隱藏層,但它似乎仍然作為一個分層模型捕獲構成數據結構的功能。當查看圖5中所示的異常數字1的樣本時,這是顯而易見的,其中當1不存在時,7和9似乎具有高重建概率。異常數字7和9的低性能可以以類似的含義理解。垂直筆划占7和9的很大一部分,因為與其他數字相比,它與垂直筆划相比具有較少的突出部分,如圖5所示。另外對於7,似乎是一種特殊的書寫方式7(第二個水平方向)數字7)中間的筆划似乎被檢測為異常。
Figure 4: Reconstruction of digits with low reconstruction
上排部分是異常數字0到4的重建。下排部分,5到9.每個部分的左列是原始數據,右列是重建
Figure 5: Reconstruction of digits with high reconstruction probability
與圖4相同的
4.4 KDD 數據集
表4和表5顯示了異常數據集上每個模型的VAE性能。 表4是僅使用Normal類數據訓練的模型。 無論異常類如何,所有模型都使用相同的數據集進行訓練。 表5是使用除異常類數據之外的所有數據訓練的模型,這意味着模型的訓練數據因異常類而不同。 VAE的表現優於其他模型,除了訓練的情況,只有普通類,探測作為他們處於同等水平的異常類。 PCA似乎缺乏性能,暗示數據的線性關系不足以捕獲數據的底層結構。 內核PCA也沒有太大成功。
4.4.1 正態唯一法與異常例外法的比較
除了異常類是DoS的情況之外,異常除了方法之外表現出更好的性能。 這可能是因為DoS類是具有最多實例的類。 表1顯示DoS類數據占總數據的近80%。 不使用DoS類數據來訓練VAE會嚴重影響VAE,從而導致模型無法將DoS類數據與其他類區分開來。 對於其他異常類,結合其他數據,最值得注意的是,龐大的DoS類數據有助於提高常規方法的性能,其中僅具有正常數據的模型是訓練數據。 還可以看出異常自動編碼器除異常類R2L,U2R和幾乎匹配探測器外,異常的自動編碼器在異常類方法中表現出比VAE更好的性能。 這舉例說明了公理,更多數據通常比更好的算法更好。
4.4.2 異常等級比較
表6和表7顯示了VAE的其他性能評估指標。 DoS顯示出高AUC ROC和高AUC PRC。 但對於R2L和U2R,AUC ROC評分良好,但AUC PRC評分較差。 這是由於R2L和U2R類的大小。 AUC ROC沒有考慮實際的數據數量,而是考慮了數據的百分比。 這使得非常小的異常數據在AUC ROC方面表現更好。 但是,AUC PRC考慮了異常類的實際數據。 由於數據太少,模型很難將它們與普通數據區分開來。 U2R只有520個樣本,占總數據的0.001%。 這使得AUC PRC非常低。 即使f1得分(AUC PRC的峰值)比AUC PRC大得多,但與其他異常類別相比仍然較低。
5 結論
我們已經使用來自變分自動編碼器的重建概率引入了異常檢測方法。 重建概率通過考慮變異性的概念來結合變分自動編碼器的概率特性。 作為概率測量的重建概率使其成為比自動編碼器和基於PCA的方法的重建誤差更客觀和原則性的異常分數。 實驗結果表明,該方法優於基於自動編碼器和基於PCA的方法。 由於其生成特征,還可以導出數據的重建以分析異常的根本原因。
翻譯的比較初略,錯誤的比較多,希望大佬們諒解。
參考
[1] Charu C Aggarwal. Outlier analysis. Springer Science & Business Media, 2013.
[2] Pierre Baldi and Kurt Hornik. Neural networks and principal component analysis: Learning from examples without local minima. Neural networks, 2(1):53–58, 1989.
[3] Varun Chandola, Arindam Banerjee, and Vipin Kumar. Anomaly detection: A survey.
ACM computing surveys (CSUR), 41(3):15, 2009.
[4] Junyoung Chung, Kyle Kastner, Laurent Dinh, Kratarth Goel, Aaron C Courville, and Yoshua Bengio. A recurrent latent variable model for sequential data. In Advances in Neural Information Processing Systems, pages 2962–2970, 2015.
[5] Douglas M Hawkins. Identification of outliers, volume 11. Springer, 1980.
[6] Seth Hettich and SD Bay. The uci kdd archive [http://kdd. ics. uci. edu]. irvine, ca: University of california. Department of Information and Computer Science, page 152, 1999.
[7] Diederik P Kingma, Shakir Mohamed, Danilo Jimenez Rezende, and Max Welling. Semi- supervised learning with deep generative models. In Advances in Neural Information Pro- cessing Systems, pages 3581–3589, 2014.
[8] Diederik P Kingma and Max Welling. Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114, 2013.
[9] Yann LeCun and Corinna Cortes. Mnist handwritten digit database. AT&T Labs [Online]. Available: http://yann. lecun. com/exdb/mnist, 2010.
[10] John Paisley, David Blei, and Michael Jordan. Variational bayesian inference with stochastic search. arXiv preprint arXiv:1206.6430, 2012.
[11] Danilo Jimenez Rezende, Shakir Mohamed, and Daan Wierstra. Stochastic backpropagation and approximate inference in deep generative models. arXiv preprint arXiv:1401.4082, 2014.
[12] Salah Rifai, Gr´egoire Mesnil, Pascal Vincent, Xavier Muller, Yoshua Bengio, Yann Dauphin, and Xavier Glorot. Higher order contractive auto-encoder. In Machine Learning and Knowl- edge Discovery in Databases, pages 645–660. Springer, 2011.
[13] Salah Rifai, Pascal Vincent, Xavier Muller, Xavier Glorot, and Yoshua Bengio. Contractive auto-encoders: Explicit invariance during feature extraction. In Proceedings of the 28th International Conference on Machine Learning (ICML-11), pages 833–840, 2011.
[14] Tara N Sainath, Brian Kingsbury, and Bhuvana Ramabhadran. Auto-encoder bottleneck features using deep belief networks. In Acoustics, Speech and Signal Processing (ICASSP), 2012 IEEE International Conference on, pages 4153–4156. IEEE, 2012.
[15] Takaaki Tagawa, Yukihiro Tadokoro, and Takehisa Yairi. Structured denoising autoencoder for fault detection and analysis. In Proceedings of the Sixth Asian Conference on Machine Learning, pages 96–111, 2014.
[16] Pascal Vincent, Hugo Larochelle, Isabelle Lajoie, Yoshua Bengio, and Pierre-Antoine Man- zagol. Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion. The Journal of Machine Learning Research, 11:3371–3408, 2010.