NeurIPS高分作:異常檢測統(tǒng)一模型UniAD
來源:投稿 作者:Mr.Eraser
編輯:學(xué)姐

論文標(biāo)題:用于多類異常檢測的統(tǒng)一模型
論文鏈接:https://arxiv.org/abs/2206.03687
論文貢獻(xiàn):
提出UniAD,它以一個統(tǒng)一框架完成了多個類別的異常檢測。
提出分層的查詢解碼器來幫助建立多類分布的模型。
采用鄰居屏蔽的注意力模塊,以進(jìn)一步避免從輸入特征到重構(gòu)輸出特征的信息泄漏。
提出一種特征抖動策略,即使在有噪聲輸入的情況下也能敦促模型恢復(fù)正確的信息
1.引言
異常檢測在制造業(yè)缺陷檢測、醫(yī)學(xué)圖像分析和視頻監(jiān)控中得到了越來越廣泛的應(yīng)用。考慮到高度多樣化的異常類型,一個常見的解決方案是對正常樣本的分布進(jìn)行建模,然后通過尋找離群值來識別異常樣本。因此,學(xué)習(xí)正常數(shù)據(jù)的緊湊邊界至關(guān)重要,如圖a所示。

當(dāng)涉及到多類情況時,我們希望模型能同時捕捉到所有類別的分布,這樣它們就能像圖b那樣共享同一個邊界。但是如果我們專注于某一特定類別,比如說圖b中的綠色類別,那么其他類別的所有樣本都應(yīng)該被視為異常,無論它們本身是正常的(即藍(lán)圓圈)還是異常的(即藍(lán)三角形)。從這個角度來看,如何準(zhǔn)確地對多類分布進(jìn)行建模變得至關(guān)重要。

綜上所述,本文擺脫了傳統(tǒng)的為每一類訓(xùn)練一個模型的范式(圖c ),并設(shè)法用一個統(tǒng)一的框架(圖d)完成對各種類的異常檢測。
2.相關(guān)工作分析

MLP, CNN, Transformer和提出的UniAD在MVTec-AD數(shù)據(jù)集上的比較:圖a表示訓(xùn)練損失(藍(lán)色), 異常檢測(綠色)和定位(紅色)的測試AUROC。在MLP, CNN和Transformer的訓(xùn)練過程中,正常樣本的重建誤差不斷變小,但在異常情況下的性能在達(dá)到峰值后卻嚴(yán)重下降。這是由于模型學(xué)習(xí)了一個 “相同的捷徑”,它傾向于直接復(fù)制輸入作為輸出,不管它是正常的還是異常的。圖b“捷徑”的視覺解釋,異常樣本可以被很好地恢復(fù),因此變得很難從正常樣本中檢測出來。
相比之下,UniAD克服了上述問題,并設(shè)法將異常樣本重建為正常樣本。值得注意的是,所有的模型都是為特征重建而學(xué)習(xí)的,并且采用了一個單獨(dú)的解碼器來渲染來自特征的圖像。這個解碼器只用于可視化。
3.UniAD 方法概覽
UniAD 的框架如下,由一個Neighbor Masked Encoder (NME)和一個Layer-wise Query Decoder (LQD)組成。LQD的每一層都采用了可學(xué)習(xí)的查詢嵌入來幫助建立復(fù)雜的訓(xùn)練數(shù)據(jù)分布模型。Transformer中的全部注意力被鄰居屏蔽的注意力所取代,以避免信息從輸入到輸出的泄漏。特征抖動策略鼓勵模型在嘈雜的輸入中恢復(fù)正確的信息。所有這三項改進(jìn)都有助于模型避免學(xué)習(xí) “相同的捷徑“。

3.1Neighbor masked attention
我們懷疑原始Transformer中的full- attention對 “相同的捷徑 ”有所貢獻(xiàn)。在full- attention中,一個token被允許看到自己,所以它將很容易通過簡單的復(fù)制來進(jìn)行重建。
此外,考慮到特征tokens是由CNN骨干提取的,相鄰的tokens一定有很多相似之處。
因此,提出在計算注意力圖時對相鄰token進(jìn)行屏蔽,即Neighbor Masked Attention ?(NMA)。請注意,鄰居區(qū)域是在二維空間定義的,如圖4所示。

