首頁>技術>

在領域遷移(Domain Adaptation)問題上,我們往往缺少對於無標註的目標領域資料(unlabled target-domain data)的有效約束。在我們的兩篇文章中分別從不同角度,嘗試利用了輔助分類器和主分類器的差異來正則模型的學習傳統上,輔助分類器只是用來防止梯度消失問題,但我們考慮到,輔助分類器本質上提供了一個不同的預測,可以用來建模當前模型對於輸入資料的不確定性。我們提出了兩種方法來利用這種不確定性,都十分簡單。現有方法不需要引入額外的引數,就能在幾個benchmark上,如 GTA5->Cityscapes 等資料集上獲得進一步的提升。

鄭哲東,悉尼科技大學四年級博士生,研究方向為計算機視覺和智慧城市。2016年本科畢業於復旦大學,2017年~至今於悉尼科技大學直博(師從楊易教授)。博士四年中以第一作者發表 CCF-A類會議和ACM/IEEE期刊 9篇。Google Scholar引用次數3100+,H指數13,單篇一作論文最高被引970+次,在 Github程式碼開源網站上得到5200+stars。在2020年CVPR 智慧城市挑戰(AI City Challenge)車輛重識別賽道獲得冠軍

一、背景

本文的領域遷移的任務主要是將遊戲中獲取的有標籤的圖片應用於現實世界。具體來說就是從遊戲俠盜獵車5(GTA-5)中獲得資料,其往往會有ground truth,其表明圖中哪一部分是車輛,哪一部分是行人,哪一部分是車燈等等。對於遊戲資料而言這是比較容易獲取的,同時也會獲取現實世界中收集到的資料,這些資料往往沒有標籤。所以Domain Adaptation解決問題是如何利用遊戲的資料,去學一些knowledge,並且應用在實際的生活中,即將從遊戲中學到的知識遷移到沒有標註的真實場景下。然後其中最主要的核心是segmentation,語義分割。圖中的ground truth是pixel level標註的。對於語義分割來說這個標註也是非常困難的,對於真實世界資料不可能完全由人工進行標註。

因此,對於Domain Adaptation來說,一方面獲得了大量的遊戲採集資料,另一方面獲得了加州一個高速公路中的無標籤的真實資料。理想情況是經過這兩種資料的訓練,當測試時可以直接進行公路測試。所以問題的本質更趨向於半監督學習問題,因為訓練集中包含了有標籤的遊戲資料和無標籤的真實資料。

對於測試集,其更接近於inductive learning,即測試集資料不會出現在訓練集中。但是在測試集中同一個環境下采集的資料還會出現在訓練集中。因此在接下來第一篇paper中,處理問題的角度主要從半監督學習展開。

二、Unsupervised Scene Adaptation with Memory Regularization in vivo

這篇文章名字叫Unsupervised Scene Adaptation with Memory Regularization in vivo。In vivo這個詞,意味著在網路內部去做進行操作。

這篇paper實現的動機主要來源於,因為訓練時的遊戲資料包含有標籤,即Source domain data,也就是GTA-5 data,它往往能保持主分類器和副分類器預測出來的結果是一樣的。副分類器來源於語義分割網路,它往往會用輔助分類器來輔助梯度的傳播。但是對於加州資料,即目標環境資料,它預測結果比較不一致,因為模型中沒有一個強力的label去監督。

從很多傳統的半監督學習的方法來看,有很多方法處理訓練一致性的問題,包括像MA-DNN採用額外的memory,其中所存的是目標的prototype,即這些環境或者物體等類別的原型,在訓練的時候,透過將類向原型靠近。

進一步像B圖,Mean teacher或者Mutual Learning,它不需要額外的module去存。所以在該型別的方法中往往是有兩個模型,然後進行互相學習。其中一個模型可以當做一個訓練模型,另外一個模型當做一個memory 模型。這個memory模型每次都會提供一個檢測目標應該是什麼樣的答案,然後讓一個student模型去學習。

而在C圖中,本文的in vivo就體現在只需要讓主分類器和副分類器互相學習,而不需要兩個模型,也不需要額外的memory module去預存prototype,而是在訓練過程中自我學習,就可以達到比較好的效果。

可能會有人有疑問,為什麼需要一個memory?為什麼需要類的原型?本質上是為了提供一個teacher model,因為實際資料沒有標籤,所以可以透過一個模型先預測一個標籤,雖然結果不一定正確,但是它可以提供一個正確的方向,去讓student模型學得更好。此外in vivo的方法可以節省更多的計算消耗,而對於up to data,因為只需要經過一個模型,所以不需要inference兩次,就可以得到比較好的結果。同時實驗結果也顯示,輔助分類器和主分類器並不會產生相互的干擾,因為一般來說主分類器得到結果會更高一點,輔助分類器因為它接的層比較淺,所以它的結果會比較低。但是結果顯示主分類器並沒有因為副分類器的效果而受到很大的影響。

本文的方法包含有兩個階段。第一階段包含label,對於這類資料,直接使用其label去supervise。第二階段,資料不包含label,使用上面提到的memory機制,在上圖中表現在紅框中的Lmr,即主分類器與副分類器之間有相對熵,而訓練的目的是使得相對熵儘可能的小。

