徐 海, 謝洪濤, 張勇東
(中國科學技術大學 信息科學技術學院, 安徽 合肥 230027)
當前,機器學習在自然語言處理、計算機視覺和醫療健康等領域的成功推動著人工智能從純粹的學術研究向產業落地轉變[1-2]。傳統機器學習算法遵循訓練域和測試域服從獨立同分布(independent and identical distribution, i.i.d)這一基本假設,然而由于數據獲取設備和條件的差異,現實場景中數據有可能呈現出和訓練集不同的分布。模型訓練域和測試域分布不一致的現象在機器學習中被稱為域偏移。域偏移現象在計算機視覺領域中廣泛存在,物體分類任務中圖像風格的差異、行人重識別任務中拍攝角度和相機的變化、醫學影像中成像設備或參數的不同、自動駕駛任務中數據采集時天氣、光照條件的區別,都可能會引起數據域的分布發生偏移。
與人腦認知方式相比,機器學習對數據域的分布變化更為敏感。例如小孩能夠很容易地在動物園中準確認出只在動畫片中見過的動物,但這對于僅使用卡通數據進行訓練的分類模型來說卻很困難。研究表明[3-4],當訓練集和測試集分布存在明顯差異時,機器學習模型性能容易出現大幅度的下降。因此,域偏移問題嚴重阻礙了模型進行大規模的部署應用,現實場景中數據的多變性和不可預知性對模型的域泛化能力提出了巨大的挑戰[5]。
一般來說,域泛化旨在研究如何在單一或者多個相似但分布不同的源域(Source domain)上進行模型訓練,使其能在具有不同分布的未知目標域(Target domain)上也能保持良好性能。
圖1示例中,PACS[6]數據集上域泛化任務要求在包含藝術畫、卡通畫以及照片3個源域的數據集上訓練的模型,在目標域簡筆畫數據上也能取得良好的泛化性能。
域泛化技術對模型泛化性研究具有重大意義,近年來引起了科研人員廣泛的研究興趣[7-8]。域泛化任務的挑戰在于如何克服域偏移問題,從源域數據中學習到更一般化的、遷移性更好的特征表達。隨著深度學習技術的發展進步及其在域泛化相關研究領域(如域適應、遷移學習和元學習)內取得的顯著成果,以深度學習技術為基礎涌現了一系列的域泛化研究工作,并取得了優異的模型泛化性能,對學術界和工業界產生了積極影響。
盡管域泛化研究在計算機視覺領域取得了一定的成果,但作為相對新興且小眾的研究方向,目前關于此方向的綜述還不全面[9-10]。本文旨在通過對近年來計算機視覺領域內具有代表性的域泛化研究工作進行梳理和總結,對域泛化的任務定義、任務特點和研究思路進行詳細概述,從而有助于研究人員快速了解該領域。區別于文獻[9-10]綜述,本文結合了傳統模型泛化理論和基于域適應的域泛化理論,從影響模型泛化性能的因素中提煉出域泛化研究思路,并以其為線索,對應地從增廣數據空間、優化模型求解、減小域間差異3個大方向分類總結域泛化領域的最新研究成果,并重點闡述了最新的研究進展,如基于頻域空間的增廣方法。此外,還介紹了域泛化技術在計算機視覺領域中的最新應用情況所對應的公開數據集,如深度偽造檢測任務。最后,討論了域泛化領域未來可能的研究方向。
模型泛化性指的是在給定數據集上訓練的模型對未觀測樣本的適應能力,為模型的部署應用提供重要的支撐作用。隨著計算資源和深度學習技術的發展迭代,深度神經網絡(Deep Neural Networks, DNNs)在圖像分類、醫療健康、自然語言處理和計算機視覺等領域中取得了媲美乃至超越人類的表現[11-12],但其泛化能力與人類仍存在一定的距離。
經典的泛化理論研究通常假設訓練樣本和測試樣本來自同一概率分布,通過測試誤差來評價模型的泛化能力,然而其無法應對目標域分布和訓練域存在域偏移的情況。為了揭示DNNs和人腦認知在目標分類任務上的泛化性差異,Geirhos等[13]通過12種不同的圖像畸變方法模擬不同的測試域,并統計人類和機器的分類準確率。結果表明,DNNs和人類在認知方式上仍存在顯著差別,當潛在的目標域數據不再和源域數據服從獨立同分布這一假設時,DNNs泛化性能會明顯下降。為了提升模型在多變的現實場景下的適用性,比如識別模型能夠不受圖像風格的影響,自動駕駛系統能夠對不同天氣條件下的數據保持魯棒性[14],同時增強對深度學習的理解,研究模型域泛化具有重要意義。
域泛化研究旨在單一或者多個相似,但分布不同的源域上進行模型訓練,使其能夠在未知的不同分布下的目標域上也能保持良好的泛化性能。
1.2.1 符號表示

1.2.2 任務定義

