Domain Adaptation and Graph Neural Networks
Domain Adaptation and Graph Neural Networks
Student : Wenxuan Zeng
School : University of Electronic Science and Technology of China
? Date : 2022.4.21 - 2022.4.23
文章目錄
- Domain Adaptation and Graph Neural Networks
- 1 Domain Adaptation
- 1.1 Background
- 1.2 Domain shift
- 1.3 Domain Adaptation
 
- 2 Domain Adaptation in Computer Vision
- 3 Domain Adaptation in Graph Neural Networks (Understanding of Four Important Papers)
- 3.1 DANE: Domain Adaptive Network Embedding (IJCAI '19)
- 3.2 GCAN: Graph Convolutional Adversarial Network for Unsupervised Domain Adaptation (CVPR '19)
- 3.3 Unsupervised Domain Adaptive Graph Convolutional Networks (WWW '20)
- 3.4 Adaptive Trajectory Prediction via Transferable GNN
- 3.5 Curriculum Graph Co-Teaching for Multi-Target Domain Adaptation (CVPR '21)
 
- 4 Conclusion
 
1 Domain Adaptation
1.1 Background
首先來考慮如下的場景:我們已經在training set上訓練好了模型,現在開始在testing set上進行測試。如果testing data和training data的來自于同分布的,那么預測結果好較好,而testing data與training data差距較大時,預測結果就會很差。如下圖所示,這種現象被稱作“Domain shift”,也就是說training data和testing data有不同的分布。
這種現象廣泛出現在機器學習領域,當大家興奮于機器學習所取得的驚人效果時,殊不知當模型部署到實際環境中時,結果的好壞卻是一個未知數。那么解決這個問題的方式就是Domain adaption,這也是Transfer learning的一種(將domain A上訓練的知識遷移到domain B上)。
1.2 Domain shift
主要存在3種不同形式的domain shift:一種是training data和testing data的分布不同,一種是輸出標簽分布不同,還有一種是數據和標簽的關系不同。
本次學習的主要內容是針對數據分布不同的domain shift,我們定義training data為source domain,testing data為target domain。
1.3 Domain Adaptation
做領域自適應時,需要考慮到target domain上擁有知識的情況。
① 當target domain上擁有大量的labeled data,那么就不用做domain adaptation了,因為我們可以直接在target domain上進行訓練。
② 當target domain上擁有少量labeled data,那么可以用source data訓練一個模型,然后在target data上做fine-tune。存在的問題是,容易出現over fitting(調小learning rate,調小epoch…)
③ 當target domain上擁有大量的unlabeled data,是現在最常見的情況。現在開始學習這種情況的解決方法。一種比較基礎的idea就是用一個feature extractor去提圖片的特征,雖然source data和target data是不同分布的,但是提出來的feature是同分布的,這樣做的好處就是能順利進行不同領域的適應。
那如何去設計這樣的feature extractor? 如下圖,通過feature extractor可以提取出圖片的深度表征(feature extractor可以人為地定義為3層4層5層…),我們要求source data和target data所得到的feature是分不出差距的(或者說是同分布的)。
現在考慮如何得到一個可以輸出同分布的feature extractor,這里可以采用domain adversarial training的技術來實現。在輸出feature的層之后街上一個domain classifier(二分類器)去判斷圖片的來源是source data還是target data,如果feature extractor生成的feature能順利騙過domain classifier,則說明實現了上述想法。
Domain-Adversarial Training of Neural Networks
簡化上圖:
這很容易被類比成GAN,把feature extractor看作是generator,domain classifier看作是discriminator。事實上,domain adversarial training這篇文字和GAN是同時期的作品(2015),有著異曲同工之妙。
試想一下,feature extractor會不會太強大了,因為如果它全部輸出zero vector,也能騙過domain classifier!會不會出現這樣的情況?其實不會,因為label predictor是需要這個feature去做預測的。
但是這樣做也未必很好,domain classifier要最小化二分類的loss,而feature extractor要騙過domain classifier就需要最大化這個loss,所以這樣做并不是最好的。
剛剛學習到了讓target分布盡可能接近于source,也會存在下面這兩種情況,我們期望出現的是第二種情況。一種比較直覺的想法就是讓得到的feature能盡可能遠離分界線(decision boundariy)。
一種做法是將target中的unlabeled data輸入feature extractor也輸入label predictor中,最終得到預測結果。如果預測的分布是非常集中的,那就代表small entropy,反之則是large entropy。
當然還有更多關于decision boundary的工作:
-  A dirt-t approach to unsupervised domain adaptation 
-  Maximum Classifier Discrepancy for Unsupervised Domain Adaptation 
再思考一個問題,如果說source domain中的類別和target domain中的類別不完全相同,上面的方法就出現了問題。比如,target domain中出現了source domain中沒有出現過的lion動物類別,我們仍然讓target中的feature和source符合同分布,那不就是把lion硬說成了其他動物嗎?顯然是不合理的!那么在CVPR2019上就出現了這樣一篇文章:Universal Domain Adaptation
④ 當target domain上擁有少量unlabeled data,也是有辦法解決的,參考:Test-Time Training with Self-Supervision for Generalization under Distribution Shifts
⑤ 當target domain是完全未知的,這就不叫domain adaptation任務了,而叫做domain generalization。目標就是希望模型能夠在未知的場景中具有很好的泛化性。參考:Domain Generalization with Adversarial Feature Learning。還有一種情況,是source domain上只有少量數據,而需要在多種不同的target domain上進行應用,參考:Learning to Learn Single Domain Generalization
2 Domain Adaptation in Computer Vision
在計算機視覺領域,領域自適應被廣泛應用,比如自動駕駛。數據集上的圖片可能與真實情況存在較大的差距,如何做領域自適應,是非常重要的一環。比如下圖中,實際場景中可能會是大霧、陰雨、大雪等天氣,那在這樣的環境中,能否很好地實現目標檢測、語義分割、物體分類等任務呢?
下面是幾種實現領域自適應的方式:
-  數據生成與連續域 
-  擴充數據集可以解決這樣的問題,但是要收集大量的各種環境的數據(以及打標簽)會耗費很高的成本,通常是不可行的。所以通常采用的方法是對各種condition的數據進行仿真,生成大量的數據以擴充數據集。 通過深度估計去生成不同能見度的foggy場景:Curriculum Model Adaptation with Synthetic and Real Data for Semantic Foggy Scene Understanding 
通過統計模型(如CycleGAN)去生成nighttime場景:Map-Guided Curriculum Domain Adaptation and Uncertainty-Aware Evaluation for Semantic Nighttime Image Segmentation
在這篇論文中也用域流實現連續域的遷移過程:
建立起生成圖像和原圖之間的map關系:
如果搜集不到數據,那就用生成的方式:DLOW: Domain Flow and Applications
-  Test-time的領域自適應,讓模型在實際場景中自己學習進行適應 
-  多任務學習的領域自適應 
用自監督學習的深度估計來輔助語義分割任務:Three Ways To Improve Semantic Segmentation With Self-Supervised Depth Estimation。語義分割的標簽標注成本非常高,所以采用自監督的深度估計任務來輔助語義分割。
Domain Adaptive Semantic Segmentation with Self-Supervised Depth Estimation 這篇文章就通過自監督的深度估計來輔助語義分割任務的完成。source domain中的task之間的相關性是可以遷移到target domain中的,source domain和target domain中對于深度估計的難度是可以遷移到語義分析中。
對于存在多種混合的target domain的情況,也有相應的文章:Cluster, Split, Fuse, and Update: Meta-Learning for Open Compound Domain Adaptive Semantic Segmentation
-  多傳感器融合 這里不展開講,偏device方面。 
3 Domain Adaptation in Graph Neural Networks (Understanding of Four Important Papers)
3.1 DANE: Domain Adaptive Network Embedding (IJCAI '19)
鏈接:DANE: Domain Adaptive Network Embedding
-  特點: Embedding領域自適應、圖神經網絡、對抗學習 
-  動機: 以前的工作只考慮為單一的網絡學習embedding,無法遷移到多個網絡上。所以作者想設計一種embedding算法,支持下游任務遷移到不同的網絡上進行訓練,這就是domain adaptation。 
-  貢獻: ① 最早提出cross multiple graph networks上的domain adaptation;② 兩種對齊方式:特征空間對齊——結構上相似的節點具有相似的表示向量,即使它們來自不同的網絡,方法是節點表示由兩個參數共享的網絡得到;分布對齊——方法是節點表示分布由對抗學習進行正則化;③ 構造了兩個數據集。 
-  方法: 分為如下兩個部分: -  共享權重的GCN網絡 采用兩個相同的GCN網絡,分別得到embedding: 
 為了學習到源域和目標域都兼容的參數,采用多任務loss function來保存兩個網絡的性質: 
-  對抗學習正則化 和GAN思想類似,訓練一個discriminator來判別embedding來自哪個網絡(源/目標域),訓練一個權重共享的GCN作為generator。對于discriminator有如下的loss: 為實現雙向的領域自適應,設計了如下的對抗訓練loss: 最后結合兩個步驟中的loss: 
 
-  
3.2 GCAN: Graph Convolutional Adversarial Network for Unsupervised Domain Adaptation (CVPR '19)
鏈接:GCAN: Graph Convolutional Adversarial Network for Unsupervised Domain Adaptation
-  特點: 圖神經網絡、無監督學習、領域自適應、對抗網絡 
-  動機: 作者認為領域自適應中要搭建源域和目的域之間的橋梁,有三種最重要的信息:數據結構(反映了數據集的固有屬性,包括邊際或條件數據分布、數據統計信息、幾何數據結構等)、領域標簽(用于對抗性域自適應方法,并可以幫助訓練一個域分類器來建模源域和目標域的全局分布)、類別標簽(特別是目標偽標簽,通常采用強制語義對齊,這可以保證來自具有相同類標簽的不同域的樣本將被映射到特征空間附近)。 
-  貢獻: ① 第一次在無監督領域自適應中聯合建模三種信息(數據結構、領域標簽、類別標簽);② 為了更魯棒地匹配源域和目的域的分布,提出三種對齊機制(結構感知對齊、領域對齊、類中心對齊)有效地學習領域不變表示和語義表示,以減少領域自適應的領域差異。 
-  方法: -  優化的目標函數 
-  領域對齊 加入了一個領域分類器(提取的feature來自源域/目的域二分類),采用領域對抗相似度作為損失函數: Feature extractor用于欺騙分類器,分類器用于判別來源,以對抗方式幫助訓練一個域分類器來建模源域和目標域的全局分布。 
-  結構感知對齊 領域對齊強制執行了全局域信息的對齊,但是忽略了小樣本的結構信息。首先,用數據結構分析器 (DSA) 網絡,為一個mini-batch樣本生成結構分數,然后,利用得到的結構分數和學習到的樣本CNN特征來構造密集連接的實例圖。之后,GCN對實例圖進行操作,以學習使用數據結構信息編碼的GCN特征。下面學習如何構建密集連接示例圖: 圖的信息表示為CNN提取的feature: 為了構建鄰接矩陣,將這個mini-batch樣本喂入數據結構分析器 (DSA) 網絡中,生成結構分數,有了這個結構分數就可以構造鄰接矩陣: 用Triplet loss來限制結構分數的生成: 
-  類別標簽對齊 特征具有領域不變性(Domain Invariance)與結構一致性(Structure Consistency)并不意味著其具有判別性(Discriminability),所以提出類別標簽中心對齊。 首先,用目標分類器來分配偽標簽,得到目標域上的偽標簽數據。然后,被標記的樣本和偽標記的樣本一起用于計算每個類的質心。 
 
-  
3.3 Unsupervised Domain Adaptive Graph Convolutional Networks (WWW '20)
鏈接:Unsupervised Domain Adaptive Graph Convolutional Networks
-  特點: 無監督學習、圖神經網絡、領域自適應 
-  動機: 大多數GCN只能在單個域(圖)中工作,無法將知識從其他域(圖)轉移,這是由于圖表示學習和圖結構上的域適應方面的挑戰。 
-  貢獻: ① 提出了一種新的無監督圖域自適應問題,并提出了一種雙重圖卷積網絡算法;② 將局部和全局一致性與注意機制相結合,以學習跨網絡的有效節點embedding;③ 利用具有不同損失函數的源信息和目標信息,可以有效地學習域不變表示和語義表示,從而減少跨域節點分類中的域差異。 
-  **方法: ** 為了實現有效的圖表示學習,首先開發了一個雙重圖卷積網絡組件,它聯合利用局部和全局一致性進行特征聚合。進一步使用注意機制為不同圖中的每個節點生成統一的表示。為了便于圖之間的知識轉移,提出了一個領域自適應學習模塊來優化三種不同的損失函數(源分類器loss、領域分類器loss、目標分類器loss),因此,模型可以分別區分源域中的類標簽、不同域中的樣本、目標域中的類標簽。 -  節點表示學習 用雙重圖卷積網絡捕獲每個圖的局部和全局一致性關系。對于局部一致性,直接將鄰接矩陣A輸入到GCN;對于全局一致性,提出另一種基于隨機游走的卷積方法。 局部一致性:簡單的GCN,輸入A和X 全局一致性:引入PPMI(點級互信息矩陣)的卷積方法來編碼全局信息。首先通過隨機游走計算頻率矩陣F(隨機游走能計算節點間的語義相似性) 可以看到,全局和局部一致性的區別在在于輸入GCN的“鄰接矩陣”在不同的。 
-  圖間注意力 我們需要聚合來自不同圖的嵌入來生成一個統一的表示,分別從局部和全局GCN層中自動確定源圖表示和目標圖表示之間的權重。 
-  跨域節點分類中的領域自適應學習 訓練了三個分類器:① 源分類器;② 域分類器;③ 目標分類器 總體訓練目標: 源分類器loss就是交叉熵損失函數: 域分類器和之前的工作一樣,還是用了對抗學習的思想,既要讓網絡去判別開兩個來源,也要讓兩個來源生成的feature相似,讓分類器難以判斷出來。 目標分類損失函數用entropy loss(cross-entropy是不行的,因為target domain無標簽): 
 
-  
3.4 Adaptive Trajectory Prediction via Transferable GNN
鏈接:Adaptive Trajectory Prediction via Transferable GNN
-  特點: 圖神經網絡、行人軌跡預測、領域自適應 
-  動機: 現有工作大多沒考慮訓練集和測試集的運動遵循相同的模式,忽略了潛在的分布差異。所以提出領域對齊的框架實現領域自適應。 
-  貢獻: ① 深入研究不同軌跡域的域遷移問題,并提出統一的T-GNN方法,用于聯合預測未來軌跡和自適應學習域不變知識;② 提出了一個專門設計的圖神經網絡來提取全面的時空特征表示,還開發了一個有效的基于注意力的自適應知識學習模塊,以探索細粒度的個體水平的可轉移特征表示;③ 引入了一種全新的行人軌跡預測問題設定,在這種域遷移設置下為行人軌跡預測建立了強基線。 
-  方法: 提出了一種領域不變的GNN來探索領域特定知識減少的結構運動知識,此外還提出了一個基于注意力的自適應知識學習模塊來探索用于知識轉移的細粒度個體級特征表示。 -  時空特征表示 簡單來說,就是三層GCN網絡: 
-  基于注意力的自適應學習 這一部分的目的是解決源域和目標域之間的差距。雖然特征向量保留了一個行人的時空信息,但我們不能確定該行人的特征向量在一個域中的代表性。因此,引入了一個注意模塊來學習特征向量與軌跡域之間的相對相關性。 
-  時間預測模塊 簡單來說,用的時間卷積TCN做時間維度的預測: 
-  訓練目標 對于軌跡的預測,用負對數似然估計: 最終的訓練目標綜合了前面的對齊損失和預測損失: 
 
-  
3.5 Curriculum Graph Co-Teaching for Multi-Target Domain Adaptation (CVPR '21)
-  特點: 單源域-多目標源域、課程學習、偽標簽生成 
-  動機: 解決多領域遷移的問題。 
-  貢獻: ① 提出了MTDA的課程圖協同教學 (CGCT),它利用與雙分類器頭的協同教學策略、課程學習方式,來學習跨多個目標領域的更魯棒的表示;② 為了更好地利用領域標簽,提出了一種領域感知課程學習 (DCL)策略,使特征對齊過程更平滑 
-  方法: 兩個角度減輕多領域遷移的問題,特征聚合和課程學習。提出課程圖協同學習,用的雙分類器頭,其中一個是GCN聚合了來自于跨域的類似樣本的特征。防止分類器對其自身的噪聲偽標簽進行過擬合。防止分類器對其自身的噪聲偽標簽進行過擬合,開發一種與雙分類器頭的協同教學策略,并輔以課程學習,以獲得更可靠的偽標簽。另外,當領域標簽可用時,提出領域感知課程學習(DCL),這是一種順序適應策略,首先適應更容易的目標領域,然后是更難的目標領域。 -  (a) Curriculum Graph Co-Teaching STEP 1:領域自適應 用fedgef_{edge}fedge?來生成鄰接矩陣,其監督信息是MLP給的,MLP對節點之間的邊進行標注(兩個節點的標簽一致,則它們之間的相似度為1,否則為0): 則生成鄰接矩陣的loss: GCN和MLP在源域上的loss: 最終優化的目標為: STEP 2:偽標簽標注 用GCN對無標簽數據進行標注,小于某個閾值則不參與訓練。為什么選GCN的輸出進行標注?作者說考慮到GCN進行特征的聚合,相比MLP更具有魯棒性。然后數據變為: 
-  (b) Domain-aware Curriculum Learning 作者考慮了目標域帶標簽的情形。不同目標域與源領域的數據分布的shift程度是不一樣的,因此自適應的難度不一樣。這里采用了Easy-to-Hard Domain Selection (EHDS) 策略,先適應easy的domain,再適應hard的領域,原因就是模型適應shift較小的領域明顯比shift較大的領域容易。 如何衡量哪個domain更容易?作者用信息熵衡量了這個指標: STEP 1:領域選擇 根據上述信息熵選擇相對簡單的領域: STEP 2:領域自適應 與Curriculum Graph Co-Teaching相同,不過目標域的數據采用選擇的域數據。 STEP 3:偽標簽標記 與Curriculum Graph Co-Teaching相同,不過目標域的數據采用選擇的域數據。 
 
-  
4 Conclusion
- 在前面這三篇工作中,第一篇在學習可遷移的Embedding representation方法,第二篇、第三篇和第四篇(行人軌跡預測)、第五篇(多領域自適應)都是將模型自適應地遷移到不同的domain上。除此之外,GNN在Domain adaptation領域還有更多的應用,比如:Graph-Relational Domain Adaptation (ICLR ‘22’) 認為不同域之間的關系并不是等同的,他們之間存在拓撲關系,所以從圖的角度去思考域之間的relation。Unsupervised Multi-Source Domain Adaptation for Person Re-Identifification (CVPR '21) 這篇文章將多源領域自適應引進行人重識別問題。
- 我認為Domain adaptation是一個非常有前景的方向,因為在大多數實際場景中,數據都是和訓練時有差距的,甚至是完全未知的。那么,如何讓模型在實際情景中發揮最大的價值,就是領域自適應需要不斷解決的問題。
- AutoEval也是在解決測試場景數據未知的問題,但是從另一個切入點去考慮問題,用“估分”的手段去評估模型在未知環境的效果,屬于一種“對自身學習能力的評價”的學習范式。
總結
以上是生活随笔為你收集整理的Domain Adaptation and Graph Neural Networks的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 路由控制配置route-policy命令
- 下一篇: java 实心圆_java JFrame