主要分析一下第二階段,其訓練過程使用了第一階段的模型,生成一個pseudo labor用於監督學習。使用第二階段有兩個原因:

第一個原因是模型可以只在target domain上學習,並且模型包含有Batch Normalization,結果更符合target domain。第二個原因是在第二階段學習的時候,從龍明盛老師或者說其他老師的minimize entropy的方法可以知道,其實pseudo label也可以提供一些資訊,相當於原來模型預測0.9,然後將把0.9 push到1的這個過程當中,其含有一些 confidence的資訊,這個過程會被第二階段學習到。

上圖的表格證實了兩個分類器互相學習的時候,它們不會互相扯後腿,而是互相幫助。在左圖中,之前的輔助分類器只有40,但互相學習以後可以達到44。主分類器之前只有43,但互相學習以後有45,然後把主副分類器結合以後,可以達到更高的結果,45.46。

右圖中,研究了兩個階段的loss,第一階段可以達到45.46,第二階段可以達到48。即採用了pseudo label可以進一步獲得提升。而且相比於State of the art,也有一個比較明顯的提升。

三、Rectifying Pseudo Label Learning via Uncertainty Estimation for Domain Adaptive Semantic Segmentation

第二篇文章與第一篇文章的處理角度有著不同。這篇文章主要討論,在第二階段生成的偽標籤並不是非常準確的。從上圖中可以看出,生成出來的pseudo label和ground truth還是有一些差異的,雖然它大部分比如說路面預測是對的,但是很多細節是丟失的,同時很多地方給的是一個錯誤的標籤。

有些比較直接的方法是設一個threshold,比如說預測出來這個標籤的置信度不是很高,那模型就不會去學習。但是實驗表明,如果人為設計一個threshold,對網路學習並沒有很好的提升,因為threshold往往會把一些比較少的類別,比如說人出現比例比較小,特別語意分割中,如果一個物體比較小的話,它分到的loss就比較小,那很容易就被大的類別,比如說像路,天空所覆蓋。所以threshold如果設的比較高,很多資訊都被過濾掉了,最後得到結果會有誤差。如果threshold設的比較低,所有的label都進行了學習,那模型中會包含noise label。自然而然地就會提出產生一個問題,能不能學一個自動的threshold,對於不同的地方或者不同置信度,會有一個自動的threshold。

這幾篇paper,包括ICCV 2019的一篇做Re-identification的Paper,周志華老師的深度學習中,特別是貝葉斯網路部分也提到了如何去學習不確定性,然後還有ICML的workshop,以及另外一篇paper,都包含有然後去學習不確定性的內容。

在這篇文章中依然使用了主分類器和副分類器,因為實驗結果表明主分類器和副分類器預測結果不一樣的地方,往往是預測錯誤的地方。在上圖的C中就是主分類器和副分類器預測結果有意見分歧的地方。而預測出來label和ground truth label,這之間的差距參考影象F,可以發現圖C和圖F有很高的一致性或者說是相關性,即主分類器和副分類器預測出來結果不一樣的時候,這些地方往往是存在noise的地方,也是 label不是非常確定的地方。一個很直接想法,就是直接用主分類器和副分類器的相對熵作為不確定性。

不確定性一個最直接的用法是融入pseudo label learning時的一個公式。這個公式的第一項表示當主分類器和副分類器預測結果不一樣的時候,它們之間的相對熵差異比較大,這是pseudo label就不會被重點學習。這裡採用了1/Var,當Var非常小的時候,即主分類器和副分類器預測得非常接近,因為相對熵divergence經過了正則化處理,所以其最大值為一。與傳統的pseudo label learning一樣,當不確定性很小的時候,模型正常學習。當不確定性較大的時候,儘量減小bias的學習。這一部分放到第二項中,即不確定性的部分去學習。這就像是一個trade off,自動閾值去決定哪些label去學,哪些pseudo labor不去學。

這篇paper中也做了很多的operating study。關於這個pseudo label質量,如果pseudo label初始較差,有42,那經過模型學習後比較明顯的提升,從46.8~47.4。如果pseudo label相對來說好一點,有45.5,那它的提升就會從上一篇paper的48.3提升到50.3。

此外還在模型中融入了一下dropout,去更好的預測不確定性。用dropout的話,主分類器和副分類器之間差異有時候會更大,然後更能表現它的不確定性。

上圖是結論的視覺化結果,可以看到預測後的主分類器和副分類器的意見有矛盾時,往往是預測錯誤點。

四、總結

最後是一些經驗總結:

有時候old school的理論,也可以輔助我們做很多事情。包括何凱明提出的contrastive learning。他的idea就很像semisupervised learning裡面很多方法,比如ladder network。所以我覺得傳統的理論,都可以幫助我們很好的去理解問題,同時讓我們去想這個問題的時候會有更多理論的support。

•另外一方面是大家現在就是做深度學習,會有一個同質化的問題,就是結果可能也不是那麼重要。所以如何就把我們人的先驗知識去融入到神經網路裡面,或者說像memory module之類的一些比較常見的先驗知識融入到網路裡面,我覺得這是我們值得去思考的一個問題。

相關資料

論文連結:

https://arxiv.org/abs/1912.11164

https://arxiv.org/abs/2003.03773

程式碼連結:

https://github.com/layumi/Seg-Uncertainty

8
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 自動建立SQLServer資料庫相關操作