(1)
域泛化任務定義示意圖如圖2所示,區別于傳統泛化性研究,域泛化有如下特點:①訓練集通常包含單個或者多個分布不同的源域;②目標域不可見且分布與源域不同。域泛化和相關研究領域具體對比如下:
(1)監督學習(Supervised learning):與單源域的域泛化任務相似,監督學習僅在單一源域上進行模型訓練,其模型泛化性嚴重依賴于源域和目標域獨立同分布這一假設。經典泛化理論中關于模型復雜度和數據容量的論述對域泛化具有啟發作用。
(2)多任務學習(Multi-task learning):模型并行地學習多個任務,以提升模型在其中某目標任務下的學習效率和預測準確性[15-16]。多任務學習之所以有效,是因為要求算法在相關任務上表現良好,并起到某種正則化效果,從而學到更一般化的特征。學習更一般化的特征對于域泛化具有借鑒作用。
(3)遷移學習(Transfer learning):旨在將源域上學習到的領域知識遷移到目標域中,以提升目標域任務的模型性能[17-19]。比較常見的遷移方式是用在源域上預訓練好的模型對目標域上的模型進行初始化,然后在目標域上進行微調(Finetune),或者通過知識蒸餾的方式使模型能夠學到源域的知識。與域泛化不同,遷移學習中目標域是可見的,且目標域任務可以與源域差異很大。
(4)元學習(Meta-learning):旨在讓模型學會如何學習(Learning to learn),即利用先前任務中學習到的先驗知識去指導新任務的學習,使其能夠根據新任務進行快速調整[20-21]。域泛化任務中通過對源域進行劃分構建元任務,可以隱式地在不同域之間添加更新方向一致性約束。與元學習不同的是,域泛化中目標域是不可見的。
(5)零樣本學習(Zero-shot learning):基于可見源域上的數據和標簽訓練模型,并在未知的目標域上進行預測。零樣本學習中未知目標域分布和源域不同之處主要體現在標簽空間上,目標域數據都來自于未見過的標簽類別。零樣本學習旨在表征學習和度量學習基礎上,借助屬性或者文本信息實現知識的遷移[22]。
(6)域適應(Domain adaptation):解決域偏移問題中最直接的方法,即研究目標域可知的情況下,跨域泛化性(Cross-domain generalization)問題。域適應可以看作是背景條件約束更嚴格的遷移學習問題,讓在源域上訓練的模型去適應目標域上的數據分布[23-24]。與域泛化相比,域適應下目標域數據是可獲取的。作為與域泛化最相近的研究領域,域適應任務為跨域泛化性研究提供了理論基礎。
域泛化和各研究領域的對比總結見表1,盡管不同研究領域之間存在差異,其他領域(如域適應)的研究思想對域泛化存在廣泛的借鑒意義。

表1 域泛化與各研究領域對比Table 1 Comparisons between domain generation and related tasks
傳統泛化理論揭示了模型泛化誤差與訓練樣本數量和模型復雜度之間的關系,對域泛化研究起到一定的指導作用。在經典的統計學習理論中,模型泛化性能可以用泛化誤差進行度量。泛化誤差表示為模型h在數據域(X,Y)~PXY上的期望風險,表達式如下:
R(h)=E(X,Y)~PXY[(h(X),Y)]
(2)
文獻[25]證明了泛化誤差R(h)至少以1-δ的概率滿足
(3)
(4)
從式(4)可以得出,模型泛化誤差上界由訓練樣本容量N和模型假設空間容量d共同約束,且具有如下性質:①當樣本容量增加時,泛化誤差上界趨于零,模型泛化性能越強;②模型假設空間容量越大,泛化誤差上界越大,模型學習難度增加,泛化能力減弱。因此,傳統基于模型容量的泛化理論認為對訓練數據的過擬合是導致泛化性能差的重要原因,且符合奧卡姆剃刀原則的學習策略和正則化方式,有助于模型泛化能力的提升。
和傳統泛化理論中訓練域和測試域獨立同分布的假設不同,域泛化的目標是在具有不同分布的源域數據上學習通用的特征表達,并希望該特征表達也能應用于未見過的目標域數據。通常可以用目標域上的泛化誤差去衡量該特征表達的泛化性能,然而域泛化任務中目標域是不可見的,目標域上的泛化誤差無法直接度量。鑒于域泛化研究間接約束了不同源域之間的跨域泛化性,源域之間的域適應問題研究為域泛化提供了理論指導[26]。
考慮二分類任務上的域適應問題,源域和目標域分別用
εS(h,fS;DS)=Ex~DS[|h(x)-f(x)|]
(5)
εT(h)≤εS(h)+d1(DS,DT)+
min{εS(fS,fT),εT(fS,fT)}
(6)
其中,d1(DS,DT)=2supB?X|PDS[B]-PDT[B]|是基于L1范數的變分散度(Variation distance)。式(6)右邊第三項表示源域和目標域標簽函數的差異,在協變量偏移假設下可以忽略。然而,d1(DS,DT)無法精確估計有限樣本下的分布距離且求上確界的條件過于苛刻。實際上只需要關注對于假設函數h而言的域之間的距離,為了將域分布的距離與目標假設聯系起來,文獻[27]提出了-距離(-divergence):
(7)
式中,I(h)={x|h(x)=1}表示與假設函數h相關的數據域的一個子集。要想讓-距離很小,需要在假設空間上訓練的分類器h能夠準確區分輸入數據來自源域還是目標域,d可以使用經驗誤差進行計算。
為了利用d(DS,DT)來建立εT(h)和εS(h)的關系,首先引入理想聯合假設h*,滿足
h*=argminh∈(εS(h)+εT(h))
(8)
記h*下理想聯合預測誤差λ=εS(h*)+εT(h*),其次基于異或的思想定義對稱假設空間Δ:
g∈Δ?g(x)=h(x)⊕h′(x)
(9)
PrDT[h(x)≠h′(x)]|
(10)
由此可得
(11)
且容易求得d(DS,DT)≤2d(DS,DT),因此有
|εS(h,h′)-εT(h,h′)|≤d(DS,DT)
(12)
最終給出了目標域泛化誤差的上確界:
εT(h)≤εT(h*)+εT(h,h*)
≤εT(h*)+εS(h,h*)+|εS(h,h*)-
εT(h,h*)|
≤λ+εS(h)+|εS(h,h*)-εT(h,h*)|
≤εS(h)+λ+d(DS,DT)
(13)
經過上述推導可知,目標域泛化誤差的上界由3個因素界定,分別是源域誤差、理想聯合預測誤差和域間距離。其中,源域誤差和理想聯合預測誤差主要受模型假設空間影響,當模型結構固定時,源域和目標域在假設函數h下的分布距離是影響目標域泛化誤差的關鍵因素。因此,通過特征空間過渡,使得在特征空間上目標域和源域無法區分,是保證跨域泛化性的重要手段。
2.3.1 增廣數據空間
基于傳統泛化理論,域泛化研究的第一種思路是增廣數據樣本空間(Data augmentation)。這一類方法的基本思想是在原有訓練數據的基礎上,通過數據增廣技術產生更多的數據用于訓練,降低模型過擬合的風險,從而提升模型的泛化性。目前,域泛化領域數據增廣方法大致可以分為2大類:第一類是基于圖像處理技術的數據增廣,主要包括幾何變換、顏色變換和圖像融合等;第二類是基于深度學習方法的數據增廣,主要涉及到圖像風格轉換、對抗樣本、生成對抗網絡及特征空間增廣等多種技術。
2.3.2 優化模型求解
傳統泛化理論認為,泛化誤差與模型容量成正比,且模型容量可以簡單地用模型參數多少來表示。然而在實踐中,DNNs通常包含比訓練樣本更多的參數,對數據擬合能力更強,卻表現出出色的泛化性能,繼續增大模型的參數量,模型的泛化性能也不會變差。Zhang等[28]將DNNs的泛化能力一部分歸因于模型的記憶能力,即模型容量足夠大到可以記住所有訓練數據。隨后,Krueger等[29]實驗發現,對于真實數據,DNNs用較少的參數獲得較好的性能,而對于噪聲則需要增加模型的容量。這表示網絡不僅僅是簡單的暴力記憶,而是從數據中學習某種模式。進一步,文獻[30]總結了前面的工作,指出DNNs泛化性不僅與模型容量有關,優化策略以及數據本身都會對泛化性造成影響。

