全解析:從ERM失效到領(lǐng)域泛化與不變性學(xué)習(xí))
簡介這份資源是清華大學(xué)崔鵬團(tuán)隊(duì)等學(xué)者撰寫的《Towards Out-Of-Distribution Generalization: A Survey》綜述論文PDF面向深度學(xué)習(xí)研究者、算法工程師及高年級學(xué)生系統(tǒng)回應(yīng)現(xiàn)實(shí)場景中訓(xùn)練與測試數(shù)據(jù)分布不一致、經(jīng)典i.i.d.假設(shè)失效導(dǎo)致模型性能驟降的問題。論文從OOD泛化的形式化定義切入按學(xué)習(xí)流程將現(xiàn)有方法歸為無監(jiān)督表示學(xué)習(xí)、監(jiān)督模型學(xué)習(xí)與優(yōu)化策略三類并串聯(lián)因果推理、不變性學(xué)習(xí)、穩(wěn)定學(xué)習(xí)與分布魯棒優(yōu)化之間的理論聯(lián)系同時(shí)介紹常用數(shù)據(jù)集與評估指標(biāo)最后總結(jié)未來研究方向。資源包共1個(gè)PDF文件約5.34MB篇幅完整、結(jié)構(gòu)清晰適合作為入門梳理與課題調(diào)研的案頭參考。目前已有2740人學(xué)習(xí)可幫助讀者快速建立OOD泛化的知識框架定位關(guān)鍵方法脈絡(luò)與可延伸的研究切入點(diǎn)。1. 訓(xùn)練滿分、上線翻車到底什么是分布外泛化你有沒有遇到過這種事一個(gè)模型在測試集上準(zhǔn)確率刷到 99%團(tuán)隊(duì)歡天喜地上了線結(jié)果真實(shí)場景一跑效果直接掉到及格線以下有時(shí)候甚至不如瞎猜。這不是玄學(xué)也不是代碼寫錯(cuò)了而是機(jī)器學(xué)習(xí)里一個(gè)繞不開的硬骨頭——分布外泛化Out-of-Distribution Generalization簡稱 OOD 泛化。通俗地說分布外泛化指的是模型在訓(xùn)練時(shí)見過的數(shù)據(jù)分布之外面對一個(gè)未知且不同的數(shù)據(jù)分布時(shí)還能不能保持靠譜表現(xiàn)。經(jīng)典機(jī)器學(xué)習(xí)建立在“獨(dú)立同分布”假設(shè)上也就是訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)來自同一個(gè)分布??涩F(xiàn)實(shí)里這個(gè)假設(shè)幾乎總被打破——數(shù)據(jù)會隨時(shí)間漂移、采集方式會帶來選擇偏差、場景一換特征分布就變了。這篇綜述論文做的第一件事就是把這個(gè)“看不見的坑”正式定義清楚然后系統(tǒng)梳理整個(gè)領(lǐng)域的方法版圖。搞懂它你才能明白為什么很多模型“實(shí)驗(yàn)室里是學(xué)霸出了門就迷路”。2. 為什么 i.i.d. 假設(shè)一破模型就失靈2.1 經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化一個(gè)貪心的好學(xué)生要理解 OOD 問題為什么難得先看經(jīng)典方法是怎么學(xué)的。絕大多數(shù)監(jiān)督學(xué)習(xí)模型用的是經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化ERM目標(biāo)很樸素把訓(xùn)練集上的平均損失壓到最低。# 經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的核心思想偽代碼示意 total_loss 0 for x, y in training_data: pred model(x) # 模型預(yù)測 total_loss loss(pred, y) # 累加每個(gè)樣本的誤差 average_loss total_loss / len(training_data) optimize(model, average_loss) # 最小化訓(xùn)練集平均誤差這段邏輯的含義是模型只對“訓(xùn)練集里出現(xiàn)過的規(guī)律”負(fù)責(zé)。參數(shù)說明上loss是預(yù)測與真實(shí)標(biāo)簽的距離optimize是梯度下降之類的優(yōu)化器。問題在于ERM 會貪婪地吸收數(shù)據(jù)中所有的相關(guān)性——包括那些只是巧合、換個(gè)分布就不成立的“偽相關(guān)”。比如訓(xùn)練集里“草地上的?!笨偸呛汀芭!边@個(gè)標(biāo)簽一起出現(xiàn)模型可能悄悄學(xué)會了“有草地就是?!币坏y試圖里牛站在沙灘上它就懵了。這不是模型笨而是它被訓(xùn)練目標(biāo)引導(dǎo)著走了捷徑。2.2 分布偏移從哪來時(shí)間、空間與選擇偏差分布偏移不是抽象概念它有很具體的來源。論文里點(diǎn)出了幾類典型成因數(shù)據(jù)隨時(shí)間的演化比如用戶行為年年變、空間上的差異不同地區(qū)的數(shù)據(jù)分布不同、以及數(shù)據(jù)采集過程中的樣本選擇偏差采到的樣本本身就有偏。打個(gè)比方你用某城市早高峰的打車數(shù)據(jù)訓(xùn)練一個(gè)需求預(yù)測模型搬到另一個(gè)城市或者放到深夜時(shí)段輸入特征的分布已經(jīng)變了模型學(xué)到的“規(guī)律”自然對不上號。更麻煩的是測試分布往往是未知的——線上場景里未來的數(shù)據(jù)還沒產(chǎn)生你根本沒法提前知道它會怎么變。這就是 OOD 泛化比普通測試集評估難的根本原因你不是在和一個(gè)已知的考卷較勁而是在和一張還沒印出來的考卷較勁。2.3 協(xié)變量偏移最常見也最值得盯的一類分布偏移有很多種形式論文重點(diǎn)討論了協(xié)變量偏移covariate shift輸入特征的邊緣分布變了但“給定輸入后標(biāo)簽怎么產(chǎn)生”的機(jī)制沒變。用公式說就是 Ptr(Y|X) Pte(Y|X)而 Ptr(X) ≠ Pte(X)。這個(gè)設(shè)定聽起來溫和其實(shí)很實(shí)用。它意味著“因果機(jī)制是穩(wěn)定的變的是輸入長什么樣”。比如識別手寫數(shù)字?jǐn)?shù)字本身的筆畫規(guī)則不變但測試時(shí)的光照、字體粗細(xì)、背景噪聲變了。正因?yàn)闃?biāo)簽生成機(jī)制穩(wěn)定我們才有機(jī)會通過尋找“不變的東西”來對抗分布變化。這也是后面不變性學(xué)習(xí)、因果學(xué)習(xí)這些方法能成立的底層前提。理解這一點(diǎn)你就抓住了整個(gè) OOD 方法族的一條主線別去記那些會變的表面相關(guān)性去找那些跨分布穩(wěn)定的因果結(jié)構(gòu)。3. 三條技術(shù)路線從表示、模型到優(yōu)化3.1 無監(jiān)督表示學(xué)習(xí)先把特征提純第一類方法動的是學(xué)習(xí)流程的最前端——特征表示。既然原始特征里混著大量隨分布變化的噪聲那就先學(xué)一個(gè)更“干凈”的表示。論文把它分成兩支解耦表示學(xué)習(xí)和因果表示學(xué)習(xí)。解耦表示學(xué)習(xí)的思路是把數(shù)據(jù)里不同的變化因素拆開讓每個(gè)維度對應(yīng)一個(gè)獨(dú)立的、有意義的因素而不是糾纏在一起。類比一下一張人臉圖片里混著光照、姿態(tài)、表情解耦就是把這些因素分門別類地放進(jìn)不同的抽屜模型后續(xù)只依賴穩(wěn)定的那部分。因果表示學(xué)習(xí)更進(jìn)一步試圖讓表示本身攜帶因果結(jié)構(gòu)信息借助變分貝葉斯等無監(jiān)督手段把先驗(yàn)知識嵌進(jìn)學(xué)習(xí)過程。這類方法的價(jià)值在于“治本”如果表示層就已經(jīng)把分布相關(guān)的干擾濾掉了下游模型自然更穩(wěn)。代價(jià)是解耦本身很難驗(yàn)證學(xué)出來的表示是否真的對應(yīng)因果因素往往缺乏可靠的檢驗(yàn)手段。3.2 監(jiān)督模型學(xué)習(xí)改結(jié)構(gòu)、改策略第二類方法不動表示而是在模型架構(gòu)和訓(xùn)練策略上做文章代表分支有因果學(xué)習(xí)、穩(wěn)定學(xué)習(xí)和領(lǐng)域泛化。領(lǐng)域泛化的場景最貼近工程現(xiàn)實(shí)手頭有多個(gè)不同來源的領(lǐng)域數(shù)據(jù)但測試領(lǐng)域完全沒見過目標(biāo)是讓模型在這些已知領(lǐng)域上訓(xùn)練后能泛化到未知領(lǐng)域。穩(wěn)定學(xué)習(xí)則從樣本選擇偏差切入強(qiáng)調(diào)模型應(yīng)該對分布變化保持穩(wěn)定而不是被少數(shù)強(qiáng)相關(guān)樣本帶偏。因果學(xué)習(xí)走的是另一條路它試圖讓模型學(xué)到特征與標(biāo)簽之間的因果關(guān)系而不是統(tǒng)計(jì)相關(guān)。這里可以用一個(gè)簡短的結(jié)構(gòu)示意說明“多領(lǐng)域訓(xùn)練”的常見做法# 領(lǐng)域泛化的訓(xùn)練骨架示意 for domain_data in [domain_A, domain_B, domain_C]: pred model(domain_data.x) loss criterion(pred, domain_data.y) # 關(guān)鍵不是簡單求和而是約束跨領(lǐng)域表現(xiàn)一致 total_loss loss regularize_across_domains(model) # 懲罰領(lǐng)域間差異過大的解 optimize(model, total_loss)參數(shù)說明domain_A/B/C是不同來源的訓(xùn)練領(lǐng)域regularize_across_domains代表跨領(lǐng)域一致性約束。邏輯重點(diǎn)是模型不能只在某一個(gè)領(lǐng)域上表現(xiàn)好而要在多個(gè)領(lǐng)域間找到共同穩(wěn)定的規(guī)律。這類方法的優(yōu)點(diǎn)是能直接復(fù)用現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)落地門檻相對低難點(diǎn)在于領(lǐng)域劃分本身需要人工設(shè)計(jì)領(lǐng)域數(shù)量和質(zhì)量直接影響效果。3.3 優(yōu)化策略把魯棒性寫進(jìn)目標(biāo)函數(shù)第三類方法最“硬核”直接改造優(yōu)化目標(biāo)本身代表是分布魯棒優(yōu)化DRO和基于不變性的優(yōu)化。普通訓(xùn)練是最小化平均損失DRO 則是最小化“最壞情況下的損失”——它不追求在大多數(shù)樣本上表現(xiàn)好而是追求在最不利的分布下也不至于崩盤。通俗地說ERM 是“平均分最高”DRO 是“最差科目也不能太差”?;诓蛔冃缘膬?yōu)化則把“跨環(huán)境不變的預(yù)測關(guān)系”作為優(yōu)化約束強(qiáng)迫模型去學(xué)那些在所有訓(xùn)練環(huán)境里都成立的規(guī)律。這類方法有理論保證能對 OOD 最優(yōu)性給出形式化分析是論文里理論連接部分的重頭戲。但理論漂亮不等于好落地DRO 往往對分布集合的界定很敏感界定得太寬會導(dǎo)致模型過度保守、在正常分布上表現(xiàn)下降界定得太窄又起不到魯棒作用。實(shí)際使用時(shí)這個(gè)“分布集合怎么劃”本身就是一道需要經(jīng)驗(yàn)判斷的題。4. 易混概念辨析別把這幾組詞搞混4.1 易混點(diǎn)一OOD 泛化與領(lǐng)域自適應(yīng)這是初學(xué)者最容易混的一對?;煜脑蚝苤苯觾烧叨荚谔幚怼坝?xùn)練和測試分布不一致”。但關(guān)鍵區(qū)別在于測試分布是否可得。領(lǐng)域自適應(yīng)假設(shè)你能拿到測試分布的數(shù)據(jù)哪怕沒有標(biāo)簽無監(jiān)督領(lǐng)域自適應(yīng)至少輸入是見過的而 OOD 泛化假設(shè)測試分布完全未知訓(xùn)練階段根本接觸不到。怎么區(qū)分問一句“訓(xùn)練時(shí)能不能看到目標(biāo)域數(shù)據(jù)”能是領(lǐng)域自適應(yīng)不能才是 OOD 泛化。領(lǐng)域自適應(yīng)因此能有理論保證OOD 泛化則必須靠額外假設(shè)才可行。4.2 易混點(diǎn)二協(xié)變量偏移與標(biāo)簽偏移兩者都是分布偏移但變的東西不同。協(xié)變量偏移是輸入分布 P(X) 變了、標(biāo)簽生成機(jī)制 P(Y|X) 不變標(biāo)簽偏移則是標(biāo)簽的邊緣分布 P(Y) 變了而給定標(biāo)簽后特征的分布 P(X|Y) 不變。為什么容易混因?yàn)楝F(xiàn)實(shí)里兩者常常同時(shí)發(fā)生。區(qū)分方法是看“因果方向”如果變化發(fā)生在“什么樣的輸入會出現(xiàn)”偏協(xié)變量偏移如果變化發(fā)生在“各類標(biāo)簽的比例”偏標(biāo)簽偏移。論文明確把重點(diǎn)放在協(xié)變量偏移上因?yàn)樗?OOD 泛化文獻(xiàn)里研究最深入的一類。4.3 易混點(diǎn)三不變性學(xué)習(xí)與穩(wěn)定學(xué)習(xí)這兩個(gè)詞經(jīng)常被交替使用其實(shí)側(cè)重點(diǎn)不同。不變性學(xué)習(xí)強(qiáng)調(diào)尋找在多個(gè)環(huán)境下保持不變的預(yù)測關(guān)系核心是“跨環(huán)境一致”穩(wěn)定學(xué)習(xí)則從樣本選擇偏差出發(fā)強(qiáng)調(diào)模型對分布變化不敏感核心是“對擾動穩(wěn)健”?;煜脑蚴莾烧叨甲非蟆胺€(wěn)”但不變性學(xué)習(xí)更依賴顯式的多環(huán)境劃分穩(wěn)定學(xué)習(xí)則更多從樣本加權(quán)等機(jī)制入手。區(qū)分時(shí)看它有沒有“環(huán)境”這個(gè)概念有明確多環(huán)境約束的偏不變性學(xué)習(xí)靠樣本層面去相關(guān)來求穩(wěn)的偏穩(wěn)定學(xué)習(xí)。4.4 易混點(diǎn)四表示學(xué)習(xí)與模型學(xué)習(xí)這兩類方法在流程里的位置不同但效果上常有重疊所以容易混。表示學(xué)習(xí)改的是“輸入長什么樣”在特征提取階段就把分布干擾濾掉模型學(xué)習(xí)改的是“從特征到標(biāo)簽怎么映射”表示可以不動。區(qū)分方法是看改動發(fā)生在管線的哪一段動的是編碼器輸出屬于表示學(xué)習(xí)動的是預(yù)測頭或訓(xùn)練策略屬于模型學(xué)習(xí)。論文按這個(gè)位置來分類正是為了讓讀者一眼看清每種方法“在哪一層發(fā)力”。5. 什么時(shí)候該用、什么時(shí)候別硬上5.1 適用與不適用的邊界OOD 泛化不是萬能藥它有明確的前提。最核心的一條你必須對測試分布怎么變做出某種假設(shè)否則問題在數(shù)學(xué)上不可解。論文說得很直白沒有假設(shè)就沒有泛化保證。所以判斷要不要用先問自己三個(gè)問題訓(xùn)練和測試分布是否真的不一致這種不一致有沒有可描述的規(guī)律比如協(xié)變量偏移我能不能拿到多個(gè)來源的訓(xùn)練數(shù)據(jù)來刻畫這種變化下面這張表可以幫助快速判斷場景特征建議方向原因測試分布完全未知但有多個(gè)訓(xùn)練領(lǐng)域領(lǐng)域泛化 / 不變性學(xué)習(xí)靠多領(lǐng)域約束找穩(wěn)定規(guī)律輸入分布漂移、標(biāo)簽機(jī)制穩(wěn)定協(xié)變量偏移方法前提成立方法有理論支撐能拿到目標(biāo)域無標(biāo)簽數(shù)據(jù)領(lǐng)域自適應(yīng)更合適有目標(biāo)域信息不必硬套 OOD分布變化毫無規(guī)律、無法假設(shè)謹(jǐn)慎先做數(shù)據(jù)診斷無假設(shè)則問題不可解只是普通同分布測試不必上 OOD 方法徒增復(fù)雜度可能掉點(diǎn)5.2 一個(gè)具體判斷例子假設(shè)某團(tuán)隊(duì)做一個(gè)圖像分類系統(tǒng)訓(xùn)練數(shù)據(jù)來自某實(shí)驗(yàn)室白天采集的樣本上線后要面對夜間、不同設(shè)備、不同背景的圖片。這時(shí)候直接套 ERM 大概率翻車因?yàn)檩斎敕植济黠@漂移。合理的做法是先確認(rèn)標(biāo)簽生成機(jī)制是否穩(wěn)定同一類物體的判別規(guī)則沒變屬于協(xié)變量偏移然后收集幾個(gè)不同采集條件的數(shù)據(jù)作為多個(gè)領(lǐng)域用領(lǐng)域泛化或不變性約束來訓(xùn)練。反過來如果團(tuán)隊(duì)其實(shí)能提前拿到夜間設(shè)備的少量無標(biāo)簽圖片那用領(lǐng)域自適應(yīng)更省力沒必要把問題拔高成完全未知的 OOD 設(shè)定。這里有個(gè)血淚經(jīng)驗(yàn)值得記住很多團(tuán)隊(duì)一上來就堆最復(fù)雜的魯棒優(yōu)化結(jié)果在正常分布上反而掉了好幾個(gè)點(diǎn)。OOD 方法往往是用“平均性能”換“最壞情況性能”如果你的實(shí)際場景分布變化沒那么劇烈這筆買賣可能不劃算。先做數(shù)據(jù)診斷、確認(rèn)偏移類型再選方法順序不能反。提示評估 OOD 方法時(shí)別只看單一測試集。論文專門強(qiáng)調(diào)了評估數(shù)據(jù)集和指標(biāo)的重要性因?yàn)橥植枷碌脑u估方式在分布偏移下會失效需要針對性的基準(zhǔn)和度量。從那以后我每次碰到“模型上線掉點(diǎn)”的問題都會先強(qiáng)制走一遍流程確認(rèn)是不是分布偏移、偏移屬于哪一類、有沒有多領(lǐng)域數(shù)據(jù)可用然后再決定要不要上 OOD 方法。這套綜述把定義、方法分類、理論連接和評估基準(zhǔn)串成了一條完整的線適合當(dāng)作查漏補(bǔ)缺的地圖。希望這份資料能幫你在下一次模型翻車時(shí)少走一點(diǎn)彎路。本文還有配套的精品資源點(diǎn)擊獲取