3.2 Neighbor masked encoder & Layer-wise query decoder
「Neighbor masked encoder:」
編碼器遵循原始Transformer中的標(biāo)準(zhǔn)架構(gòu)。每層由一個注意力模塊和一個前饋網(wǎng)絡(luò)(FFN)組成。然而,full-attention被提出的NMA取代,以防止信息泄露。
「Layer-wise query decoder:」
查詢嵌入可以幫助防止重建異常,但原始Transformer中只有一個查詢嵌入。因此,我們設(shè)計了一個分層查詢解碼器(LQD)來加強(qiáng)查詢嵌入的使用,如圖3所示。具體來說,在LQD的每一層,可學(xué)習(xí)的查詢嵌入首先與編碼器嵌入融合,然后與前一層的輸出融合(第一層的自我融合)。特征融合是由NMA實現(xiàn)的。在原始Transformer之后,一個2層的FFN被應(yīng)用于處理這些融合的tokens,并且利用殘余連接來促進(jìn)訓(xùn)練。LQD的最終輸出作為重構(gòu)的特征。

3.2 Layer-wise query decoder 選擇策略

層級查詢解碼器(LQD)的各種設(shè)計選擇,其中每層使用兩個注意力模塊。為了簡單起見,省略了殘差連接、層規(guī)范化和前饋網(wǎng)絡(luò)。

對分層查詢解碼器(LQD)的設(shè)計選擇進(jìn)行消融研究。每個設(shè)計的概念可以在上圖中找到。分別報告了異常檢測/定位方面的表現(xiàn)。
3.3 Feature jittering
受去噪自動編碼器(DAE)的啟發(fā),我們向特征tokens添加擾動,引導(dǎo)模型通過去噪任務(wù)學(xué)習(xí)正常樣本的知識。具體來說,對于一個特征token,,我們從高斯分布中對干擾D進(jìn)行采樣:

其中,α是控制噪聲程度的抖動尺度。同時,采樣干擾以固定的抖動概率p添加到中。


3.4 實施細(xì)節(jié)
「特征提?。骸?/strong>
我們采用在ImageNet上預(yù)訓(xùn)練的固定的EfficientNet-b4作為特征提取器。從階段1到階段4的特征被選中。這里的階段指的是具有相同大小的特征圖塊的組合。然后,這些特征被調(diào)整為相同的大小,并沿通道維度串聯(lián)起來,形成一個特征圖,,之后,這個特征圖被標(biāo)記為具有
通道的H×W特征tokens。
「特征重建:」
首先對這些特征標(biāo)記進(jìn)行線性投影,將減少到一個較小的通道,即C,然后這些標(biāo)記被NME和LQD處理??蓪W(xué)習(xí)的位置嵌入被添加到注意力模塊中,以告知空間信息。之后,另一個線性投影被用來恢復(fù)從C到
的通道。經(jīng)過重塑,最終得到重建的特征圖,
。
「目標(biāo)函數(shù):」
我們的模型是用MSE損失來訓(xùn)練的:

「異常定位的推理:」
異常定位的結(jié)果是一個異常得分圖,它為每個像素分配一個異常得分。具體來說,異常得分圖s,被計算為重建差異的L2準(zhǔn)則,即:

然后用雙線性插值將s向上采樣到圖像大小,得到定位結(jié)果。
「異常檢測的推理:」
異常檢測的目的是檢測圖像是否包含異常區(qū)域。
通過取平均匯集的s的最大值,將異常得分圖s轉(zhuǎn)化為圖像的異常得分。
4.實驗效果 & 結(jié)果
在MVTec-AD上使用AUROC指標(biāo)的異常檢測結(jié)果。所有的方法都在統(tǒng)一建模/單獨(dú)建模的情況下進(jìn)行評估。在統(tǒng)一建模的情況下,學(xué)習(xí)到的模型被應(yīng)用于檢測所有類別的異常情況,而不需要進(jìn)行微調(diào)。

在MVTec-AD上使用AUROC指標(biāo)的異常定位結(jié)果。所有的方法都在統(tǒng)一建模/單獨(dú)建模的情況下進(jìn)行評估。在統(tǒng)一建模的情況下,學(xué)習(xí)到的模型被應(yīng)用于檢測所有類別的異常情況,而不需要進(jìn)行微調(diào)。



異常檢測屬于機(jī)器學(xué)習(xí)中的一個重要的子分支,為了幫助大家更好的掌握機(jī)器學(xué)習(xí),學(xué)姐也準(zhǔn)備了機(jī)器學(xué)習(xí)相關(guān)的資料合集
有需要的同學(xué)可以關(guān)注”學(xué)姐帶你玩AI“公眾號
回復(fù)”機(jī)器學(xué)習(xí)“免費(fèi)領(lǐng)取!