2.3.3 減小域間差異
域泛化研究中,由于目標域是不可見的,無法直接度量目標域的泛化誤差,但是可以通過保證源域內的跨域泛化性隱式地提升域泛化性能。因此,在源域上學習一個通用的特征表達,使得不同域之間的差異變小,是域泛化研究的第三種思路。減小域間差異的基本思想是學習具有域不變性的特征表達(Domain-invariant representation), 域不變性保證了特征對域偏移不敏感,因此能更好地泛化到不可見的目標域上。基于特征解耦(Feature disentanglement)的域泛化方法也被廣泛研究,這類方法認為特征空間可以被解耦成域不變(Domain-invariant)特征和域特異(Domain-specific)特征2個部分。此外,學習數據更一般化的特征(Generic features),使模型不僅更關注數據語義信息而忽視域的特定偏差(Domain-specific bias),也能減小域間差異,使模型更容易泛化到目標域上。
本節遵循域泛化研究思路,對近年來具有代表性的研究工作進行歸類,如圖3所示。
隨著深度學習技術和算力的發展,DNNs模型參數呈指數增長,模型數據擬合能力得到前所未有的提升。為了降低深度學習模型過擬合的風險,能生成更多訓練數據的數據增廣技術是最直接有效的方式,從而被廣泛研究用于提升模型的魯棒性。同樣地,在域泛化研究領域,數據增廣技術可以用來模擬數據域的多樣性,降低模型受特定域偏差的影響,以達到提升模型在目標域上的泛化效果。根據數據樣本增廣方式的不同,本文將基于數據增廣的域泛化研究方法分成4個類別進行介紹。
3.1.1 基于圖像空間的數據增廣
此類數據增廣方法基于傳統的圖像處理技術進行數據增強,主要包含幾何變換、顏色變換、噪聲注入和圖像融合等方式。這些增廣方式對于域偏移情形相對簡單的域泛化任務非常有效,如源域圖像差異主要體現在位置視角和亮度變化的手寫數字識別任務中。根據域泛化任務中域偏移產生的原因不同,針對性地設計數據增強方法可以有效提升域泛化效果。在手寫數字識別任務中,MNIST、MNIST-M、Rotated MNIST等數據域的差異主要體現在字體、顏色、背景和旋轉角度上,因此,可以采用幾何變換和顏色變換相關的數據增廣方式以模擬可能的目標域。而對于受天氣變化影響最大的自動駕駛任務來說,選擇圖像對比度、亮度和曝光度等顏色變換進行數據增廣更貼近潛在的域偏移情形。那么如何選擇變換是最優的呢?直觀上認為與當前源域空間風格差異大的圖像變換方法收益更大。Volpi等[31]設計了一套基于演進的搜索算法,迭代式搜索能使變換后的圖像分布盡可能偏離原始圖像分布的變換方法,并證明了該方法能有效提升模型泛化性。在人臉識別任務中,文獻[32]選擇了降低圖像分辨率、添加遮擋和改變頭部姿勢這些增加識別難度的圖像變換方法。
然而,傳統的數據增強方法通常適用于單一數據域中的簡單圖像變化,無法處理源域間數據差異很大的情況,如包含明顯圖像風格變化的PACS。
3.1.2 基于圖像生成的數據增廣
圖像生成是域泛化領域進行數據增廣的一種常見方式,通過生成大量的、多樣化的數據來提高模型的泛化能力。最常見的圖像生成方式是借助生成對抗網絡(Generative Adversarial Network, GAN)、變分自編碼(Variational Auto-Encoder,VAE)等生成模型產生不同風格的圖像。Yue等[33]使用cycleGAN[34]將合成的數據映射到不同的風格空間以實現域隨機化(Domain randomization),并對不同域下的圖像添加一致性約束以學習域不變特征表達。Rahman等[35]使用ComboGAN[36]生成新的數據,然后應用最大均值差異[37](Maximum Mean Discrepancy, MMD)度量最小化真實和生成圖像之間的分布差異,以幫助學習到更通用的特征表示。在域泛化領域,梯度信息也被廣泛研究用來圖像生成。受對抗攻擊啟發,Volpi等[38]利用分類器梯度信息生成包含對抗噪聲的對抗樣本圖像,并結合對抗訓練提升模型泛化性;Qiao等[39]還使用了WAE以保留樣本語義信息,并使其與源域具有最大差異。為了使模型學習到更多具有域不變性的特征,文獻[40-41]在模型基礎上設計了域分類器,利用域分類器的梯度信息設計擾動,使生成圖像能夠騙過域分類器。基于梯度信息生成的圖像在視覺上與原圖無差異,因此會被詬病無法模擬真實世界的域偏移情況。
3.1.3 基于特征空間的數據增廣
考慮到依賴于圖像空間的方法需要精心的增強設計,而且僅能夠提供有限的增強數據多樣性,同時基于圖像生成的數據增廣方式需要引入額外的網絡結構,增大了模型的復雜度。因此,近期不少研究轉向基于特征空間的數據增強方式。
Bengio等[42]認為卷積操作將圖像的流形線性化為一個深度特征的歐幾里得子空間,因此,可以通過對特征空間進行線性操作實現復雜的屬性轉換任務[43]。風格遷移研究[44]表明,DNNs的深層特征的統計信息包含了圖像風格信息。基于此發現,Zhou等[45]提出了MixStyle,通過混合基于特征空間提取的不同域的風格信息可以生成具有新風格的圖像。Gong等[46]發現訓練期間在特征空間上嵌入高斯噪聲能有效提升分類器的域泛化性能,由此設計了包含類別信息的協方差矩陣進行自適應的特征增強。此外,文獻[47]通過識別源域中數據的主要變化模式,然后隱式包含沿這些方向的增強版本來執行特征增強。
3.1.4 基于頻域空間的數據增廣
基于傅立葉變換,Yang等[48]提出了一種新的域適應方法FDA。FDA設計了一種簡單的圖像轉換策略,通過交換源域和目標域的低頻頻譜來減少源域和目標域分布之間的差異。通過簡單訓練幅度轉移的源圖像,FDA取得了顯著的泛化性能。受FDA啟發,文獻[49]提出了一種基于傅里葉變換的數據增廣方法,該方法的設計動機來源于傅立葉變換的一個眾所周知的特性[50],即傅立葉頻譜的相位分量保留了原始信號的高級語義,而幅度分量包含低級統計信息。因此,Xu等[49]在保留頻譜相位信息的前提下,通過MixUp方式混合不同域的頻譜幅度信息,以實現數據增廣的目的。該方法可以避免過度擬合幅度信息中攜帶的低級統計信息,從而使決策時更加關注與高級語義相關的相位信息。類似地,Huang等[51]提出了頻率空間域隨機化算法,通過離散余弦變換(Discrete Cosine Transform,DCT)將圖像映射到頻域空間,然后使用帶通濾波器將其分成64個頻率分量,通過劃分并保持域不變頻率分量(Domain-Invariant Frequency components, DIFs)和隨機改變域可變頻率分量(Domain-Variant Frequency components, DVFs)來實現頻域空間下的數據增廣。
域泛化研究中優化模型解空間的指導思想是降低域偏移現象對模型求解過程的影響,根據方法設計思想的不同可分成3類:①基于標準化(Normalization)優化求解;②基于集成優化求解;③基于元學習優化求解。
3.2.1 基于標準化優化求解
由于域泛化研究中域偏移情況的存在,不同域數據協變量偏移(Covariate shift)形式不同,導致域間的統計特征(均值、方差)存在差異,使得傳統的標準化方法,如BN(Batch Normalization)、LN(Layer Normalization)和IN(Instance Normalization)泛化性能不佳。域偏移會導致模型求解困難,增加模型復雜度,進而降低泛化性。
IBNet[52]實驗發現IN能夠在有效保留圖片內容的同時,將圖片的風格信息過濾掉,因此,IBNet將IN引入到網絡低層中,過濾掉低層特征中的外觀信息,在跨域語義分割任務上取得了大幅的性能提升。Chang等[53]為每一個域的數據設計了專屬的結合IN和BN的標準化層來獲取域特異(Domain-specific)的統計信息。為了使IN能自適應不同的域,文獻[54]提出了一種通用的自適應標準化方法ASR-Norm,它使用自動編碼器讓網絡自動學習不同域下的IN歸一化參數和縮放參數。在文獻[55]中,作者提出了一種新的標準化方法,從2個方面解決分布變化問題:擴大訓練時的分布及縮小測試時的分布。類似于MixStyle[45],該方法設計了CrossNorm在訓練過程中交換不同通道或不同實例的歸一化參數,以模擬不同的域風格,之后基于注意力機制設計了SelfNorm模塊讓網絡學習標準化中的縮放參數。
3.2.2 基于集成優化求解
集成學習(Ensemble learning)算法的基本思想是利用集成的方式平滑模型解空間,從而避免模型陷入局部最優。對于域泛化,集成學習通過使用特定的網絡結構設計和訓練策略來利用多個源域之間的關系,從而提高泛化性。
(1)模型集成
為每一個源域設計特定網絡結構的模型集成方法[56],是域泛化中基于集成學習優化求解最直接的方式。為了進一步優化,Xu等[57]認為淺層網絡主要用于提取一般化特征,不同模型之間可以共享淺層網絡參數,從而降低模型集成的計算開銷。對于模型集成如何獲得最終的預測,文獻[58]采取直接對模型輸出求平均的方法;Mancini等[59]設計了域預測器用于預測樣本屬于每個域的概率,推斷時用域預測器的概率作為權重,對不同源特定分類器的預測結果進行加權。在視網膜分割任務中,Wang等[60]沿用了此策略用于集成預測。
(2)梯度集成
域泛化中集成學習的第二種方式是梯度集成。通常認為,基于模型集成的方法主要有2個缺陷:①模型復雜度高;②難以捕捉不同域之間的關系。不同于模型集成每個域單獨優化一個特定模型,基于梯度集成的方法同時利用多個源域的梯度信息共同優化一個模型。梯度集成最直接的方式是使用標準的小批量梯度下降(Mini-batch gradient descent),其中,mini-batch是通過從所有源域中隨機采樣圖像來構建的。Mansilla等[61]認為每一個域內的數據包含特定于該域而與其他域無關的梯度信息,如果不加處理,域之間的梯度不一致會影響模型的泛化能力。他們設計了基于梯度符號一致性的判斷策略,在優化過程中只對源域圖像梯度一致的模型參數進行更新。Shi等[62]認為源域梯度的方向和內積對模型學習域不變特征具有關鍵意義,因此提出域間梯度匹配算法,最大化梯度內積(GIP)以對齊跨域的梯度方向,并通過實驗驗證了梯度對齊在域泛化領域的有效性。
3.2.3 基于元學習優化求解
元學習,也叫學會學習,探索如何在訓練任務中找到一些共性(Meta knowledge),作為先驗知識幫助以后快速學習新的任務。基于梯度的元學習方法(Mode-Agnostic Meta-Learning,MAML)[20]最早應用于小樣本學習。隨后,Li等[21]將MAML的情景訓練范式(Episodic training paradigm)引入解決域泛化問題,提出MLDG(Meta-Learning Domain Generalization)將多個源域隨機劃分成元訓練域(Meta-train domain)和元測試域(Meta-test domain),并按照MAML方式進行訓練。文章中證明了先在元訓練域上更新一步,然后再在元測試域上更新的方式,相當于隱式地在不同域的更新梯度方向添加了一致性約束,這與前面基于梯度集成的方法思想是類似的,因此能提升域泛化能力。Balaji等[63]認為MLDG可能不太適合目標數據不可見的場景,并且求二階導操作對內存的消耗使其無法適用于大型網絡。為解決上述問題,他們提出MetaReg算法,顯式地學習只應用于網絡分類層的正則化函數以提升模型泛化性。文獻[64]指出上述研究都忽略了來自特征空間的語義信息指導,通過全局類對齊和局部樣本聚類顯式地約束了特征空間中的語義結構。
第2.2小節理論上給出了跨域泛化性研究中影響目標域泛化誤差上界的3個因素,分別是源域誤差、理想聯合預測誤差和域間差異。因此,在模型給定的情況下,減小源域和目標域在假設函數下的分布差異是提升跨域泛化性的重要手段。在域泛化研究任務中,減小域間差異的方法大致分為3類:域不變特征表達、特征解耦以及一般化特征學習。
3.3.1 域不變特征表達
域不變性保證了特征對域偏移不敏感,因此能更好地泛化到不可見的目標域上。此類方法的關鍵在于尋找使不同域在映射空間內距離最小的映射函數,現有方法大致分為以下3類:
(1)基于核方法學習域不變特征
核方法(Kernel-based method)[65-68]是機器學習中最經典的學習方法之一。基于核方法可以將原始數據在高維映射空間中距離度量簡單化,而無須關心映射函數的具體形式。域泛化期望在高維映射空間φ(·)內不同域的特征與標簽的聯合分布基本一致,從而令模型能學習域無關的特征,即
p(i)(φ(X),Y)=p(j)(φ(X),Y)
(14)
假設標注Y的條件分布p(Y|φ(X))不隨域發生改變,聯合分布可以簡化為源域和目標域的邊緣分布一致。Pan等[69]提出遷移成分分析方法(Transfer Component Analysis,TCA),將源域和目標域的數據映射到高維的再生核希爾伯特空間(Reproducing Kernel Hilbert Space, RKHS)。在RKHS空間中,最小化源域和目標域的最大均值差異(Maximum Mean Discrepancy,MMD),同時最大程度地保留域各自的內部屬性。與TCA的核心思想相似,域不變成分分析法(Domain Invariant Component Analysis, DICA)[70]利用核方法對域泛化進行求解,目標是找到特征轉換核k(·,·)使所有數據在特征空間中的分布差異最小化。
實際場景下,不同域標注Y的條件分布一致的條件很難滿足,依據貝葉斯公式
p(Y|φ(X))=p(φ(X)|Y)·p(Y)/p(φ(X))
(15)
令來自不同域的類別條件分布一致,即
p(i)(φ(X)|Y)=p(j)(φ(X)|Y)
(16)
可以通過對類別進行分組,約束相同類別不同域的特征盡量相似,并且要求不同類別的特征差異盡可能大來達到此目的。Ghifary等[71]提出統一的框架SCA(Scatter Component Analysis)對上述約束進行細化,并添加了在所有域上類內和類間不一致性的約束。而基于類別條件分布一致的在隨后的域泛化研究[72-73]中得到了廣泛關注。
(2)基于神經網絡學習域無關特征
神經網絡良好的非線性保證了其特征提取器可以起到核方法類似的效果,基于神經網絡的方法優勢在于能自動學習數據的映射方式。其目標函數與基于核方法的函數類似,要求不同域相同類別的特征距離盡量小,不同類別的特征盡量疏遠。度量特征分布距離方式常見的有基于統計的一階、二階矩(均值、方差)[74]、KL散度(Kullback-Leibler divergence)[75-76]、對比損失(Contrastive loss)[77-78]、最大均值差異MMD[69-71]以及三元組損失(Triplet loss)[64]等。在文獻[76]中,KL散度被用來約束所有源域特征服從高斯分布。Dou等[64]提出了一種度量學習方案,通過一個度量學習網絡ψ來約束不同域之間相同類別的特征盡可能緊湊,并設計了triplet loss進行距離計算。
(3)基于對抗學習域無關特征
和顯式地度量分布距離不同,域對抗學習提供了一種隱式地學習域不變特征的方法。簡單來說,在模型上設計一個域鑒別器,優化的目標是使不同域數據在特征空間上的分布無法分辨。Ganin等[79]首先在域自適應任務中提出了域對抗神經網絡(Domain Adversarial Neural Network, DANN),通過交替對抗訓練分類網絡和域鑒別網絡,使模型無法判斷輸入數據來自于源域還是目標域,從而達到學習域無關特征的目的。為了使得源域間特征之間類別條件分布一致如式(16),除了全局的域鑒別器,文獻[80]還設計了多個不同類別先驗下的條件域鑒別器。圖像分類器和域鑒別器以逆梯度的方法(Reverse gradient)進行對抗訓練,期望特征提取模型在訓練的過程中能混肴全局域鑒別器。值得注意的是,條件域鑒別器與全局域鑒別器不同在于輸入的樣本屬于同一個類別但不同域的樣本數據。Li等[81]將MMD距離與自編解碼(Autoencoder)結構結合提出了MMD-AAE框架,最小化自編碼特征的域間MMD距離使得模型學到合適的全局特征。同時,作者認為在最優條件下,來自不同域的特征均值向量應當服從正態分布。基于該假設,模型設計了一個對抗結構,約束特征均值向量逼近正態分布生成的向量,MMD-AAE整體結構如圖4所示。DLOW[82]在嵌入對抗的框架里利用對抗損失作為分布距離度量控制中間域與源域和目標域的相關性,從而去學習中間最優的特征變換。
3.3.2 特征解耦
當域偏移情況嚴重時,約束整個特征空間具有域不變性面臨巨大的挑戰。基于特征解耦的域泛化方法認為特征空間可以分解為子特征的組合,其中一部分屬于域共享的域不變特征,另一部分是私有的域特異特征,從而可以利用特征解耦減弱特征域特異部分對域泛化的影響。
特征解耦主要有2種方式,一種從模型層面將參數分解成2部分:一部分負責提取域不變特征,另一部分提取域特異特征。文獻[83]提出Undo-Bias將基于SVMs的分類器參數按此分成2部分,且僅用域不變特征處理未知域。同樣地,神經網絡模型也可以按參數進行分解,在文獻[84]中,作者對Undo-Bias進行了擴展并設計了一個低秩參數化的CNN模型用于端到端域泛化學習。Chattopadhyay等[85]為了學習域特異和域不變特征之間的平衡,引入了域特異的激活掩碼(Domain mask),使模型能夠受益于域特異特征的預測能力,同時保持域不變特征的泛化性。Piratla等[86]直接對模型的權重矩陣應用低秩分解,以識別更通用的共同特征。另一種特征解耦的方式需要借助于生成模型。Ilse等[87]提出了域不變變分自編碼器 (Domain Invariant Variational Autoencoder, DIVA),DIVA是一個生成模型,通過學習3個獨立的潛在子空間(類別、域和數據本身)解決域泛化問題。在文獻[88]中DAL(Domain Agnostic Learning)特征被解耦為互信息最小化約束下的域不變特征、域特異特征和類無關特征3個部分(圖5),DAL結合對抗訓練和變分自編碼器對原始特征進行重建,進而學習到域不變的特征表示。
3.3.3 一般化特征學習
一般化的特征學習主要包含2類方式,第一種是通過多任務學習的方式使其能同時處理多個子任務,從而優化原特征表達,增強特征的一般性。Ghifary等[89]設計了一種多任務的降噪自編碼器(Multi-Task Autoencoder, MTAE),與傳統自編碼器從噪聲中重建圖像不同,MTAE學習利用原始圖像同時重建多個相關域的圖像。因此,它可以學習對跨域變化更具有魯棒性的特征。第二種方式是基于自監督學習(Self-supervised)思想,構造經驗式(Empirical)或是啟發式(Heuristic)的輔助自監督任務,通過輔助任務(Pretext)的學習,從無監督數據中挖掘數據自身的有用信息,從而提取更一般化的數據特征。常見的輔助任務有拼圖游戲[90](Jigsaw puzzles)、預測變換參數[91]等。Jigsaw puzzles構造了一個自監督的拼圖任務供模型進行學習,并認為與域無關的任務可以減小域之間的分布差異。一般化特征學習的方法需要更多的工作以衡量其在域泛化研究中的效果。
深度學習技術和計算資源算力的飛速發展,推動著計算機視覺領域中許多研究任務從實驗室走向線下應用,如圖像分類、動作識別、語義分割和行人重識別等。考慮到模型訓練樣本的有限性以及實際應用場景中數據的多樣性,域泛化研究對于提升模型的泛化能力具有重要意義,目前,域泛化技術已在多種應用場景下開展廣泛研究。
4.1.1 數字識別
作為計算機視覺領域研究非常活躍且極具挑戰性的應用場景之一,數字識別研究不僅具有豐富的理論價值,同時也具有很高的應用價值,在大規模數據統計和財務稅務等金融領域具有十分廣闊的應用前景。數字識別應用要求識別系統具有高識別精度和可靠性,然而,數字雖然筆畫簡單,卻帶有明顯的個人特性,同一數字寫法千差萬別,就算是印刷體也會受字體不同的影響,這為域泛化研究提供了廣闊的舞臺。
目前,域泛化研究數字識別數據集主要包含Digits-DG[92],Colored MNIST[93]和Rotated MNIST[89]。其中,Digits-DG數據集由MNIST[94]、MNIST-M[79]、SVHN[95]和SYN[79]4種數據集構成。其中,MNIST是手寫數字圖像數據集;MNIST-M由MNIST和BSDS500[96]數據集中的隨機色塊混合而成;SVHN是真實場景中的門牌號碼圖像;SYN是基于WindowsTM字體生成的合成數據集。這4個數據集由于在字體風格、筆畫顏色和背景上存在明顯的域差異,被用于數字識別域泛化性研究。Colored MNIST和Rotated MNIST是在MNIST上分別將顏色和旋轉角度作為域偏移量進行構建的,也是較為常用的域泛化數字識別數據集。
4.1.2 圖像分類
圖像分類是計算機視覺領域的基本問題,也是其他高層視覺任務(如目標檢測、語義分割)的研究基礎,在人臉識別,圖像分類歸檔,智慧交通等領域具有廣泛的應用價值。受圖像生成方式、采集設備差異以及天氣等的影響,圖像數據集中域偏移現象較為普遍,這對模型域泛化能力提出了更高的要求,也成為域泛化研究最為熱門的任務場景。常用的數據集介紹如下:
(1)CIFAR-10-C、CIFAR-100-C和ImageNet-C[97]是分別在CIFAR-10、CIFAR-100[98]和ImageNet[99]數據集的基礎上,進行了不同類型的破壞,如添加噪聲、模糊、天氣和數字化。
(2)PACS[6]、Office-Home[100]、DomainNet[101]和ImageNet-R[102]這4個數據集均關注圖像不同的風格變化。其中,PACS由4種風格的圖像組成,包括美術繪畫、卡通、照片和素描;Office-Home中的圖像風格包括藝術、剪紙、產品和現實世界;DomainNet包含6種不同的風格;而最新提出的ImageNet-R[102]包含了原始ImageNet中200個目標類別的各種藝術再現。
(3)VLCS[103]、Office-31[104]和Terr Incognita[105]主要關注不同環境的域差異。VLCS由Caltech101[106]、PASCAL VOC[107]、LabelMe[108]和SUN09[109]這4個不同的數據集組合而成,包含不同環境和視角的變化;Office-31數據集由常見的辦公設備組成,包含3個域的目標(Amazon、DSLR和WebCam);Terr Incognita由4個不同地域的野生動物圖像構成。
語義分割是圖像理解中的關鍵一環,在自動駕駛和地理信息系統等領域具有廣闊的應用前景。語義分割中域泛化研究主要圍繞傳感器采集條件不同,如天氣、光照和季節的影響導致的圖像域偏移問題展開。由于數據的稀缺性和醫療成像設備的差異性,域泛化在醫學影像分析領域也具有重要的應用價值。考慮到數據獲取和標注的難度,語義分割數據集主要由真實場景數據集和合成場景數據集組成。
真實場景數據集包括Cityscapes[110]、BDD-100K[111]和Mapillary[112]。Cityscapes是包含50個不同城市高分辨率場景圖像的大規模數據集;BDD-100K源于美國不同地方采集的駕駛圖像;Mapillary包含25 000張從世界各地采集的高分辨率街景圖像。合成數據集包括GTA5[113]和SYNTHIA[114]數據集。GTA5數據集由游戲生成,從汽車視角拍攝,包含24 966張具有像素級語義標注的合成圖像,與真實場景數據集共享19個類別;SYNTHIA數據集包括3個地點,以及不同的天氣、光照和季節,與真實場景數據集共享16個類別。
此外,在醫學圖像分割任務上,域泛化研究往往在不同模態的數據以及不同醫療機構獲取的數據上開展研究。
安防監控領域的應用主要包括人臉活體檢測、深度偽造檢測和行人重識別等場景。此類應用場景涉及到嚴重的信任問題和社會安全,對模型的泛化能力具有更高的要求。圖像攻擊方法和篡改技術的多樣性,為安防監控領域算法的域泛化性研究提供了基礎。
4.3.1 人臉活體檢測
近年來,諸如打印攻擊、視頻攻擊、3D掩碼攻擊等攻擊方法的出現,給人臉識別技術的廣泛應用帶來巨大安全風險。由于攻擊類型的多樣化,以及顯示設備的不同,在進行人臉活體檢測時,提升模型域泛化能力至關重要。此任務場景中常用的是COMI[115],由OULUNPU[116]、CASIA-FASD[117]、Idiap Replay-Attack[118]和MSU-MFSD[119]4種攻擊方法生成的圖像構成。人臉活體檢測域泛化研究可以有效提升檢測系統的安全性和魯棒性。
4.3.2 深度偽造檢測
隨著人臉合成技術的發展,深度偽造圖像和視頻越來越逼真。由于偽造算法的多樣性,開發魯棒的深度偽造檢測模型十分關鍵。FaceForensics++[120]是研究深度偽造檢測域泛化任務的常用數據集。使用4種最先進的人臉偽造方法:Deepfake[121]、Face2Face[122]、FaceSwap[123]和NeuralTextures[124]構建。深度偽造檢測域泛化研究遵循leave-one-domain-out[6]評價規則;或者使用FaceForensics++中的所有數據訓練,然后在其他數據集,如DeeperForensics[125]、FaceShifter[126]、Celeb-DF-v2[127]和DFDC[128]上進行測試[129]。
4.3.3 行人重識別
行人重識別域泛化問題中域偏移通常來源于不同的相機、視圖、光照和背景等條件。常用的數據集包含VIPeR[130]、PRID[131]、CUHK02[132]、CUHK03[133]、Duke[134]、Market[135]和MSMT17[136],主要通過相機來區分不同域。此外,最新發布的Person30K[137]數據集解決了以往數據集樣本和標注身份有限、采樣相機少、環境條件和姿勢變化少等問題,提出了一個更大規模的行人重識別數據集,以幫助提升行人重識別模型的表示和泛化能力。
表2總結了當前與域泛化研究的相關應用場景以及常用數據集和數據集基本信息。

