域轉移 是什麼?
Domain Shift:域轉移 的完整解釋
訓練資料與測試資料來自不同的統計分布或應用環境,導致模型性能下降的現象。
域轉移(Domain Shift)也稱為域適應問題(Domain Adaptation),是機器學習實務中最普遍但常被低估的挑戰。每當模型跨越地理邊界、時間邊界、應用場景邊界時,都面臨域轉移的風險。
域轉移的多種形式
邊際分布轉移(Marginal Distribution Shift) 特徵 X 的分布在訓練域與測試域不同:P_train(X) ≠ P_test(X)。
- 例:識別貓的分類器在『自然照片』上訓練,部署到『卡通圖』環境時失效。
- 解決方法:無監督域適應(Unsupervised Domain Adaptation),利用測試域的無標注數據調適特徵分布。
條件分布轉移(Conditional Distribution Shift)或標籤轉移(Label Shift) 預測規則在域間改變:P_train(Y|X) ≠ P_test(Y|X),或邊際類別分布改變:P_train(Y) ≠ P_test(Y)。
- 例:醫院 A 中罕見病的患病率為 0.1%,醫院 B 為 5%,相同的症狀在兩家醫院有不同的後驗機率。
- 解決方法:貝葉斯修正、代價敏感學習、重要性加權。
協變量轉移(Covariate Shift) P(X) 改變但 P(Y|X) 保持:更具體的邊際分布轉移形式。
- 例:垃圾郵件分類器在 2015 年訓練,2025 年部署時,垃圾郵件的詞彙風格(協變量)已變,但某個詞彙指示垃圾的機率(條件機率)未變。
- 解決方法:重要性加權、特徵標準化、無監督特徵適應。
先驗概率轉移(Prior Probability Shift) P(Y) 改變但 P(X|Y) 保持。
- 例:訓練時正負樣本比 1:10,部署時比變為 1:100。
- 解決方法:調整決策閾值、代價敏感學習。
開集域轉移(Open-set Domain Shift) 測試域包含訓練域未見過的類別。
- 例:識別 10 類車型的模型,部署時遇到第 11 種從未見過的車型。
- 解決方法:開集識別(Open-set Recognition)、異常檢測。
應對域轉移的主要策略
無監督域適應(Unsupervised Domain Adaptation, UDA)
- 使用未標注的測試域數據調適模型,不需要測試域的標注。
- 方法:最大化訓練域與測試域在特徵空間的相似性(如 MMD - Maximum Mean Discrepancy),或利用對抗訓練使特徵不可區分兩個域。
- 代表方法:Deep CORAL、Adversarial Domain Adaptation、Self-training with Pseudo-labels。
遷移學習(Transfer Learning)與微調(Fine-tuning)
- 在源域大規模標注數據上預訓練,在目標域少量標注數據上微調。
- 現代深度學習中最實用的方法:預訓練模型(如 ImageNet 預訓練的 ResNet)往往對新域有強大的泛化能力。
多域學習(Multi-domain Learning)
- 同時在多個源域訓練,習得跨域的通用表示。
- 使模型對域變更更鯺魯棒。
測試時適應(Test-time Adaptation)
- 在部署時,利用測試樣本的無標注信息進行在線學習,持續調適模型。
- 例如,自動駕駛系統在夜晚部署時,實時調整以適應暗光環境。
特徵歸一化與正則化
- Batch Normalization、Layer Normalization 等可緩解某些域轉移。
- 原因:這些技術使模型對特徵分布的變動不那麼敏感。
資料增強(Data Augmentation)
- 在訓練時施加與預期域轉移相似的變換(如影像旋轉、色彩抖動、背景模糊),提前「暴露」模型到可能的分布變化。
- 現代增強技術(如 RandAugment、AutoAugment)能自動搜尋最有效的增強策略。
因果推斷與不變性學習(Invariant Learning)
- 而非單純地擬合訓練分布,改為學習在多個域都成立的因果關係(不變特徵)。
- 例如,『如果貓的耳朵豎立,則是貓』這個規則對各種光照、背景都成立,是不變的因果關係。
實務中常見的域轉移場景
- 計算機視覺:不同相機、光照、天氣、季節、地理位置導致的圖像風格差異。
- 自然語言處理:不同語言、方言、文體、時代的文本分布差異。
- 語音識別:不同口音、性別、年齡、錄音設備、環境雜訊。
- 推薦系統:用戶群體變化、季節變化、地區差異導致的偏好分布改變。
- 醫療 AI:不同醫院的設備、標注習慣、患者人群差異。
- 金融風控:市場環境、經濟周期、政策變化導致的特徵與風險關係改變。