分布外偵測(Out-of-Distribution Detection (OOD))是什麼?

識別模型在推論時遇到的輸入是否來自訓練資料分布之外的技術,以防止模型在未知情境下給出不可靠的預測。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
Out-of-Distribution Detection (OOD)
主題標籤
模型可靠性、不確定性估計、分布偏移
考點定位
非 iPAS 核心術語
最後更新
2026/07/30
分布外偵測(Out-of-Distribution Detection (OOD))是什麼? 模型可靠性不確定性估計
術語快查

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

TL;DR: 識別模型在推論時遇到的輸入是否來自訓練資料分布之外的技術,以防止模型在未知情境下給出不可靠的預測。

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

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

識別模型在推論時遇到的輸入是否來自訓練資料分布之外的技術,以防止模型在未知情境下給出不可靠的預測。

分布外偵測(Out-of-Distribution Detection,OOD Detection)是機器學習可靠性(Reliability)與安全性(Safety)領域中的重要研究方向,在自動駕駛、醫療診斷、金融風控等高風險應用中尤為關鍵。

問題背景

標準的機器學習假設:訓練資料與測試資料來自相同的資料分布(Independent and Identically Distributed, i.i.d.)。然而在現實部署中,這個假設往往不成立:使用者可能輸入訓練時從未見過的資料類型(如:一個訓練於室內貓狗辨識的分類器,突然收到一張卡車圖片)。標準分類模型不會「拒絕回答」,而是依然輸出最高信心度的類別預測,但這個預測毫無可信度。若模型用於自動駕駛決策或醫療診斷,這種「看似自信的錯誤」可能造成嚴重後果。

核心概念:In-Distribution vs. Out-of-Distribution

  • In-Distribution(ID)樣本:來自訓練資料分布的正常輸入,模型應對其做出可靠預測。
  • Out-of-Distribution(OOD)樣本:來自訓練分布之外的輸入,包括:全新類別(Semantic Shift)、不同領域的資料(Domain Shift)、損毀或有噪音的資料(Covariate Shift)、對抗樣本(Adversarial Examples)等。

OOD 偵測的目標是在推論時為每個輸入計算一個「In-Distribution 分數」,分數高的認為是 ID 樣本(正常預測),分數低的判定為 OOD 樣本(拒絕預測或提示人工審查)。

主要偵測方法

一、基於信心分數的方法

  • 最大 Softmax 機率(MSP,Maximum Softmax Probability):Dan Hendrycks & Kevin Gimpel 於 2017 年提出的基準方法,直接用分類器輸出的最大 Softmax 機率作為 ID 分數。ID 樣本的最大 Softmax 機率通常較高,OOD 樣本通常較低。方法簡單,無需修改模型,但效果有限:Softmax 輸出會被「過度自信」問題扭曲,OOD 樣本的 Softmax 輸出有時仍然很高。

  • ODIN(Out-of-DIstribution detector for Neural Networks):在 MSP 基礎上加入溫度縮放(Temperature Scaling,放大 Softmax 的分辨力)和輸入擾動(Input Perturbation,在輸入上加入使 ID 樣本分數升高的小擾動),顯著提升 MSP 的偵測能力,無需重新訓練。

  • Energy-based Score(能量分數):使用 Softmax 前的 logits 計算自由能(Free Energy),能量低的是 ID 樣本,能量高的是 OOD 樣本,比 Softmax 機率更具理論基礎。

二、基於特徵空間的方法

  • Mahalanobis Distance:計算輸入樣本在特徵空間中與各類別訓練樣本高斯分布的馬氏距離,距離所有類別中心都很遠的樣本為 OOD。

  • KNN-based(近鄰距離):基於訓練樣本在特徵空間中的 K 近鄰距離,若測試樣本的最近鄰距離過大,判定為 OOD。

三、基於模型設計的方法

  • 貝葉斯深度學習(Bayesian Deep Learning):使用 MC Dropout 或 Deep Ensemble,估計預測的不確定性(Uncertainty)。高不確定性可作為 OOD 的指示信號。
  • Normalizing Flow:訓練一個可計算精確概率密度的生成模型,對 OOD 樣本估計出低似然值。
  • Outlier Exposure:在訓練時加入已知的 OOD 樣本(Outlier Data),引導模型對這些樣本輸出低信心,提高 OOD 偵測能力。

四、大型語言模型中的 OOD 挑戰

在 LLM 時代,OOD 問題以新的形式出現:幻覺(Hallucination)可以視為一種「知識 OOD」:模型被問到訓練資料中未涵蓋或衝突的事實,卻依然自信地給出錯誤答案。幻覺偵測(Hallucination Detection)和不確定性估計(Uncertainty Quantification)是 LLM 可靠性研究的核心問題。

評估指標

OOD 偵測通常用以下指標評估(不使用 Accuracy,因為 ID/OOD 的比例在真實部署中未知):

  • AUROC(ROC 曲線下面積):衡量在不同閾值下區分 ID 與 OOD 的整體能力。
  • FPR@TPR95:在真正例率(TPR)= 95% 時的假正例率,衡量「高召回率時的誤報成本」。
  • AUPR(PR 曲線下面積):分別對 ID 和 OOD 為正類計算。

與相關概念的區別

  • Domain Shift vs. OOD:Domain Shift 指訓練資料與部署資料的特徵分布不同(但類別標籤仍有意義);OOD 更強調語意上的「全新類別」或完全不同的任務場景。
  • Anomaly Detection vs. OOD Detection:異常偵測通常在無監督設定下,只有正常樣本可用;OOD 偵測通常有一個訓練好的分類模型,目標是在分類基礎上加上「不確定性感知」能力。兩者思路有重疊,但應用場景和評估設定不同。

常見問題

為什麼神經網路對 OOD 樣本也會輸出高信心度?

這是神經網路(尤其是 Softmax 分類器)的一個已知問題,稱為「過度自信」(Overconfidence)。Softmax 函數的數學性質決定了它的輸出是相對機率:只要某個類別的 logit 比其他類別稍高,Softmax 就會輸出接近 1 的機率,無論絕對數值大小。換句話說,Softmax 本質上在比較哪個類別「最像」,而不是在衡量輸入「有多像任何已知類別」。當輸入是 OOD 樣本時,模型雖然「不認識」,但仍會強制把它分配給最接近的已知類別並輸出高機率。解決方案包括溫度縮放(降低 logits 的尖銳程度)、能量分數(不依賴 Softmax 歸一化)和貝葉斯不確定性估計。

OOD 偵測在實際產品中如何部署?

在產品部署中,OOD 偵測通常作為模型推論流水線的一個額外層次加入。具體做法因場景而異:低風險應用(如推薦系統)可能只記錄 OOD 事件供後續分析;中風險應用(如智慧客服)可在偵測到 OOD 輸入時自動轉接人工;高風險應用(如醫療診斷輔助)則在 OOD 時直接拒絕輸出並要求醫師複核。技術實現上,最輕量的方式是在模型輸出後計算能量分數或最大 Softmax 機率,設定閾值進行判斷;更完善的方案是維護訓練集的特徵表示索引(如 FAISS 近鄰搜尋),對新輸入做特徵距離計算。部署後需持續監控 OOD 率,異常升高可能代表輸入資料分布發生了 Concept Drift。

OOD Detection 和異常偵測(Anomaly Detection)有什麼不同?

兩者目標相似(找出「不正常」的樣本),但設定不同。異常偵測(Anomaly Detection)通常是無監督任務:訓練時只有正常樣本,沒有標注哪些是異常,模型學習正常資料的分布,把偏離分布的樣本標記為異常。典型應用是工業設備的異常感測器讀值、金融欺詐偵測。OOD Detection 則通常是在一個訓練好的監督分類模型之上加入不確定性偵測能力:模型知道 K 個類別是什麼,目標是識別「第 K+1 類(完全陌生)」或「輸入破損」的情況。在技術方法上有交集(如 Isolation Forest、Autoencoder 重建誤差既用於異常偵測也用於 OOD),但評估協定、應用場景和模型假設有所不同。