史上最全異常檢測算法概述


幻燈片1

Anomaly Detection: A Survey

 

幻燈片2

1、異常的一些概念及異常檢測的挑戰

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

3、基於分類的異常檢測算法

4、基於最近鄰的異常檢測技術

5、基於聚類的異常檢測技術

6、統計異常檢測技術

7、信息理論異常檢測技術

8、譜異常檢測技術

9、上下文異常處理

10、處理集合異常 

11、瑣碎點

 

 

 

 

 

 

 

幻燈片3

1.1    What are anomalies?

 

幻燈片4

 

l 1.2   異常和噪聲、奇異點 的區別

 

l  1、噪聲的處理分為兩種:

l      noise removal---》在數據分析之前把噪聲刪除

l      ‚noise accommodation---》將噪聲忽略

l  2、novelty detection ---》通常情況下,奇異點在被檢測之后會被歸為正常

 

幻燈片5

1.3    Challenges

l  正常和異常的界限並不是十分的精確

l  異常點表現得正常難以確認

l  正常的表現不斷變化

l  在不同的應用場景中,異常的定義是不同的

l  標簽數據難以獲得

l  噪聲,難以確認和刪除

 

幻燈片6

1.4 異常檢測的一些相關點

 

幻燈片7

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

l 2.1    輸入數據的特性

l      ① 輸入的數據包括:對象,點,記錄,向量,事件等

l      ② 屬性的特點決定用異常檢測的方法

l     ③ 輸入的數據可以彼此之間有關系

l           eg.  序列數據、空間數據、圖數據)

l         序列---》時間序列

l         空間---》與其相鄰點有關系

l        圖---》輸入數據表示成點,通過邊相連

 

 

幻燈片8

l 2.2    異常的類型

l       ①點異常(相對於正常點)

l         ②上下文異常  

l         ③集合異常

 

 

 

 

 

幻燈片9

2.3    數據的標簽

       ①有監督的異常檢測

  問題:1、帶正常和異常標簽的數據的數量不均衡

2、獲得精確的、有代表性的標簽很困難,特別是對於異常數據來說

      ②半監督的異常檢測

 只訓練正常或異常的數據

      ③無監督的異常檢測

  隱形的假設:正常的數據相比異常的數據來說更加的頻繁。若是假設不成立錯誤率較高

有些半監督的算法可以應用於無監督檢測基於假設數據中具有極少的異常數據,並且算法對於異常是魯棒的

幻燈片10

2.4    異常檢測的輸出:

 

①得分---異常程度

②標簽---正常/異常

幻燈片11

3    基於分類的異常檢測算法

l 3.1  基本概念

l       ①Assumption: A classifier that can distinguish between normal and  anomalous classes can be learnt in the given feature space

 

l      ②基於標簽的種類可以將分類問題分為兩類

l  a.  多分類問題(多個正常分類的標簽)

l  b.  單分類問題

l             (只有一種分類標簽,學習一個邊界)

l                |- one-class SVMs

l                |- one-class Kernel Fisher Discriminants

 

 

 

 

 

 

 

 

 

 

 

幻燈片12

l 3.2     算法

l ①基於神經網絡(適用於單分類和多分類的數據集)

