李宏毅异常检测笔记
本文是李宏毅視頻的筆記
1. 異常檢測定義?
給定一組訓練數據?
找到一個函數檢測 輸入 x 是否相似于訓練數據。
不同的方法使用不同的方式決定相似性。
2. 應用領域
- Fraud(欺詐)?Detection????????
- Training data: 正常刷卡行為, 𝑥x: 盜刷?
- Ref: https://www.kaggle.com/ntnu-testimon/paysim1/home
- Ref: https://www.kaggle.com/mlg-ulb/creditcardfraud/home
- Training data: 正常刷卡行為, 𝑥x: 盜刷?
- Network Intrusion(入侵) Detection
- Training data: 正常連線,??x: 攻擊行為?
- Ref: http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html
- Training data: 正常連線,??x: 攻擊行為?
- Cancer Detection
- Training data: 正常細胞,??x: 癌細胞?
- Ref: https://www.kaggle.com/uciml/breast-cancer-wisconsin-data/home
- Training data: 正常細胞,??x: 癌細胞?
3. 解決方法:
場景1:訓練數據有標注
方法1:? 2分類?
?缺點:
方法2: 借助分類器
先訓練一個分類器
?輸出一個置信度分數(比如 softmax),取最大類別概率和閾值進行比較
缺點:
?上圖為訓練領域內的樣本輸入得到的置信度輸出,顯然大部分都有很高的置信度。
而下圖是非訓練領域的樣本輸入的結果,只有10%樣本得到很高的輸出。
進階算法:待研究
Terrance DeVries, Graham W. Taylor, Learning Confidence for Out-of-Distribution Detection in Neural Networks, arXiv, 2018
- Learning a network that can directly output confidence
方法2 總結
訓練集:
- 訓練數據按分類準備
- 訓練一個分類器,使用某種方法(上面說了兩種)從分類器得到置信度。
- 根據閾值判斷是否異常
驗證集:
- 標注每張圖像是否為異常數據(2分類)
- 計算上面訓練的模型f(x)的的性能,從而調整 閾值 和 其他超參數
測試集:(上線)
- 輸入圖像,f(x) 判斷是否異常
那么如何計算一個異常檢測模型的性能好壞?
不能直接用accuracy 來衡量,因為異常的樣本可能特別少,模型啥都不干可能得到很高的accuracy。
性能好壞的評估與任務有關,看需求!
兩種錯誤:
- 正常樣本識別為異常 (False alarm)
- 異常樣本判定為正常(missing)
根據任務,給它們不同的權重,如下圖所示:
缺點:
老虎和狗可能會有很大的置信度。
解決手段:
場景2:訓練數據無標注
解決手段:
方法1:極大似然估計
?
?
?
?
方法2:自編碼器重建?
?
其他方法?
?參考鏈接:【 李宏毅機器學習:異常檢測 】Anomaly Detection(合輯)(中文)_嗶哩嗶哩_bilibili?
?評價:該教程只是簡單的介紹,細節不夠,仍需要具體嘗試和看論文!
總結
- 上一篇: 1.Linux常见命令
- 下一篇: 小型初创公司Trisymbiotic I