論文分享-- >異常檢測-- >Deep Autoencoding Gaussian Mixture Model for Unsupervised Anomaly Detection

博客內容將首發在微信公衆號"跟我一起讀論文啦啦",上面會定期分享機器學習、深度學習、數據挖掘、自然語言處理等高質量論文,歡迎關注!
在這裏插入圖片描述

本文將總結分享ICLR2018論文 Deep Autoencoding Gaussian Mixture Model for Unsupervised Anomaly Detection,論文鏈接 DAGMM,參考的代碼鏈接 CODE,本論文旨在將神經網絡、EM與GMM有機結合起來,做無監督的異常檢測,並且取得了不錯的效果。

論文動機和創新點

  • 異常檢測的本質是通過密度估計找出異常樣本過程。

  • 如何對高維和多變量的數據進行無監督異常檢測是一個挑戰,傳統的聚類算法,例如K-means,GMM,很難很好的應用到這類高維數據上。

  • 對高維數據進行異常檢測,傳統的方法分兩步,先對高維數據進行降維,將原始數據映射到低維度空間;然後在這個低維空間內做密度估計。
    ① 這兩個步是相互獨立的過程,高維數據降維後的表徵很難保留足夠多的關鍵信息。
    ② 因爲這兩步是相互獨立的,最終可能導致模型陷入局部最優的境地,試想降維過程完全獨立於後面密度估計過程,並不知道爲後面的密度估計過程保留哪些關鍵信息。

  • 異常樣本與正常樣本通常在兩個方面不同:
    ① 在低維空間上,正常樣本與異常樣本在關聯特徵上有明顯的不同。
    ② 相對正常樣本,異常樣本很難去重構,這也是許多用自編碼做異常檢測的原因。
    在目前已有的異常檢測方法,都是利用上面兩種不同中的一種去做異常檢測,導致模型總是次優表現。

  • 目前有許多用深度自編碼做異常檢測,但是自編碼極有可能陷入局部最優,於是採用了預訓練的方法,但大多實驗表明,pretrain、finetune的方法對模型的提升並沒有那麼的大(本人做過類似實驗驗證過)。

  • 本論文提出的DAGMM模型,很巧妙的將降維過程(Deep AutoEncoding,以下簡稱DAE)和密度估計過程(Gaussian mixture model,以下簡稱GMM)有機的結合在一起,進行端到端的聯合訓練。避免了因兩步獨立導致模型陷入局部最優的境地。

  • DAGMM模型有着強大的容量足以擬合高維複雜的數據,並且巧妙利用EM算法思想,(這種方式給人眼前一亮的感覺)來優化GMM模型,使得DAE與GMM可以聯合訓練,實驗結果表明,DAGMM模型比state of art方法,在F1指標上提高了14個點,效果相當驚豔了。

網絡結構

在這裏插入圖片描述
上圖爲DAGMM的整體網絡結構,分兩個子結構,左邊部分爲Compression network,是一個深度自編碼網絡,通過這個自編碼我們可以得到輸入x的低維表示 zcz_c,同時得到輸入xx 與重構的 xx' 之間的重構誤差特徵zrz_rzrz_rzcz_c 進行拼接操作形成zz;右邊爲 Estimation network,也是一個多層的神經網絡,輸入爲zz, 經過多層全連接得到一個概率分佈,這個概率分佈的長度即爲混合高斯分佈中子分佈個數。

Compression network

