開集識別(Open-set Recognition)是什麼?

分類任務中測試集包含訓練集未見過的類別,模型需識別『這是一個未知類別』的問題。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
Open-set Recognition
主題標籤
異常檢測、分類、未知識別
考點定位
非 iPAS 核心術語
最後更新
2026/07/30
開集識別(Open-set Recognition)是什麼? 異常檢測分類
術語快查

搜尋意圖: 如果你在找「開集識別 是什麼」或「開集識別 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

TL;DR: 分類任務中測試集包含訓練集未見過的類別,模型需識別『這是一個未知類別』的問題。

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

分類任務中測試集包含訓練集未見過的類別,模型需識別『這是一個未知類別』的問題。

開集識別(Open-set Recognition)是應對現實世界「開放環境」的分類方法,與實驗室常見的「閉集」假設(訓練與測試類別相同)截然不同。現實世界中,類別是開放的:總有新的未知類別可能出現。

開集識別 vs. 閉集識別

閉集識別(傳統分類):

  • 假設訓練集和測試集的類別完全相同。
  • 模型必須為每個測試樣本分配到某個已知類別(沒有「拒絕」選項)。
  • Softmax 輸出是機率分布,總和為 1,必然為某個類別賦予最高機率。

開集識別:

  • 測試集可能包含訓練未見過的類別(未知類或開集類)。
  • 模型需識別『這個樣本屬於未知類別』,而非盲目分配到已知類別。
  • 引入「拒絕」或「未知」作為額外的預測選項。

開集識別的核心難點

  1. 類別邊界的定義:傳統分類在已知類別間定義邊界;開集識別需定義『已知類別的邊界』:超出這個邊界的統稱未知。邊界太緊會誤判已知類為未知,邊界太鬆會誤認未知類為已知。

  2. 未知類別的多樣性:訓練階段無法接觸未知類別,測試時出現的未知類可能極為多樣(與已知類距離近或遠),單一的邊界難以適應所有未知。

  3. 特徵空間覆蓋率:閉集假設下模型只需覆蓋已知類的特徵空間;開集環境中,模型需要識別『這個特徵點位於已知類聚集區之外』。

開集識別的主要方法

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%),以換取對其他未知類更高的拒絕率。