Andrew Ng Machine Learning 專題【Anomaly Detection】
來源:程序員人生 發布時間:2016-04-21 10:39:13 閱讀次數:5572次
此文是斯坦福大學,機器學習界 superstar ― Andrew Ng 所開設的 Coursera 課程:Machine Learning 的課程筆記。力求簡潔,僅代表本人觀點,不足的地方希望大家探討。
課程網址:https://www.coursera.org/learn/machine-learning/home/welcome
Week 9 后半部份 Recommender Systems:敬請等待
Week 9:
-
異常檢測 & 高斯散布
-
異常檢測是1種介于監督學習與非監督學習之間的機器學習方式。1般用于檢查大范圍正品中的小范圍次品。根據單個特點量的幾率散布,從而求出某個樣本正常的幾率,若正常的幾率小于閾值,即 p(x)<? 視其為異常(次品)。正品與次品的 label 值 y 定義為:
y={01if p(x)≥?if p(x)<?
如果某個樣本由x1,x2兩個變量決定,以下圖紅色叉所示:
同1個圓圈內部,表示的是成為正品的幾率相同。越中心的圓圈內部正品率越高。越外層的圓圈內正品率越低。
-
異常檢測1般將每一個特點量的散布假定為正態散布(如果特點量與正態散布差距很大,以后我們會提到方法對其進行修正)。為何是正態散布?由于在生產與科學實驗中發現,很多隨機變量的幾率散布都可以近似地用正態散布來描寫(猜想正確的幾率更大)。因此,以下略微介紹1下正態散布的基礎知識,如果很熟習的同學可以略過這部份。
-
正態散布(高斯散布),包括兩個參數:均值μ(散布函數取峰值時所對應橫坐標軸的值),與方差σ2(標準差為σ,控制散布函數的“胖瘦”)。如果變量 x 滿足于正態散布,將其記為 x~N(μ,σ2)。而取某個 x 的對應正品幾率為:p(x)=12π√σe?(x?μ)22σ2
-
均值 μ=1m∑i=1mx(i),方差 σ2=1m∑i=1m(x(i)?μ)2
-
正態散布曲線與坐標軸之間的面積(即函數積分)恒定為 1,因此“高”曲線必定“瘦”,“矮”曲線必定“胖”:
由圖可知,標準差σ控制著散布函數的“胖瘦”。緣由是由于標準差有關的取值范圍,有著固定的散布幾率(積分):
-
異常檢測算法流程:
-
我們具有1組訓練數據:x(1),x(2),...,x(m),每一個樣本有著 m 個特點量 x1,x2,...,xn
-
將每一個樣本投影到不同的特點的坐標軸上,基于樣本得到各個特點的幾率正態散布曲線
-
假定各個特點的幾率是獨立的,因此單個樣本的異常幾率為
p(x)=p(x1;μ1,σ21)×p(x2;μ2,σ22)×...×p(xn;μn,σ2n))=∏i=1np(xj;μj,σ2j)
-
各個特點的均值為 μj=1m∑i=1mx(i)j,方差為 σ2j=1m∑i=1m(x(i)j?μj)2
-
如果我們有著 10000 個正品樣本,和 20 個次品樣本,我們應當這樣辨別訓練集、交叉驗證集,與測試集:
-
訓練集:6000個正品作為訓練集(不包括次品樣本)
-
交叉驗證集:2000 個正品樣本 + 10 個次品樣本。用以肯定次品幾率的閾值 ?
-
測試集:2000 個正品樣本 + 10 個次品樣本。用以判斷算法的檢測效果
-
特別注意,由于使用異常檢測的樣本集合1般都是偏斜嚴重的(正品樣本遠遠多于次品樣本)。因此,需要在《專題【Machine Learning Advice】》http://blog.csdn.net/ironyoung/article/details/48491237 中提到的 precision/recall/F-score 來進行判斷算法的檢測效果。
-
異常檢測 VS. 監督學習
-
監督學習方法與異常檢測類似,處理對象都是1堆有 label 的樣本,并且目標都是預測新樣本的種別。那末甚么時候使用監督學習的方法?甚么時候使用異常檢測的方法?
-
大體上,區分以下:
-
樣本比例:異常檢測適用于正樣本(y=1,即次品)個數遠遠小于負樣本的個數的情況;監督學習適用于正負樣本個數都非常多的情況
-
異常規律:如果正樣本(y=1,即次品)有著難以預測的模式,引發正樣本的緣由有很多很多,適用于異常檢測;但是如果正樣本有著固定的規律,比如感冒(病因已被研究透徹),可以嘗試基于大量的樣本使用監督學習的方法建立模式進行判斷
-
特點選擇
-
絕大多數情況下,特點量符合正態散布的散布情況。但如果特點的散布極端不符合,我們只能對其進行1些處理,以產生全新的特點來適用于異常檢測算法。例如:
此時,我們有著變換后的特點變量:xnew=log(x1)
-
或,1般情況下我們希望正品的 p(x) 很大,次品的 p(x) 很小。也就是說,在異常情況下某些特點應當變得極大或極小(正態散布中對極大值或極小值的對應幾率都是極小的,所以全部樣本的正品幾率相乘會很容易滿足 p(x)<?):例如創建新變量xnew=x21x2,進1步放大了值增大或減小的程度。
-
Multivariate Gaussion(選學)
-
如果1個樣本有著多種特點,那末整體的正品幾率可以依照以上提到的,視每一個變量為相互獨立然后各自幾率相乘進行求解(我們稱之為 original model)。但是,如果出現了下圖這類正相干(負相干)極強的特點量,同心圓內部的正品幾率必定不同,明顯不適合了:
我們希望本來的同心圓可以更扁,可以變換方向,例如上圖的藍色橢圓。
-
此時,我們可以利用協方差矩陣,構造全新的多變量正態散布公式。此時我們用到的不再是方差 σ2,而是協方差矩陣 Σ∈Rn×n:Σ=1m(x(i)?μ)(x(i)?μ)T。多變量正態散布的幾率公式為:
p(x)=1(2π)n/2|Σ|1/2e?12(x?μ)TΣ?1(x?μ),其中|Σ|表示協方差矩陣的行列式。
-
協方差矩陣與均值,對幾率散布圖的影響以下:
-
original model VS. multivariate Gaussian
-
如果1個樣本有著多種特點,那我們究竟是應當使用 original model,還是 multivariate Gaussian?
-
大體上,區分以下:
-
特點選擇:original model 中的各個單個特點(或創造出的新特點),應當盡可能滿足在異常情況下產生幾率極小的特性;而如果特點之間,發現了正相干或負相干的關系,應當用 multivariate Gaussian
-
計算效力:original model 僅僅乘法,效力較高;multivariate Gaussian 需要計算協方差的逆矩陣,效力較低
-
樣本數目:original model 在訓練集極小的情況下也能夠計算;multivariate Gaussian 最少需要訓練集樣本數目大于特點數目,否則協方差矩陣沒法求逆
-
協方差矩
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
------分隔線----------------------------
------分隔線----------------------------