斯坦福NG機器學習課程:Anomaly Detection筆記


Anomaly Detection

Problem motivation:

首先描寫敘述異常檢測的樣例:飛機發動機異常檢測


直觀上發現,假設新的發動機在中間,我們非常大可能覺得是OK的。假設偏離非常大。我們就須要很多其它檢測確定是否為正常發動機。

以下進行數學形式上的描寫敘述,通過概率密度進行預計。例如以下圖:


對正常的數據進行建模。求Xtest的概率。當處於中心位置時概率比較大。而且大於設定的閾值,我們判定為OK狀態,在遠離中心狀態。概率比較小,小於設定閾值我們判定為anomaly點。

Anomaly detection常見應用:


NG課上提到了三個應用方向,第一個是最開始舉例的飛機引擎。然后是欺詐發現,這個在信用卡和購物站點上得到廣泛應用。最后一個是產業界應用,我們須要監視一個計算機系統。我們通過正常執行系統的 內存使用、CUP load等建模。當系統某個值不在正常范圍就可以能是計算機系統中有電腦出現異常狀態。

習題:當我們系統建模后,導致把異常狀態推斷為正常狀態,這時須要減少閾值避免誤判。


GaussianDistribution:

復習高斯分布一些內容,比較熟悉能夠直接跳過。



圖型和概率分布函數。



上圖均值方差表如今高斯分布圖型上的差異。

Parameter estimation:

簡單的說就是預計均值和方差。下圖中寫出的公式事實上能夠通過極大似然預計進行數學上的求解證明。這里就不具體說(翻開數理統計課本能夠找到)。求方差公式中能夠選擇m或者m-1這都無所謂,由於往往數據集非常大。這樣最后計算結果沒什么差別,在機器學習中通常選擇m而在統計學中往往選擇m-1。

選擇m還是m-1在理論上有非常大差別,可是實際應用上沒什么太大差別。


習題:高斯分布密度函數求解


Algorithm

密度函數預計算法:


求P(X)就是密度預計過程。

連乘公式須要每個條件獨立,可是假設不是條件獨立也能這么計算得到正確結果。

習題:對均值方差預計公式。

J下標表示第J個特征


Anomaly detectionalgorithm


1.     選擇你覺得可以區分是否為anomalous 的樣例特征。

2.     擬合參數即均值和方差。

3.     計算給定數據集上的聯合概率密度函數。假設小於設定閾值則判定為異常數據。

進行實例描寫敘述這個算法:


依照上面所寫三步流程即可計算:看左下角圖。假設我們計算聯合概率值較大圖形上反映為高度較高,則判定為normal,假設計算得到高度較低,判定為異常。

到這里為止還僅僅是描寫敘述了算法運行流程。我們並沒有深入描寫敘述每一步細節。

Developing andEvaluating an Anomaly Detection System

我們會發現能用一個數值標准去評價一個學習算法是很重要的,我們能夠嘗試增加某個feature進行評估,然后去掉該feature再次進行評估。這樣得到feature對學習算法的影響。

到如今為止異常檢測我們僅僅利用數據並沒有數據類標簽,是一種無監督學習。

果我們已經有類標簽標記的數據。這樣使用異常檢測算法就能非常好的進行評估!這是非常重要的一種思維轉換。

繼續上面提到的飛機發動機樣例。



我們推薦使用藍色標記的划分,可是紅色標記的划分也有人在這么操作。

算法效果的評估:


習題:非常明顯在test集上的accuracy不是好的評估標准。由於我們這里是傾斜類!須要用到Precision 和recall F_score來進行評估。

閾值的確定能夠通過evaluation metric取值最大確定。當你在設計一個異常檢測系統時,關鍵須要考慮選擇何種feature、設定多大的閾值。


Anomaly DetectionVS Supervised Learning 

講到這里我們肯定都有困惑。當我們有數據類標簽,為什么我們不直接使用監督性學習而使用Anomaly detection,接下來就對兩者進行對照。


首先Anomaly detection 在數據集上特點是:非常少量的positive 數據,非常大量的negative數據,這樣我們使用大量的negative數據可以好的擬合求得聯合高斯概率密度函數。而supervised learning中 positive negative數據量都大。

其次我們有不同類型的異常數據,可是異常數據量非常小,不論什么算法都非常難在小的Anomaly數據集上學習得到Anomaly是什么樣子。

上面兩者對照是你應用Anomaly detection 還是supervise learning 的一些重要區分標准。

Spam是常常提到的一種學習系統。盡管我們有非常多類型的Spam。可是每種類型的Spam我們都有比較多的數據。所以Spam問題我們應用的是supervise learning。

事實上這兩種狀態並非全然切割的。舉例說假設我們在交易時有非常多為Fraud的,則我們學習問題由Anomaly detection 轉變為supervise learning。


習題:直觀對兩種情況的推斷


ChoosingWhat Features to Use


前面說的方法都是假定數據滿足高斯分布,也提到了假設分布不是高斯分布,上述方法也是能夠使用,僅僅是假設我們對分布進行轉換使得近似於高斯分布,那么會得到更好的效果。

上圖就舉例用log等函數進行轉換。實現層面octave以下嘗試轉換就能夠得到非常好近似高斯。

怎樣選擇feature:

思想類似於supervise learning中的error analysis ,當左邊圖進行學習時我們得到了錯誤結果,這時我們須要增加新的特征X2使得那個點與正常數據得到區分!如上圖從左到右所看到的意。

還是回到前面提到的監視數據中心電腦,我們為了分析究竟是哪個特征引起Anomaly,通過構造新的feature來進行推斷。


習題:Anomaly detection 算法不能非常好區分開normal和Anomaly時。我們通常須要添加特征來使得它們得以區分。



免責聲明!

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



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