l |-多層感知器(Multi Layered Perceptrons

l |-神經樹(Neural Trees

l |-自適應網絡(Auto-associative Networks 

l |-基於自適應共振理論(Adaptive Resonance Theory Based

l |-基於徑向基函數(Radial Basis Function Based 

l |-Hopfield Networks

l |-振盪網絡(Oscillatory Networks 

l      多分類的神經網絡步驟:

l              1、利用正常的多個分類的數據訓練模型

l              2、把測試數據輸入模型,若是神經網絡接收就是正常,否則是異常

l       復制因子神經網絡(Replicator Neural Networks)用於單分類的異常檢測

 

幻燈片13

②基於貝葉斯網絡(適用於多分類的數據集)

         |-給定測試數據,估計其最大后驗概率

         |-處理多分類時需要將每個屬性的后驗概率進行組合

③基於支持向量 (適用於單分類)

          |-學習一個區域,若是測試數據落到這個區域則是正常,否則異常

          |-Eg: Robust Support Vector Machines (RSVM) 魯棒的SVM  有較好的精確率和效率

④基於規則(適用於單分類和多分類的數據集)

           |-從正常的行為中學習規則,測試數據若是沒有被任何規則包括則認為是異常

            步驟:1、利用規則學習算法學習規則,例如重復增量修枝( RIPPER )、決策樹( Decision Trees 

        2、發現最適合測試數據的規則

             關聯規則挖掘可以用於單分類問題(以無監督的方式),支持度—〉排除支持度較小的規則,同時會產生頻繁相集

幻燈片14

l 3.3    復雜度和優缺點

 

l 復雜度

l 訓練階段: 決策樹會較快,基於二次最優化的算法(eg. SVM)會較慢

l 測試階段: 分類技術在測試階段會較快---分類的模型已經訓練好

 

l 優缺點:

l      |- 可以處理多分類問題在測試階段速度較快

l       |- 多分類問題需要精確的多分類標簽直接將一個確定的標簽賦給測試數據有時候會不恰當(解決:利用概率)

 

 

 

幻燈片15

4   基於最近鄰的異常檢測技術

l 4.1   基本概念

l Assumption: Normal data instances occur in dense neighborhoods, while anomalies occur far from their closest neighbors.

l 分為兩類:

l 異常得分:一條數據到它k個近鄰的距離

l                        一條數據的相對密度

l 4.2   算法

l ①基於到K個近鄰的距離

l      |-獲得一條數據的異常得分(計算到K個近鄰的總的距離,利用距離小於d的近鄰的數量)

l      |-提高效率---剪枝(線性)/抽樣(omn))

 

 

 

幻燈片16

l ②利用相對密度(一條數據落於一個高密度的環境中--〉正常,否則異常)

l     a.   LOF( Local Outlier Factor)

l (以一條數據為中心,尋找能包含k個近鄰的最小超平面,求其密度 (K/V) ,若是正常則與其臨近點的密度相似,異常則比其最近臨近點還會低)    

 

 

幻燈片17

l b.   COF(Connectivity based Outlier Factor )

l (依次找一點最近的k個點鍵入點集)

 

 

l LOF的兩個變形:

l ODIN:給定點集在在其K近鄰點集中的數量

l MDEF:給定數據的最近鄰的標准差

l 一些其他的變形:概率后綴樹(Probabilistic Suffix Trees (PST))尋找最近鄰

 

幻燈片18

l 4.3   復雜度和優缺點

 

l 計算復雜度  

l  1oN2)(k-d treesR-trees   

l  2、解決oN2)  采用簡單取樣的話,正確率難以保證

l 優缺點

l     |-無監督,不需假設數據屬於何種分布,數據驅動/適應不同的類型數據類型方便,只需定義合適的便是數據間距離的方法即可

l      |-因為無監督,正常的數據沒有足夠的鄰居或者異常點有很多的鄰居/計算復雜度/定義數據之間的距離有時會很困難,例如圖,序列

 

幻燈片19

5    基於聚類的異常檢測技術

l 5.1  基本概念 

l      分為三類:

l 1Assumption: Normal data instances belong to a cluster in the data, while anomalies either do not belong to any cluster.

l eg.   

l DBSCAN

l ROCK(一種粗暴的算法,直觀的把兩個類別內數據有鏈接的,並且連接的多的聚在一類里邊。拋棄了距離度量,只用是否有鏈接來衡量。)

l  SNN clustering 共享最近鄰聚類 

l  FindOut algorithm

l  WaveCluster algorithm

l 結合基於密度方法和ROCK思想,保留K最近鄰簡化相似矩陣和個數

l 缺點:目的並不是為了檢測異常而是為了發現群集(clusters

 

幻燈片20

l 2、Assumption: Normal data instances lie close to their closest cluster centroid,while anomalies are far away from their closest cluster centroid.

l 兩步:利用聚類算法聚類/每個點的異常程度等於到最近類中心點的距離

l eg.

l Self-Organizing Maps (SOM)(可用於半監督模型)

l K-means Clustering

l Expectation Maximization(EM)

l 缺點:如果異常數據自己成簇,將難以發現異常

 

幻燈片21

l 3、Assumption: Normal data instances belong to large and dense clusters, while anomalies either belong to small or sparse clusters.

l 簇的大小或者密度小於一定閾值就認為是異常

l eg.

l FindCBLOF--CBLOF

l 基於聚類和最近鄰的區別:

l   |-聚類:利用數據所屬的簇來評價數據

l   |-最近鄰:用其局部的近鄰來分析數據

 

幻燈片22

l 5.2 復雜度和優缺點

 

l 計算的復雜度:

l 取決於要從所給數據中聚出多少個類

l 可以是oN2)若是計算每一對數據的距離

l 也可以是線性:啟發式的算法例如K-means

l 測試階段會很快--只需跟有限幾個簇比較即可

l 優缺點:

l    |-無監督/可適應一些復雜的數據類型/測試階段速度較快

l     |-主要用於聚類,並不是主要用來異常檢測/有些算法,每個數據要貼一個標簽,異常數據也會貼一個標簽/有些聚類算法只有異常數據不能成簇是效率才會較好/計算的復雜度 oN2

 

幻燈片23

6    統計異常檢測技術

l 6.1    基本概念

l Assumption: Normal data instances occur in high probability regions of a stochastic model, while anomalies occur in the low probability regions of the stochastic model.

l 6.2  算法

 

l     a. 參數化方法

l 基於假設:正常的數據都是由一個參數為 Θ的分布產生的,概率函數 f(x,Θ)

l 統計假設檢驗:

l H0:假設數據由估計的分布產生(參數為Θ)    若是拒絕這個假設為異常

l ①基於高斯模型   數據由高斯分布產生

l (一個簡單的異常檢測--〉數據落在 µ ± 3σ之外的就是異常,  µ ± 3σ 99.7%

l t分布

 

l x2  若卡方分布的值較大說明數據中含有異常

 

 

 

幻燈片24

l      基於高斯分布的變形的算法 :Rosner test、 Dixon test、Slippage Detection test

l ②基於回歸模型

l 基本回歸分為兩步:1、利用數據訓練回歸模型

l                                        2、利用殘差,表示數據的異常程度

l eg.

l ARIMA:一個強健的模型,在訓練階段異常不僅能隱藏,還能被檢測出  處理多變量的時間序列數據

l ARMA:將多變量投影到單變量

 

 

 

幻燈片25

③基於混合參數分布

|-分為兩類:1、為異常和正常的數據作不同的參數分布模型

                          2、只為正常的數據作混合參數模型

1、假設正常和異常數據分數不同的高斯分布,具有相同的期望,但是方差不相同。

 利用EM算法來不斷迭代調整

2eg.  高斯混合模型、混合的泊松分布

幻燈片26

l b.   非參數方法

l    ①基於直方圖

l     利用直方圖對正常數據畫像

l 單變量基本的算法:在該屬性的不同值上建立直方/若是落進任一直方認為是正常

l 難點:直方的大小難以把握:太小--〉數據難以包括

l                                                          太大--〉包括異常數據

l 對於多變量的:分別處理單個變量然后再集合起來

 

幻燈片27

l ②基於核函數

l parzen windows estimation

l ③基於密度估計技術

 

l  Desforges et al. [1998] proposed a semi-supervised statistical technique to detect anomalies which uses kernel

l functions to estimate the probability distribution function (pdf) for the normal instances

 

幻燈片28

l 6.3    復雜度和優缺點

 

l 計算復雜度

l 高斯、泊松、多項式分布通常是線性的

l EM 每次迭代是線性的

l 核函數  oN2

l 優缺點

l    |-若是對數據分布的假設成立,會有統計上的異常檢測方案/若是估計分布階段對異常足夠魯棒,可以用無監督的方式

l    |-對數據分布的假設難以確保成立/直方圖難以發現屬性間的關系

 

幻燈片29

7    信息理論異常檢測技術

l Assumption: Anomalies in data induce irregularities in the information content of the data set.

l 主要評價方法:Kolomogorov Complexityentropyrelative entropy

l 算法:Local Search Algorithm (LSA)(線性)

 

l 計算復雜度: 指數級

l 優缺點:

l |- 無監督/不需對數據的分布做假設

l |-效果的好壞取決於評價方法/對一條測試數據難以得到異常的程度

 

幻燈片30

8    譜異常檢測技術

l 8.1   基本概念 

l Assumption: Data can be embedded into a lower dimensional subspace in which normal instances and anomalies appear significantly different.

l 目標:尋找子空間---將異常和正常信息識別

l Eg.  PCA主成分分析   降維

 

 

幻燈片31

l 8.2   復雜度和優缺點

 

l 計算復雜度

l pca 在數據上一般是線性的但是在維度上是oN2

l 優缺點

l  |-可降維,適用於高維的數據類型/無監督的方式

l  |-只有異常和正常數據在投影到低維空間能有效區分時譜分析才是有效的/計算的復雜度很高

 

幻燈片32

9   上下文異常處理

l 9.1 基本概念 

l 上下文的屬性

l 空間:點的位置和相鄰點

l 圖:點及邊

l 序列:在序列的位置(eg.  時間序列)

l 畫像:  不一定具有空間和序列的結構

l 方法:

l  |-簡化為點異常檢測

l  |-利用數據的結構

 

幻燈片33

l 9.2  算法

l    a.   簡化為點異常檢測

l 分為兩步:     1、對於每條數據利用上下文屬性識別上下文

l                              2、利用已知的點異常檢測算法計算每條數據的異常得分

l Eg. 

l 假設數據的屬性分為contextual and behavioral attributes.

l 並且contextual and behavioral attributes.  分屬於不同的混合高斯模型U/V

l 則一條數據可以用<x,y>來表示

l p(Vj|Ui) 代表 behavioral attributes 由混合模型Vj 產生 的概率,在contextual attributes. 由 混合模型Ui 產生的條件下

l 則屬於的異常得分:(全概率)

 

l 其他方法: Peer group analysis ; class  anomaly detection

 

 

幻燈片34

l b.   利用數據的結構  (將數據的屬性分解並不簡單,eg 時間序列數據,事件序列數據)

 

l 方法:利用訓練數據給出的上下文預測,若是與觀察值有明顯不同,則認為是異常    eg.  回歸

l 對於時間序列數據回歸模型: robust regression、 auto-regressive models、 ARMA models、 ARIMA models、 Support Vector Regression

 

l 事件序列: Frequent  Itemset  Mining 、 Markov Models(利用歷史數據計算事件的條件概率)

l FSA:基於前n個數據預測之后的數據

 

幻燈片35

l 9.3   復雜度和優缺點

 

l 計算復雜度

l 簡化為點異常檢測:在第一個階段利用划分的技術會較快/用聚類或混合模型會較慢,第二個階段課采用較快的點異常檢測

l             測試階段較慢:每條測試用例需要划分屬性,病計算異常程度/標簽

l 利用數據的結構:訓練模型階段會相對較慢。測試階段較快

l 優缺點

l |-可以利用實際異常的定義來檢測異常 

l |-只有上下文相關的屬性定義之后,相關技術才會有效

 

幻燈片36

10    處理集合異常 

l 10.1  基本概念 

l Sequential Anomaly Detection Techniques 序列異常檢測

l    ---異常的子序列

l Spatial Anomaly Detection Techniques   空間異常檢測

l    ---異常的子區域

l Graph Anomaly Detection Techniques  圖異常檢測

l    ----異常的子圖

 

幻燈片37

l 10.2   算法 

l   a.    處理序列異常

l ①在一組序列中檢查異常序列  (半監督和無監督的方式)

l    |- 挑戰:1、序列可能不等長 2、測試序列可能不是彼此對齊的或者與正常序列

l    處理不等長的方法:

l    1、假定都等長

l   2、處理成等長的 ,Box Modeling

l   3longest common subsequence as the similarity measure 

l  4、為序列建立模型  ---半監督的算法,需要正常的訓練數據

l    ----馬爾科夫模型(Markovian model

l    ----有限狀態自動機(FSA

l    ----隱馬爾可夫模型( Hidden Markov Model  HMM

l    ----概率后綴樹( Probabilistic Suffix Trees  PST 

l          ----稀疏的馬爾可夫樹( Sparse Markov Trees  SMT

 

幻燈片38

l ②檢測一個長序列中的異常子序列

l 挑戰:異常序列的長度難以確定

l                   因為在輸入序列中包含異常的子序列,建立魯棒的 正常模型是個挑戰    

l 算法:

l      1Window Comparison Anomaly Detection (WCAD)

l      2、 (HOT SAX)

l      3Maximum Entropy Markov Models

l      4、 Conditional Random Fields (CRF) 

l         

 

幻燈片39

l ③ 測試一個字串的頻繁性是否異常---依據其在輸入數據中頻繁程度

l 依據:依據一個字串在給定的數據集合中的頻繁程度是否與其在正常的數據集中的頻繁程度相似,若是差距很大則認為是異常

 

l 算法:

l suffix  trees

l  Interpolated  Markov Models (IMM)

 

 

幻燈片40

l b.    處理空間異常

l 研究較少

l eg. 

l 算法:Multivariate Gaussian Random Markov Fields (MGMRF)

l 因為空間中的點是上下文相關的,先檢查點的上下文異常,然后利用其空間結構聯系起來

 

幻燈片41

11    瑣碎點

l 1、最近鄰和聚類高維失效

l ①高維數據集中存在大量無關的屬性使得在所有維中存在簇的可能性幾乎為零;

l ②高維空間中數據較低維空間中數據分布要稀疏,其中數據間距離幾乎相等是普遍現象

l 2、最近鄰和聚類選擇合適的距離計算方法很重要

l 3、譜技術可以處理高維數據,但是其依據:數據在合適的低維空間可分

l 4、分類技術可以處理上述問題,但是分類問題需要正常和異常的標簽,並且正常和異常標簽的數據數量並不均衡

l 5、統計技術(無監督)當數據是低維的並且假設的數據分布滿足時高效

 

幻燈片42

 

l 6、計算復雜性

l  分類、聚類、統計 在訓練階段較慢,測試階段很快

l 最近鄰、信息論、譜技術 沒有訓練階段,測試階段時間復雜度較高

 

幻燈片43

 

謝謝!

 


免責聲明!

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



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