李宏毅——異常檢測anomaly detection

異常檢測

問題

已知訓練數據
找到一個函數,判斷輸入x是否與訓練數據相似
[外鏈圖片轉存失敗(img-kcrE5FBh-1568732422742)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p4)]
(anomaly 不一定是不好的,也被稱爲novelty ,outlier,exceptions detection)

什麼是anomaly

取決於訓練的數據,與訓練數據不同的就是異常的。
[外鏈圖片轉存失敗(img-wpWvzhYT-1568732422744)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p6)]

應用

fraud detection

訓練數據:正常刷卡行爲
x:盜刷

network instrusion detection

訓練數據:正常連線
x:攻擊行爲

cancer detection

訓練數據:正常細胞
x:癌細胞

如何做異常檢測

binary classification?

類1:正常數據
類2:異常數據
不能解決
原因1:異常數據太多,無法窮舉
[外鏈圖片轉存失敗(img-dbYTpkIF-1568732422744)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p7)]
原因2:異常數據不好收集

分類

  • 訓練數據有標籤,沒見過的東西輸出unkown(open-set recognition)
    模型是open的,能夠對沒見過的東西進行判斷
  • 訓練數據沒有標籤
    • 乾淨的數據
    • 數據有髒東西(anomaly)

with label

例子

辛普森一家分類器

方法

使用現成分類器

訓練一個分類器,給出每個類別的confidence。
[外鏈圖片轉存失敗(img-vyCjYFZT-1568732422745)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p8)]
設置一個閾值,大於該閾值是辛普森,小於該閾值是異常。
可行的方法
confidence:給出最大的confidence
entropy:給出亂度,entropy越大說明分佈平均,不確定是哪個類別。

訓練一個可以直接輸出confidence的網絡

框架

訓練集:辛普森一家的圖片,每個圖片x有標籤y。訓練分類器。獲得confidence,根據是否超過閾值判斷是否爲anomaly
驗證集(模仿測試集):圖片中有辛普森一家的人,也有不是的。
可以通過驗證集來計算f(x)的表現,確定超參數的值(比如閾值)
測試集:輸入圖片x,判斷是不是辛普森一家。
[外鏈圖片轉存失敗(img-BRPTHYay-1568732422745)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p9)]

評估

方式:在dev set上對模型評價
注意:使用正確率不是一個好的指標。因爲正負樣本的比例懸殊。
一個系統可能正確率很高,但是並沒有意義。
False alarm:正常被偵測爲異常。
mising:異常被偵測爲正常。
一個系統的好與壞,取決於False alarm比較重要,還是mising比較重要。
可以利用cost table來衡量系統的好壞。
[外鏈圖片轉存失敗(img-EEgDxBSK-1568732422746)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p11)]
比如癌症檢測,傾向於cost tableB。
還有一些其他的衡量策略,比如AUC。

直接用分類器可能會遇到的問題

比如一個貓狗分類器
會有比貓更像貓的,比狗更像狗的
[外鏈圖片轉存失敗(img-zrIuQAxN-1568732422746)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p12)]

辛普森分類器
根據臉黃不黃判斷
[外鏈圖片轉存失敗(img-r8qK5ZeP-1568732422746)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p14)]

解決方法
學習一個異常confidence低的分類器
生成異常數據
[外鏈圖片轉存失敗(img-hue1oRdm-1568732422747)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p15)]

without labels

例子

twitch plays pokemon
很多人在線玩這個遊戲,因爲有小白,有人故意的不好好玩,所以非常難玩
假設:多數玩家都是正常的,檢查出異常玩家

問題形式化

測試數據:{x1,x2,…xn}
找到一個函數,能判斷輸入x與訓練數據是否相似
說垃圾話(民主狀態,通過vote決定),無政府狀態(隨機選)
[外鏈圖片轉存失敗(img-gGQT4MZl-1568732422747)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p17)]
問題:
只有大量的x,沒有y

做法:

找到一個機率模型,判斷是否是異常。超過閾值爲正常,低於閾值爲異常。
[外鏈圖片轉存失敗(img-AtRGmYXM-1568732422748)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p19)]
假設每個發言都是二維的,用圖表示概率。
[外鏈圖片轉存失敗(img-FYbORv2p-1568732422748)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p21)]
通過likelihood來決定。
10e764ee8065f94eeb7cedffa99c27cb.png
常用的概率密度模型爲高斯模型
6d748abe77ff2681bfa3f56c37a78bf9.png
可能爲其他模型,但是還沒有涉及
高斯模型的最優解爲

在這裏插入圖片描述然後可以用這個模型來判斷是否爲異常,圖中的等高線就是閾值
bdcd55fdc5f4ab4349e4592c2f7a045d.png
可以在更多的featrue上建模,不止是二維的圖像。
1a521b00ed6e54630026d33ab77b7fd3.png​

其他方法

auto-encoder

正常還原度高,異常還原度低
841d78a816f759ae2f38860910bd7a0a.png
4e816110e56841bf9f9a5117a7c06ecb.png

one-class SVM

isolated forest

d4a24c46cec90d962f9d0d76c3801b8d.png

總結

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章