異常檢測綜述


原文地址:http://www.cs.umn.edu/sites/cs.umn.edu/files/tech_reports/07-017.pdf

摘要

這篇文章對常見的異常檢測算法進行了分類,在每一類中,給出了這一類問題的基本假設(什么是正常,什么是異常),針對該類問題的基礎方法,以及對基礎方法的擴展。最后給出了關於計算復雜度的討論。

1. 引言

異常檢測應用廣泛。本文給出的方法,有些只適用於某些場景,但有些方法有很強的普適性。本文的目標是給出一個結構性的關於異常檢測方法的介紹。

1.1 異常的定義

異常檢測與噪聲去除以及噪聲適應不同,噪聲去除需要在正常信號中去除噪聲信號,而噪聲適應實際上關注的是模型在噪聲出現時的魯棒性。異常發現與創新發現也不同,創新發現是為了發現與正常模型不適配的模式。

1.2 挑戰

  • 定義一個正常的區域並不容易,有時候正常和異常很難區分;
  • 異常如果來自惡意入侵,入侵者通常會偽裝,這使得異常的檢測格外困難;
  • 在某些領域,正常信號的定義是會不斷變化的,當前的正常信號可能過一段時間就是異常的;
  • 不同領域對異常的定義是不一樣的,某個領域的經驗很難遷移到另外一個領域;
  • 異常檢測模型的訓練樣本,通常很難獲取;
  • 正常的數據中通常含有噪聲,使得它看起來很像異常數據,因此很難判斷;

1.3 相關工作

1.4 我們的貢獻

針對六大類場景,分別分析了它們對於異常的核心假設,這些場景下的基礎方法,以及,前人在這些場景下提出的方法,是怎樣在基礎方法的基礎上變化而來的。最后分析了這些方法的計算復雜度。

1.5 本文的組織結構

2. 異常檢測問題的不同方面

介紹了,為什么需要這么多的異常檢測算法,因為每個異常檢測問題都有其特殊性。

2.1 輸入數據的本質

在不同的異常檢測問題中,數據的形式不一樣,因此不能使用同一套異常檢測算法,需要分別開發;
有些問題中,樣本是彼此孤立的,但另外一些問題中,樣本是彼此相關聯的。比如時序數據,圖數據,社交關系數據,空間數據等等。正因為數據的彼此關系不同,所以也需要有不同的異常檢測算法來處理。

2.2 異常的類型

點異常,異常點與其它點的分布明顯不同,大部分異常檢測處理的是這種問題;
上下文異常,也叫做條件異常,就是說,一個點只有在特定的上下文下,才叫做異常,如果沒有這個上下文,這個點就是正常的。這種情況下,我們通常會用兩類特征來描述一個樣本,一個是上下文特征(比如,在空間數據中,經緯度就是上下文特征,在時序數據中,時間點就是一個上下文特征),二是行為特征,也就是除了上下文特征之外,樣本點本身屬性的特征。
集合性異常,單個點並不構成異常,但是多個這樣的點集合在一起,就構成了異常,典型的例子是心電圖,如果有驟停,那就是集合性異常。另外一個典型的例子是,計算機操作的異常,單個操作都是正常的,但是幾個操作聯合在一起,就意味着數據的竊取,這就是不正常的。集合異常更多的出現在空間數據、社交數據、時序數據中。
點異常和集合性異常,在加入上下文之后,也可以變為上下文異常問題。

2.3 數據的標簽

數據的標簽不易獲取,按照標簽的情況,把異常檢測問題分為三類,第一,有監督,這種情況就是簡單的分類預測問題,比較簡單,本文中不予介紹,第二,半監督,第三,無監督。

2.4 異常檢測算法的輸出

分數,或者是標簽(是否)。

3. 異常檢測算法的應用

3.1 計算機的入侵檢測

由於數據樣本量比較大,而且對誤報非常敏感,因此適合使用無監督或者半監督的方法。
分為基於客戶機和基於網絡兩類方法。

3.2 欺詐檢測

基本思路是,對用戶通常的使用習慣建模,一旦用戶行為與習慣不符,就報警。
第一,信用卡欺詐,第二,手機欺詐,第三,騙保欺詐,第四,內部交易欺詐

3.3 醫療和公共健康異常檢測

3.4 工業危害檢測

第一,接卸單元的錯誤檢測,第二,結構缺陷檢測

3.5 圖像處理

3.6 文本中的異常檢測

3.7 傳感器網絡

4. 基於分類的異常檢測方法

基於這樣的假設:一個可以將正常與異常區分的分類器,可以在給定的特征空間內學習到。
可以分為兩類:多類異常檢測和一類異常檢測,多類異常檢測的原理是,訓練集中指定了多個正常類的樣本,對每個正常類單獨學習一個分類器,面對一個測試樣本,用每個分類器逐個判斷,如果不能判斷它屬於任何一個正常類,那么它就是異常的。一類的異常檢測,通常使用one-class svm算法。

