離群異常新類檢測?開集識別?分佈外檢測?一文搞懂其間異同!
你是否對「
離群檢測(OD),異常檢測(AD),新類檢測(ND),開集識別(OSR),分佈外檢測(OOD Detection)
」之間錯綜複雜的關係感到迷惑?你是否也想要解決開放世界的問題但卻不知道該利用什麼方法解決或不知道從哪個任務入手?這篇最新綜述將讓你對開放世界領域有全新的認識!
標題: Generalized Out-of-Distribution Detection: A Survey
作者: Jingkang Yang, Kaiyang Zhou, Yixuan (Sharon) Li, Ziwei Liu
機構: MMLab@NTU; University of Wisconsin, Madison
連結:
https://arxiv。org/abs/2110。11334
主頁:
https://github。com/Jingkang50/OODSurvey
一、導讀
在開放世界中分類是驗證模型安全性的重要方式,也是一個真正能夠商用落地的模型不可避免要面對的問題。傳統的分類模型都是在一個封閉的世界中進行訓練,即假設測試資料和訓練資料都來自同樣的分佈(稱作“
一、導讀
”,in-distribution)。例如我們利用一組貓狗照片訓練一個貓狗分類器。然而,部署的模型在實際使用中總是會遇到一些不屬於封閉世界類別的圖片,例如老虎。或者也會遇到一些和訓練圖片視覺上大相徑庭的照片,例如卡通貓。模型應當如何去處理這些不屬於訓練分佈的圖片(即
分佈內
,out-of-distribution),是開放世界領域所關注的問題。
開放世界領域中時常能夠見到如下幾個任務:
·
分佈外樣本
: Outlier Detection, “離群檢測”
·
OD
: Anomaly Detection, “異常檢測”
·
AD
: Novelty Detection, “新類檢測”
·
ND
: Open Set Recognition, “開集識別”
·
OSR
: Out-of-Distribution Detection, “分佈外檢測”
它們相像卻各有千秋,不同卻又有千絲萬縷的聯絡。雖然現有工作也有嘗試著將自己的任務和別的任務進行區分,但是各任務之間也都眾說紛紜,使得整個領域都缺乏對各個任務準確的定義。讓外界甚至參與者都對各個任務的具體目標大惑不解。
為了解決這個困擾領域許久的迷惑,一篇名為
OOD Detection
《
的綜述橫空出世,將以上五個任務歸納進一個
Generalized Out-of-Distribution Detection: A Survey》
(Generalized OOD Detection)的大框架內。至此,這些任務都能進行準確的定位,而它們之間的關係也頓時清晰可辨。
“廣義·分佈外檢測”
為方便理解我們的“
二、準備工作
”,我們需要首先介紹以下兩個概念。
·
二、準備工作
: 表層統計層面上的分佈變化,簡稱統計偏移。
·
廣義分佈外檢測框架
: 深層語義層面上的分佈變化,簡稱語義偏移。
規範地講,如果我們用X來代表圖片畫素空間的變數,用Y來代表圖片語義空間的變數,這樣我們可以用P(X,Y)來表示一組圖片的分佈。
· 畫素空間分佈P(X)的偏移就是Covariate Shift,可能來源於對抗樣本或者畫風的變化。
· 語義空間分佈P(Y)的偏移就是Semantic Shift,可能來源於新類別的加入。
下圖生動地展現了這兩種分佈偏移。
Covariate Shift
在學習到“統計偏移”和“語義偏移”這兩個概念之後,我們可以利用下圖來認識各個任務在框架中的位置。任務的定位使用四個維度:
1。
Semantic Shift
: 任務需要檢測出表層統計偏移或深層語義偏移;
2。
“廣義分佈外檢測”(Generalized OOD Detection)
: 分佈內資料包含一個類或多個類;
3。
偏移型別
: 是否需要對分佈內樣本進行分類;
4。
分佈內資料類別數
:
· Transductive學習需要利用所有樣本進行決策;
· Inductive學習則遵循訓練-測試模式,目的是得到一個單獨可用的模型。
根據上圖,“異常檢測”AD分為兩個子任務,即Sensory AD和Semantic AD,即“
對分佈內樣本的處理
”和“
是否遵循“訓練-測試模式”
”。
·
感知上的異常檢測
(Sensory AD)需要識別出具有統計偏移的樣本,無論分佈內樣本類別數。
·
語義上的異常檢測
(Semantic AD)需要識別出具有語義偏移的樣本,並要求分佈內只有單類。
“感知上的異常檢測”
ND也分為兩個子任務。他們都需要識別出具有語義偏移的樣本,但是根據分佈內樣本類別的不同分為
“語義上的異常檢測”
(One-Class ND)和
“新類檢測”
(Multi-Class ND)。
“單類的新類檢測”
OSR同樣需要識別出具有語義偏移的樣本,但是相比於ND,它只關心分佈內是多類別的情況,並且要求對分佈內樣本進行正確的分類。
“多類的新類檢測”
(OOD Detection)同樣需要識別出具有語義偏移的樣本,但是相比OSR,它還包含了分佈內是單類的情況。因此,OOD Detection可以理解成一個包含Semantic AD, Novelty Detection, OSR的超級大類。
“開集識別”
“分佈外檢測”
三、對各個任務的具體介紹
當人們提起
AD: Anomaly Detection, “異常檢測”
時,心中其實已經形成了一個“正常”的概念。例如,要建立一個“熱狗/非熱狗檢測器”,我們將“熱狗”的概念定義為正常,將不符合的定義為異常,也就是非熱狗。
請注意,在這種情況下,熱狗是一個統一的概念,無論熱狗的大小、醬汁、麵包型別、價格、香腸的來源等可能存在差異。任何其他物體,如牛排、米飯,以及非食物物體,如貓和狗,都被視為異常。
同時,現有的異常檢測通常會對目標環境有所限制。例如,“熱狗/非熱狗檢測器”會採用“檢測器只會接觸真實照片”的假設,測試時不會存在卡通或素描圖。這使得在檢測統計偏移時避免了語義偏移的出現。另一個現實的例子是工業缺陷檢測,它針對的只是一組特定的產品裝配線。這使得在檢測統計偏移時避免了語義偏移的出現。換句話說,“開放世界”假設通常不是完全“開放”的。然而,“非熱狗”或“缺陷”其實已經形成了一個巨大的未知空間,也早已打破了“封閉世界”的假設。
綜上所述,異常檢測任務的主要特徵是其統一地定義了“正常”,並且假設一個相對封閉的限制。
背景:
異常(Anomaly)
(Anomaly Detection, AD)的任務旨在找出測試集中所有偏離“預設的正常樣本”的異常樣本。這種偏移可能是來源於covariate shift或者semantic shift。該任務通常假設另一種偏移型別不存在。這兩種不同的樣本偏移型別對應著“異常檢測”的兩個子任務:
定義:
sensory AD,和
“異常檢測”
semantic AD。
“感知上的異常檢測”
,即
“語義上的異常檢測”
。該任務希望識別出由covariate shift導致的異常樣本。此處我們假設所有預定義好的“正常”樣本都具有同一種畫素空間分佈,並且整個測試集的樣本空間不存在語義上的偏移,即測試集的所有樣本都來自同一個類別。總的來說,
Sensory AD
。
“感知上的異常檢測”
,即
“Sensory AD”旨在檢測出同一個類別的所有測試樣本中具有“異常”畫素空間分佈的樣本
,該任務希望識別出由semantic shift(label shift)導致的異常樣本。此處我們假設所有預定義好的“正常”樣本都具有相同的語義分佈,即來自同一個類別,並且整個測試集的樣本空間具有相同的畫素空間分佈。總的來說,
Semantic AD
。
“語義上的異常檢測”
·
“Semantic AD”旨在檢測出同種畫素空間分佈的所有測試樣本中非“正常”類別的樣本
: 工業檢測,對抗樣本防禦,活體檢測,藝術品的偽造識別,偽證識別等。
·
應用:
: 影片監控,資料篩選等。
Sensory AD
Semantic AD
ND: Novelty Detection, “新類檢測”
這個詞通常指的是未知的、新穎的、有趣的東西。雖然新類檢測的目標與異常檢測相似,但是它們之間有三個顯著不同:
·
背景:
反之,該任務會將它們視為學習資源,以積極的學習態度供未來使用。例如新野生動物檢測器,檢測到的新類可供生物學界進行研究。
·
“Novelty”
它有一個可互相替換的名字:“novel class detection”。
·
在動機方面,新類檢測通常不會像異常檢測那樣將“新類”樣本視為錯誤、惡意、應當丟棄的。
訓練集可以出現一個或多個類。
新類檢測主要側重於語義轉移。
:
新類檢測去除了分佈內樣本只能屬於一個類的限制。
(Novelty Detection, ND)的任務旨在找出測試集中不屬於訓練集中任何類別的“新類”樣本,檢測到的“新類”樣本通常會為下一步增量學習(incremental learning) 提供更多的學習樣本,或者作為全新的型別進行探索研究。
基於訓練集中的類別數量,“新類檢測”可被分為兩個子型別:
定義
(One-class ND);以及
“新類檢測”
(Multi-class ND)。儘管“多類新類檢測”的訓練集樣本中包含多個類別,其目的只是將測試集中的“新類”樣本與“分佈內”樣本區分開。因此,“單類新類檢測”和“多類新類檢測”的本質都是二分類問題。
“單類新類檢測”
:
影片監控,行星探索,增量學習
“多類新類檢測”
應用
:在封閉世界中訓練的機器學習模型 通常將 屬於未知類別的測試樣本 錯誤地分類為 具有高置信度的 已知類別。一些文獻將模型這種過度自信的行為稱為
OSR: Open Set Recognition, “開集識別”
。因此,OSR於2013年被提出,旨在解決這個問題。
背景
:
“模型的傲慢”
(Open Set Recognition, OSR)要求多分類器同時達到如下兩個要求:
· 對測試集中屬於“已知類別“的圖片進行準確分類;“已知類別”代表訓練集中存在的類別。
· 檢測出”未知”類別, “未知類別”不屬於訓練集中任何類別。
定義
“開集識別”
:
類似的,鑑於深度學習模型通常會對來自不同語義分佈的樣本進行過度自信地分類,分佈外檢測領域應運而生,要求模型在保證分類效能的同時,拒絕語義偏移的樣本,以保證可靠性和安全性。
OOD Detection: “分佈外檢測”
:
背景
任務,和新類識別類似,都是在找出測試集中不屬於訓練集中任何類別的“新類”樣本。但是在新類識別的基礎上,同時完成多分類任務。相比於“開集識別”,“分佈外檢測”的訓練集可以是單類別的也可以是多類別的。
定義
:
“分佈外檢測”
備註
。它們聲稱covariate shift通常會導致模型效能顯著下降,因此需要模型進行識別和丟棄。然而,儘管在某些特定(通常是高風險)任務上檢測covariate shift是合理的,例如由一家醫院訓練的醫療診斷模型應該更加保守地對來自其他醫院,具有covariate shift的影象進行決策,但這個目標與另一個領域
雖然當前學界的大多數論文都將“out-of-distribution”理解為“out-of-label/semantic-distribution”,但一些分佈外檢測的工作也考慮檢測
似乎有所衝突。綜述原文對
covariate shift(統計偏移)
做了詳細的討論,歡迎大家閱讀原文。但是無論如何,檢測語義偏移一直是分佈外檢測任務的主流。
out-of-distribution generalization(領域泛化)
out-of-distribution detection和out-of-distribution generalization
:
根據維基百科,
OD: Outlier Detection, “離群檢測”
是指與其他觀測結果顯著不同的資料點。不同於之前任務需要檢測與訓練資料分佈不同的測試樣本,離群檢測則是直接處理所有觀察結果,旨在從受汙染的資料集中找出異常。由於離群檢測不遵循“訓練-測試模式”,而其方法通常依賴於所有觀察結果,因此解決此問題的方法通常是Transductive傳導學習而不是Inductive歸納學習。
背景
:
outlier
(Outlier Detection, OD)的任務旨在檢測出給定資料集中與其他樣本顯著不同的樣本,其中這種不同既可以來源於covariate shift也可以來源於semantic shift。
定義
:
資料清洗
至此,我們希望讀者對以上五個任務的異同有了更加深入的理解。下圖用圖片案例的方式再次比較這些任務。
“離群檢測”
應用
我們全面地總結了解決“廣義分佈外檢測”中各個任務的方法。由於它們的目標大體相同,它們的解法自然也是如出一軌。我們發現它們的解法基本分為四大類:
·
四、
·
四、
·
方法論
·
方法論
歡迎大家參考綜述原文進行參考,同時歡迎大家在綜述的GitHub主頁提issue/pr進行補充。
Density-based Methods 基於密度估計的方法
最終我們總結了目前領域的問題,挑戰,和發展方向。
Reconstruction-based Methods 基於重構的方法
挑戰1: 建立正確並且規範的評價指標
Classification-based Methods 基於分類的方法
挑戰2: 不需要額外資料的分佈外檢測
Distance-based Methods 基於距離的方法
挑戰3: 分佈內分類和分佈外檢測的權衡
五、拓展和展望
挑戰4: 建立有現實意義並且大規模的資料集
五、拓展和展望
展望1: 框架中不同任務互相借鑑及比較
1
展望2: 分佈外檢測和分佈外泛化的結合
2
展望3: 分佈外檢測和開集噪聲標籤學習的結合
3
展望4: 期待進行更多的理論研究
我們衷心希望開放世界領域能夠發展地更好,並且希望更多研究者能夠關注並投身到這個人工智慧的重要問題上。
4
1
作者:
MMLab@NTU
Illustrastion
b
y Thierry Fousse from
Icons8
-The End-
2
3