張全蛋告訴你什麼是異常檢測(Anomaly Detection)

什麼是異常檢測

異常檢測就是找出不合格的產品。

有一個富土康質檢員,叫張全蛋。假設他每天的任務就是檢測剛出廠的iPhone 是否合格

假設正常的iPhone都是寬7cm,長14.3 cm左右,都集中在畫圈的位置

但是有兩個iPhone,一個寬度特別小,一個長度特別大

張全蛋發現了異常,於是秉著嚴肅認真的精神,張全蛋報告了領導。這個過程就是異常檢測

如何進行異常檢測

張全蛋有一個的公式,可以告訴他剛出廠的iPhone是正常的的概率是多少。

我們來仔細看一下這個公式

這個公式需要用到三個數,x , musigma

x是要檢測的iPhone的特徵,可能有n個特徵, x_{1}, x_{2}, ...,x_{n}

另外兩個值, musigma 需要通過歷史數據來計算,也就是用訓練數據來計算。

mu 是特徵的平均值

sigma^{2} 是特徵的方差

知道了 musigma ,當一個新的iPhone出廠時,張全蛋就可以套用這個公式計算它是正常手機的概率了。

如果概率小於某一個臨界值,他就可以向領導報告異常。

這個公式適用於多個特徵的情況,比如我們知道重量,直徑,長,寬,高,五個特徵。那麼最終的概率就是五個概率相乘的結果。

這個公式有一個前提,假設每一個特徵都基本複合高斯分布,也就是正態分布,因為正態分布長的像鍾,所以也叫鍾性分布

異常檢測其他方法

如果有多個特徵,我們還可以用多元正態分布,進行異常檢測。

和剛才的公式大同小異,只不過把方差換成了協方差。

這個公式的缺點是計算量比較大,尤其是特徵多的時候。

此外,異常檢測還有一些技巧,比如當特徵太多的時候可以進行,PCA, 主成分分析。對數據降維,比如三維變二維。

如果特徵分布不像是高斯分布,不是鐘形的,我們可以對數據進行一些變換,比如開根號,取對數,平移,使特徵的分布變得更像鐘形。

異常檢測用途

欺詐檢測,檢測你的信用卡是否被別人盜刷了。卡的使用地點,使用頻率,和使用時間都可以作為輸入特徵,尋找異常。

數據中心的監測。輸入特徵包括,內存使用,CPU負載,硬碟佔用率。通過異常檢測找出出問題的機器。

異常檢測有這麼多其他應用,即使有一天富土康倒閉了,張全蛋也不怕找不到工作了。

bilibili 視頻


推薦閱讀:

AS自帶的 檢測工具Lint
異常檢測之SOS演算法
android lint中的probable bugs
異常日誌監控之日誌採集

TAG:異常檢測 | 機器學習 |