搜尋意圖: 如果你在找「開集識別 是什麼」或「開集識別 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 分類任務中測試集包含訓練集未見過的類別,模型需識別『這是一個未知類別』的問題。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
分類任務中測試集包含訓練集未見過的類別,模型需識別『這是一個未知類別』的問題。
開集識別(Open-set Recognition)是應對現實世界「開放環境」的分類方法,與實驗室常見的「閉集」假設(訓練與測試類別相同)截然不同。現實世界中,類別是開放的:總有新的未知類別可能出現。
開集識別 vs. 閉集識別
閉集識別(傳統分類):
- 假設訓練集和測試集的類別完全相同。
- 模型必須為每個測試樣本分配到某個已知類別(沒有「拒絕」選項)。
- Softmax 輸出是機率分布,總和為 1,必然為某個類別賦予最高機率。
開集識別:
- 測試集可能包含訓練未見過的類別(未知類或開集類)。
- 模型需識別『這個樣本屬於未知類別』,而非盲目分配到已知類別。
- 引入「拒絕」或「未知」作為額外的預測選項。
開集識別的核心難點
類別邊界的定義:傳統分類在已知類別間定義邊界;開集識別需定義『已知類別的邊界』:超出這個邊界的統稱未知。邊界太緊會誤判已知類為未知,邊界太鬆會誤認未知類為已知。
未知類別的多樣性:訓練階段無法接觸未知類別,測試時出現的未知類可能極為多樣(與已知類距離近或遠),單一的邊界難以適應所有未知。
特徵空間覆蓋率:閉集假設下模型只需覆蓋已知類的特徵空間;開集環境中,模型需要識別『這個特徵點位於已知類聚集區之外』。
開集識別的主要方法
1. 距離度量與閾值法
在特徵空間定義已知類別的邊界,超出邊界的判為未知:
Euclidean Distance:計算樣本特徵與各已知類別中心的距離,最近距離超過閾值則判為未知。簡單但易受特徵分布非球形影響。
Mahalanobis Distance:考慮類別內的共變異數,更精確地定義『多少距離才算遠』。
Cosine Distance:在歸一化特徵空間中度量距離,適合角度而非距離反映相似性的場景。
2. 開集 SVM(Open-set SVM)
標準 SVM 在閉集下訓練,開集 SVM 擴展為:
- 在特徵空間中為每個已知類定義一個「週圍球體」(Weibull model),表示該類的『密集區域』。
- 測試樣本若不在任何球體內,判為未知。
- 可根據樣本到各球體邊界的『距離和角度』綜合判斷。
3. Weibull 分布與極值理論
利用極值理論(Extreme Value Theory)建模已知類的特徵邊界:
- 訓練時,對每個類別,收集該類樣本到類別中心的距離,用 Weibull 分布擬合。
- 測試時,計算未知樣本到各已知類中心的距離,用 Weibull 分布評估『該樣本是否可能來自該類』。
- 若所有類別的 Weibull 機率都很低,判為未知。
- 這個方法理論優美、實證有效,是開集識別領域的經典方法。
4. 開集深度神經網路
端到端深度學習方法:
- W-net(Weibull-calibrated Network):在深度網路的高層特徵上應用 Weibull 分布,端到端訓練。
- 開集損失函數:設計專門的損失函數,既優化已知類的分類,又推開未知類。例如,中心損失(Center Loss)使已知類樣本緊密聚集在各自類別中心附近,測試時遠離所有中心的樣本判為未知。
- 開集對比學習:在對比學習框架中,一邊拉近已知類的正對,一邊推遠未知樣本,習得對開集敏感的表示。
5. 集成與多階段方法
結合多種判據提升可靠性:
- 多通道集成:結合置信度(Softmax 機率)、特徵距離、能量函數等多個指標,通過加權或投票判斷是否為未知。
- 閾值自適應:根據應用場景(如醫療:寧可誤報未知,不要誤判為已知疾病)動態調整開集邊界。
6. 先驗知識與輔助信息
若有關於可能出現的未知類別的先驗:
- 相似未知類:若已知未來可能出現與訓練類相似的未知類(如訓練了 10 種動物,測試時可能出現其他動物),可在訓練時引入「相似但非目標類」的數據,習得更精確的邊界。
- 層級結構:利用類別的層級結構(如動物->哺乳動物->貓科),定義邊界時考慮層級資訊。
開集識別的評估指標
- 多元素準確率(Accuracy):同時評估已知類的分類準確率與未知類的拒絕率。通常定義為 (已知類正確 + 未知類正確) / 總數。
- 開集 F1 Score:平衡精確率與召回率,避免任一方面過差。
- 開集指數(Open-set Index, OSI):更精細的評估,分別考量已知類準確率與未知類拒絕率,加權綜合。
- ROC 曲線:固定已知類識別率,觀察未知類的誤警率。
開集識別的應用場景
- 人臉識別與驗證:識別已知人員,對陌生人識別為『不在已知清單中』。
- 異常檢測:機器故障診斷中,訓練樣本只覆蓋常見故障模式,測試時出現未見過的故障型態。
- 自動駕駛:識別道路標牌與障礙物,對新型號車輛、交通工具予以『不確認』而非誤分類。
- 垃圾郵件分類:識別已知垃圾郵件類型,對新穎垃圾策略識別為『未知垃圾型態』。
- 入侵偵測:網路安全中,檢測已知攻擊模式,對新型攻擊識別為『異常』。
常見問題
開集識別和異常檢測(Anomaly Detection)有什麼區別?
異常檢測著眼於『識別偏離正常分布的樣本』,通常是無監督或僅用正常樣本訓練,測試時任何偏異就標記為異常。開集識別則著眼於『識別已知類別外的樣本』,通常在多個已知類別上進行監督訓練,測試時需區分『這是哪個已知類』還是『這是未知類』。異常檢測是一元分類(正常 vs. 異常),開集識別是多元分類(已知多類 vs. 未知)。在應用中,兩者往往結合:先用異常偵測識別『有異常』,再用開集識別判斷『是已知類中的邊界樣本』還是『完全未知類』。
Weibull 分布為什麼適合建模開集邊界?
Weibull 分布(Weibull Distribution)是極值理論中的經典分布,擅長建模『最大值或最小值的分布』。在開集識別中,我們關心『一個樣本到已知類中心的距離有多遠』,本質上是在距離這個『最值』上做推理。Weibull 分布能自然地表示『該類型的樣本距離中心通常多遠』(尺度參數)和『距離分布是否集中還是分散』(形狀參數)。訓練時,收集該類所有樣本的距離,擬合 Weibull 參數;測試時,未知樣本到某已知類的距離若對應的 Weibull 機率很低(『這個距離在該類是罕見的』),則判為不屬於該類,進而是未知。相比簡單的距離閾值,Weibull 基於機率論,更魯棒且可解釋。
如何處理『近距離未知』(與已知類視覺相似的未知類)?
近距離未知是開集識別最困難的情況(如訓練了貓,測試時出現老虎)。簡單的距離度量無法區分,因為老虎在特徵空間中就在貓附近。主要應對策略:第一,在訓練時引入『相似干擾』:如訓練 10 類狗,同時引入『其他犬科動物(狐狸等)』作為開集類樣本,學習更精細的邊界。第二,增加特徵判別性:使用對比學習或中心損失,使已知類聚集,類間距離最大化,同時未知類被推遠。第三,多層級決策:結合語義信息(如分類層級:貓=肉食性動物, 老虎也是肉食性但屬科差異大),分層判斷。第四,接受部分誤差:在實際應用中,對於最相似的未知類,往往設定允許某個比例的誤判率(如 10%),以換取對其他未知類更高的拒絕率。