就是一個深度自編碼網絡,網絡內具體結構,可以根據數據或業務做不同處理。
zc=h(x;θe), x=g(zc;θd)(1) z_c=h(x;\theta_e),\ x'=g(z_c;\theta_d) \tag1
zr=f(x,x)(2)z_r = f(x,x') \tag2
z=[zc,zr](3) z=[z_c,z_r] \tag3

公式 2 計算的是重構誤差,論文中採用的歐式距離、餘弦相似度這兩度量方式計算重構誤差。具體爲啥採用這兩種誤差度量方法,附錄中有講到,作者做實驗時發現,在原始維度爲20維的數據集上,大部分異常樣本在低維空間(論文中講20維降低到1維)上與正常樣本有明顯的分離,但是存在部分異常樣本隱藏在正常樣本內,同時這些異常樣本在原始的20維空間內,與正常樣本又有明顯的不同。於是作者計算了所有樣本的L2重構誤差(歐式距離)。
在這裏插入圖片描述
上圖橫座標表示降低後的維度上(1維,自編碼學習到的,每個樣本原始20維),縱座標表示這些樣本L2重構誤差。其中紅點表示異常點,綠點表示正常樣本,顯然有明顯的分離性。
論文中還講到選擇重構誤差的度量方法,需要滿足兩個條件:
① 連續可導 ; ② 數值範圍上應該相對較小。

Estimation network

估計網絡是本文的關鍵,如何把神經網絡與EM算法有機結合,做到DAE與GMM聯合訓練,相互優化是論文的一大亮點。

EM算法簡介

要讀懂這部分,必須得對EM算法有着深入的瞭解,EM算法用於含有隱變量(Hidden variable)的概率模型參數的最大似然估計。主要有以下兩步:
在這裏插入圖片描述
上式中x爲觀測值,Z爲隱變量,Q爲Z的分佈。E步更新Q,使得下界函數與對數似然函數在θ點處相等;而M步是在求下界函數的極大值,並且更新θ。這兩步不斷的循環重複。最終使得M步下界函數的最大值與對數似然函數的局部極大值相等。E步與M步不斷循環,迭代更新參數θ\theta。詳細請看 EM

個人認爲EM算法的核心思想,就是已知一批觀測樣本x,並且不同觀測樣本服從不同的隱分佈z,這個時候無監督的構造某個分佈(參數爲θ\theta) 使得似然函數 p(x,zθ)p(x, z| \theta) 極大化,那麼這個分佈就能擬合觀測樣本的真實分佈。

對於單高斯分佈,我們直接可以利用極大似然來優化求解。而對於多高斯分佈,我們不知道不同觀測樣本服從哪些子高斯分佈,因此可以採用EM算法來優化GMM。具體如下:

每次迭代包含兩個步驟:
E-step:初次迭代需隨機初始化K個高斯分佈,非初次可由M步得到各個分佈。每個觀測樣本x都能
計算出其在各個分佈中的值,然後做softmax,得到樣本x屬於各個分佈的概率。
M-step:對下界函數求極大,計算新一輪迭代的模型參數。

那麼高斯混合分佈中的多個不同的子分佈就是EM算法中的隱變量(有沒有感覺EM與GMM很配)。詳情可以看鏈接 高斯混合模型

由上面EM算法的簡介,可知其中的E步,M步是相互迭代過程,整體上是獨立學習過程,那麼如何把他和神經網絡結合起來呢?論文中使用的不是標準的EM算法,而是借鑑了其思想。

GMM訓練與參數更新

在Estimation network中,會得到樣本屬於高斯混合分佈中各個分佈的概率 γ^\hat{\gamma}
p=MLN(z;θm)γ^=softmax(p) p = MLN(z; \theta_m),\hat{\gamma} = softmax(p)
假設我們先驗性的認爲應該有K個不同子分佈的高斯混合分佈,那麼γ^\hat{\gamma} 就是k維的向量。這一步就相當於EM算法中的E步,這樣就確定了樣本屬於各個隱空間概率。

下面我們將此代入M步中,求下界函數極值時的參數,也就是對參數求導,求下界函數導數爲零時參數的值,可得以下:
在這裏插入圖片描述
上式中的,ϕ^k,μ^k,Σ^k\hat{\phi}_k, \hat{\mu}_k, \hat{\Sigma}_k 分別表示第k個分佈在GMM裏的概率,均值,協方差。當取上面這些值時,下界函數可取極大值。(注意ϕ^k,μ^k,Σ^k\hat{\phi}_k, \hat{\mu}_k, \hat{\Sigma}_k取值結果是由Estimation network的輸出p決定的,並不是模型學習的參數。

得到這些ϕ^k,μ^k,Σ^k\hat{\phi}_k, \hat{\mu}_k, \hat{\Sigma}_k 取值後,我們直接將其帶入到高斯混合分佈公式中得:
在這裏插入圖片描述
理論上這個似然函數越小(因爲取負了),得出高斯混合模型越能擬合觀測樣本。

預測

當模型訓練好後,來了一批預測樣本,直接將計算這些預測樣本的E(z) 值,值越大可能就越異常,可根據先驗知識,設一閾值。

損失函數

在這裏插入圖片描述
第一項:自編碼的重構誤差
第二項:高斯混合模型的似然函數(可以反向更新DAE參數,同時DAE又可更新GMM中的均值,協方差等)
第三項:防止矩陣不可逆

個人總結

  • 論文中的Estimation network的輸入不僅包含樣本降維後表示,而且包含了重構誤差特徵,這一點比較特別也很重要。
  • 該算法將EM算法的E步驟中的樣本屬於各子分佈概率替換爲端到端架構中子Estimation network的輸出。並且由利用EM算法中的M步對GMM中的均值,協方差等做參數估計,然後極大化似然函數。這是該論文一大亮點。
  • 該算法將降維過程和密度估計過程進行聯合訓練,相對傳統的獨立訓練方式,更容易脫離局部最優。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章