4.1 基於神經網絡

多類的就是正常神經網絡,單類的有點意思,對輸入樣本進行編碼,然后恢復,計算輸入和輸出​​之間的偏差,小於一定的閾值就是正常樣本,否則就是異常。

4.2 基於貝葉斯網絡

主要用於多類的異常檢測。對於單變量,通過訓練數據統計出先驗和似然,學習后驗就好了。對於多變量樣本,假設多個變量之間是相互獨立的,分別計算每一個變量的后驗,然后聚集起來即可。

4.3 基於支持向量機

主要用於一類的異常檢測。

4.4 基於規則的方法

比如RIPPER和決策樹。先用這些算法生成一些規則,每個規則對應了一個比例,即滿足這個規則的樣本,是正常樣本的比例。對於一個測試樣本,先判斷它滿足多少規則,對於滿足性最好的規則分數,用1減去這個分數,就是這個樣本作為異常樣本的概率。

5. 基於最近鄰的異常檢測方法

基於這樣的假設:正常的樣本都存在於密集的鄰域內,而異常的樣本通常離自己的最近鄰很遠。
這里,包括第6章中基於聚類的度量標准,僅要求距離是正定的,對稱的,並不要求滿足三角定理。
分為兩類:一是通過第k近鄰的距離來判斷,二是通過樣本點所處位置的密度來判斷。

5.1 使用第k近鄰來判斷

5.2 使用相對密度

​LOF值=k近鄰的密度/當前點的密度​​​​​​​​​​

6. 基於聚類的異常檢測方法

一共可以分為三類,第一類的假設是,正常類的樣本屬於某一個聚類中心,而異常類的樣本不屬於任何一個聚類中心,(需要用到一些,不是所有樣本點都會划分到某個聚類中心的聚類算法,比如DBSCAN);第二類的假設是,正常樣本離他們的聚類中心很近,而異常樣本離他們的聚類中心很遠,(需要用到那些,對每個樣本點都有一個聚類中心划分的聚類算法,比如kmeans);第三類的假設是,正常樣本屬於稠密而且較大的聚類中心,而異常樣本屬於稀疏而且較小的聚類中心。
​## 6.1 基於聚類和基於最近鄰方法的不同
基於聚類的方法,根據樣本點與聚類中心的距離判斷是否異常,而基於最近鄰的方法,根據樣本點與最近鄰的關系判斷是否異常。

7. 基於統計的異常檢測方法

基於的假設是:根據我們假設的樣本生成模型,正常樣本被模型生成的概率高,而異常樣本被模型生成的概率低。

7.1 基於模型參數的方法

基於高斯模型。
基於回歸模型,基於單變量的ARIMA和基於多變量的ARMA。
基於混合參數分布的模型,分為兩種,第一種針對正常樣本和異常樣本分別建模,認為他們屬於不同的分布,第二種僅針對正常樣本,建立混合分布模型。

7.2 非參數的方法

基於直方圖
基於核函數​​​​

8. 基於信息論的方法

基於的假設是:異常數據反映出了數據集中異常的信息內容。
對於一種信息度量L,我們需要在目標數據集D中尋找一個盡量小的子集,使得L(D)-L(D-I)盡量大,其中I就是我們排除的盡量小的子集。優點是可以非監督的運行,並且沒有對底層的數據分布有任何假設。

9. 基於譜分析的異常檢測方法

​基於的假設是:數據可以被嵌入到一個低維的子空間中,且在這樣的空間中,正常和異常的樣本更容易區分。
常用基於PCA的方法,及其變種。

10. 處理上下文異常​​​​

常見的上下文屬性通常包括,第一,空間信息,第二,圖相關的信息,第三,序列信息,第四,屬性(Profile)信息。兩種處理思路,第一種是把上下文異常問題轉化為單點異常問題處理,第二種是對數據結構進行建模,然后用模型去處理上下文異常。

10.1 轉化為單點異常檢測問題

10.2 應用數據中的結構信息

11. 處理集合異常

​​處理集合異常時,最關鍵的是處理樣本之間的關系,目前有三類關系被重點關注,分別是時序關系、空間關系、圖(社交)關系。

11.1 處理時序異常

兩種情況,一為符號序列,比如計算機系統調用序列,二位時序序列,即隨時間變化的變量序列。

11.1.1 在一組序列中發現異常序列

兩種方案,第一,轉化為點異常檢測的問題。
對序列建模。

11.1.2 在長序列中發現異常

​11.1.3 判斷在一個給定序列中某個模式出現的頻率,是否高於期望頻率

12. 各種異常檢測算法的相對優勢和劣勢

不同的應用場景,不同的數據分布,不同的計算條件,適用不同的算法,不能一概而論。

13. 總結和未來工作​​​​​​​​​​


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM