分布偏移 是什麼?
Distribution Shift:分布偏移 的完整解釋
模型訓練時的資料分布與部署後實際遇到的資料分布不同,導致模型效能下降的現象。
分布偏移是機器學習系統從研究環境走向生產環境時最常遇到的挑戰。在訓練階段,工程師通常假設訓練資料能代表模型未來將面對的真實資料:即 i.i.d.(獨立同分布)假設。但現實世界是動態的,資料的統計特性會隨時間、場景、使用者族群的變化而改變,導致這個假設在生產環境中被打破。
分布偏移的主要類型
共變量偏移(Covariate Shift):輸入特徵 X 的分布發生變化,但條件分布 P(Y|X) 不變。例如,訓練一個信用評分模型時,訓練集主要來自都市居民,但部署後需要為農村居民評分,兩群體的特徵分布不同。這是最常見的偏移類型。
標籤偏移(Label Shift / Prior Shift):目標變數 Y 的邊際分布改變。例如,訓練時正負樣本比例為 1:1,部署後實際正樣本比例降至 1:10。
概念漂移(Concept Drift):條件分布 P(Y|X) 本身發生變化,即同樣的輸入現在對應不同的輸出標籤。例如,詐騙偵測模型訓練時的詐騙手法,在數月後被全新的手法取代,相同的交易特徵不再代表詐騙。這是最難處理的類型。
資料集偏移(Dataset Shift):泛指以上任一或多種偏移同時發生。
常見觸發原因
- 季節性變化(電商搜尋行為在雙 11 與平日截然不同)
- 外部事件(疫情改變了消費者行為模式)
- 系統版本更新改變了資料收集方式
- 使用者族群結構改變(如產品拓展到新地區)
- 標籤定義或業務規則變更
- 感測器老化或校準偏移(工業 IoT 場景)
偵測方法
- 統計測試:使用 Kolmogorov-Smirnov 檢定(KS test)、Population Stability Index(PSI)、MMD(Maximum Mean Discrepancy)等方法比較訓練分布與生產分布。PSI > 0.2 通常被視為顯著偏移警告。
- 監控模型輸出:追蹤預測值分布、模型信心分數分布是否隨時間漂移。
- 有標籤時監控模型效能:若生產資料有延遲標籤,追蹤 AUC、F1 等指標趨勢。
- 特徵重要性監控:偵測最重要特徵的分布變化。
應對策略
- 持續訓練(Continuous Training):定期用最新生產資料重新訓練模型。
- 線上學習(Online Learning):模型持續接收新資料並更新參數。
- 加權重採樣:對與當前資料分布更接近的訓練樣本賦予更高權重。
- Ensemble 方法:維護多個不同時期訓練的模型,加權集成。
- 模型監控系統:建立自動化警報機制,偵測到顯著偏移時觸發重新訓練流程。
與「過擬合」的區別
過擬合是訓練集上效果好、測試集(同分布)上效果差;分布偏移則是訓練和測試同分布時效果都好,但實際部署的資料分布發生了改變。兩者的解決方式截然不同,不能混淆診斷。
ML 系統設計的最佳實踐
在設計 ML 系統時應從一開始就考慮分布偏移的可能性。關鍵實踐包括:在訓練時記錄資料的詳細統計特性作為基線;建立資料版本控制(Data Versioning)追蹤資料分布隨時間的變化;設計模型服務架構時預留線上監控元件(如 Evidently AI、WhyLabs)的插入點;制定明確的重訓觸發條件與重訓後的 A/B 測試流程。預防勝於補救,在訓練資料中刻意加入時間多樣性(跨不同時期的資料)也能提升模型對漂移的初始魯棒性。
快速診斷清單
當模型效能下降時,先確認是否為分布偏移:(1)比較近期輸入特徵的均值、標準差與訓練時的基線;(2)計算 PSI,PSI < 0.1 穩定、0.1-0.2 輕微偏移、> 0.2 顯著偏移;(3)若有延遲標籤,計算最近批次的模型效能指標。若確認偏移,再進一步溯源是共變量偏移還是概念漂移,再選擇對應的緩解策略。