表2 域泛化應用場景與數據集Table 2 Applications and popular datasets for domain generalization

(續表2)
近些年來,盡管一系列致力于提升模型在未知域下泛化性的域泛化技術被提出,并取得了一定的成果,但是域偏移問題還遠沒有被解決,域泛化研究仍然充滿挑戰。在人工智能應用落地速度加快的大背景下,真實應用場景下數據的多樣性和不可預知性對模型泛化性提出了巨大挑戰,域泛化問題仍然是一個需要深耕的方向。本節簡要介紹域泛化領域未來的一些迫切需要研究的方向。
(1)異質化的域泛化研究。當前研究基本集中在同質化的域泛化研究,即目標域與源域的標簽空間是一致的。然而實際場景下目標域數據可能會是源域內沒有出現過的類別,這要求模型擁有類似零樣本學習的能力。另外,源域內域偏移的形式也是同質化的,當前域泛化研究往往只關注單一域偏移形式,如PACS數據集只關注圖像風格的不同、VLCS只關注環境和視角的變化。現實中的目標域偏移具有不可預知性,可能與模型訓練時的域偏移情況相差甚遠,從而導致模型的性能大大下降。這要求域泛化研究需要同時關注多種不同形式的域偏移。
(2)增量式域泛化研究。模型部署后參數通常是固定不變的,但目標域數據的分布是不停變化著的,當數據的分布發生劇烈變化時模型可能會失效。因此,希望域泛化研究擁有增量學習的能力,能夠不斷地處理現實世界中連續的信息流,在吸收新知識的同時保留甚至整合、優化舊知識的能力,避免災難性遺忘。
(3)探索新的數據合成方式。數據增廣的方式在域泛化研究領域是最直接且有效的方式,豐富源域數據的多樣性對于域泛化研究至關重要。然而有些應用收集數據是極其困難的,如醫學影像數據;同時,在某些任務中數據標注成本高昂,比如語義分割。數據合成方式提供了一種經濟可行的方式,目前已有一些合成數據的方法,但是面臨計算開銷大,多樣性有限等問題。因此,探索新的數據合成算法具有現實意義。
(4)半監督域泛化研究。當前域泛化研究默認源域數據都是有標注的,且受限于標注代價,數據集樣本數明顯少于監督學習中的設定。現實中獲取大量的未標注數據相對來說是更容易的,半監督的域泛化值得被研究。半監督學習中常用策略,如偽標簽生成、一致性正則對于域泛化研究是否依然奏效,半監督信息和監督信息對于模型優化來說是否可以當成不同的域進行處理。這些問題都需要被研究后才會有答案。
(5)聯邦域泛化研究。現有的域泛化研究需要在學習過程中訪問多源分布,然而出于數據隱私考慮,具有分布式數據源的聯邦范式給域泛化研究帶來了新的挑戰。在聯邦范式中,數據是分布存儲的,每個客戶端的學習都只能訪問本地數據,因此,當前的域泛化研究方法在聯邦范式下是不適用的。另外,局部優化將使模型傾向于自身的數據分布,難以推廣到新的目標域。因此,聯邦范式下的域泛化研究也可能成為未來的一個研究方向。
現實場景中數據的多變性和不可預知性對模型的域泛化能力提出巨大的挑戰,研究域泛化技術對于模型部署應用具有重要意義。本文梳理總結了近年來計算機視覺領域內的域泛化研究工作,對域泛化的任務定義、任務特點和研究思路做了詳細的概述。并遵循域泛化研究思路,將域泛化研究現有方法分成3大類,并闡述了每個類別下具有代表性的技術和典型算法。此外,介紹了目前域泛化技術在計算機視覺領域中的應用場景和公開數據集。最后,本文對域泛化領域值得進一步深入探索的方向進行了展望,指出了當前域泛化面臨的問題與挑戰。