Anormaly Detction/Density Estimation
無監督學習的另外一個應用是異常檢測,主要是驗證新的樣本數據是否是異常數據,常用於工業質量檢驗等。
我有一批全部正常(或大部分正常)的數據
主要的手段是:
(基於正態分佈的)異常檢測(密度估計)
密度估計就是建立起一個模型來計算樣本正常的概率
這個過程中,有這麼幾個問題是需要去考慮的:
1. 我們怎麼建立模型來計算
2. 如何評估/調整建立的這個模型
3. 我們的閾值
4. 我們的特徵如何選取
首先,我們考慮
如何建立模型來計算p(x) ?
- 從數據的特徵分量中選擇我們認爲有助於識別異常數據的特徵分量
xj ,構建訓練集 - 假設訓練集數據的每個特徵分量都是服從正態分佈的,也就是
xj∼N(μj,σ2j) 。 - 計算每一個特徵分量對應的
μj,σ2j
μj=1m∑i=1mx(i)j 其中,σ2j=1m∑i=1m(x(i)j−μj)2 m 很大時,σ2j 的估計用總體方差1m 和樣本方差1m−1 的差異並不明顯。 - 對於新的樣本,計算
p(x) p(x)=p(x1;μ1,σ1)p(x2;μ2,σ2)...p(xn;μn,σn)=Πnj=1p(xj;μj,σj)=Πnj=112πσ√e−(xj−μj)22σ2 \spce(1) - 判斷
p(x)<ϵ
就理論而言,(1)式如果要成立,那麼所有的特徵分量
(這裏的概率密度函數用的是正態分佈,那麼可以說我們學習到的是基於正態分佈的密度估計。那如果我們假設
這裏的另外一個問題是需要做一個區分:在數學中,我們將分佈函數
接下來
考慮如何評估並且調整建立的模型和閾值ϵ 的選取?
我們在supervise learning中瞭解到,對於一個模型,最好是能夠一個數值方式來對模型進行評估。可以是分類的準確率,也可以是評價矩陣,也可以是精準率/召回率,或者F1-score。並且可以把數據集分成訓練/驗證/測試集。
對於驗證集和測試集,我們假設其都是帶有label的數據,正常數據
1. 在訓練集
2. 對驗證集的數據
3. 數值評估。顯然驗證集的
閾值
參考以前選
異常檢測 v.s. 監督學習
在上面的模型評估中,我們使用了一些帶有label的數據,並且我們的過程和前面在監督學習中涉及的有一些類似。所以會產生的一個疑問就是:我們爲什麼要用Anormaly Detction,而不用supervise learning ?或者轉換一下:我們在什麼情況下考慮使用Anormaly Detction,什麼情況下使用supervise learning
我們主要從兩個方面去判斷使用的方法:1.看數據中陽性數據
和陰性數據
當陽性數據之間的差異比較大(數據量不大),甚至到彼此之間沒有任何的共同點,下一次出現的異常數據可能根本就沒有在現有的陽性數據裏面出現,算法並不能從已有的陽性數據中學習到足夠的經驗,那麼我們可以考慮使用異常檢測的方法。如果陽性數據比較相似,從現有的陽性數據出發可以預測到下一次的陽性數據(陽性數據之間存在着某種關係),那麼就可以使用監督學習的方法。
當然,這裏面更重要的其實還是陽性數據的數量。例如:我們前面學習過的垃圾郵件分類。垃圾郵件之間的差異性確實會比較大,但是因爲垃圾郵件的數量特別多,所以我們認爲這是一個監督學習的問題,而不是一個異常檢測的問題。
特徵值的選取
我們在前面已經學習過了如何建立並且評估一個異常檢測的模型,但是其中有一點我們似乎忽略掉了。我們只提到了選擇合適的特徵分量來構建訓練集,但是我們並沒有說如何去選擇。那麼剩下的工作就是,我們怎麼去選擇特徵分量。
這個工作主要是從兩個方面去着手:
1. 非高斯分佈的特徵值處理
在前面我們假設各個特徵分量是服從正態分佈的,那如果它們不是服從正態分佈的話,我們的算法還能夠繼續使用麼?答案是肯定的,因爲我們可以將非高斯分佈的特徵值轉換成爲服從正態分佈的新特徵。常用的手段有:
2. 如何增加合適的新特徵
這部分的工作主要是在於error analysis。
我們可能會遇到這麼一種情況,我們知道一個樣本是異常的,但是按照我們現有的模型去計算其
至此,我們的異常檢測的基本過程就已經學習完成!
拓展:基於多變量高斯分佈的異常檢測
前面已經學習過了基於單變量正態分佈的異常檢測,現在來了解基於多變量高斯分佈的異常檢測。
我們需要了解這麼幾個問題:
1. 什麼是多變量的高斯分佈
2. 我們怎麼將多變量高斯分佈運用到異常檢測中?
3. 單變量/多變量高斯分佈兩者有什麼關係?
4. 做異常檢測時,應該如何進行選擇
多變量的高斯分佈
對於一個數據
其中
對於矩陣
基於多變量高斯分佈的異常檢測
我們前面做error analysis的時候提到過這麼一種情況:對異常數據
以下是檢測過程:
1. 對模型
2. 對新數據
3. 判斷
單變量/多變量高斯分佈兩者異常檢測有什麼關係
單變量是多變量的一種特殊形式,是
如何選擇合適的高斯分佈
單變量 | 多變量 | |
---|---|---|
處理特徵間的關聯 | 手動構建新特徵 | 自動發現 |
計算成本 | 低, |
高 |
訓練集大小 | 必須滿足 |
在使用多變量的時候,如果出現了
1. m是否大於n
2.