[論文筆記] DAFormer: Improving Network Architectures and Training Strategies for Domain-Adaptive Semantic Segmentation

YuKai Chen
May 4, 2023

論文資訊

  • 投稿於:CVPR 2022
  • 論文連結:點我
  • GitHub連結:點我

前言

今天要介紹的論文是DAFormer,個人認為這是一篇Unsupervised Domain Adaptation (UDA)領域很重要的論文。在這篇論文之前,幾乎所有論文都是採用卷積神經網路,而這篇論文首次在UDA領域中使用Transformer架構。

DAFormer發表於CVPR 2022,作者為Lukas Hoyer。近期有很多篇Unsupervised Domain Adaptation (UDA)領域的SOTA都是他發的,而且都有提供可以還原論文數據的開源程式碼。個人認為他的論文可信度很高,非常推薦大家閱讀他的論文!

其實在閱讀這篇論文之前,我也曾經想過「反正Transformer在很多情況下本來就比卷積神經網路厲害,那這樣單純在UDA領域中引入Transformer增加mIoU真的有什麼好說嘴的嗎?」。但看完這篇論文後,才發現原來我錯了,他想的其實比我本來還多,並且深深覺得作者很厲害。至於我覺得厲害的點在哪裡,就讓我們慢慢往下看吧~

論文方法

本篇論文主要有以下幾點貢獻,本章節將會依序介紹各個部分:

  1. 將Transformer架構引入UDA方法中
  2. Rare Class Sampling (RCS)
  3. Thing-Class ImageNet Feature Distance (FD)

1. 為什麼Transformer適合用於UDA中?

雖然Transformer跟Convolution在運作時都會去計算Weighted-sum,但他們對於已訓練模型權重的方式還是不太一樣:

  • Convolution的權重在訓練結束時就固定了。
  • Transformer的Self-attention機制卻可以在Inference時,動態地依據當下的輸入資料的相似性來產生對應的Affinity-map,再依據得到的Affinity-map做出預測。

基於上述原因,比起Convolution,Transformer能產生更General的預測結果,減少Domain-shift造成的影響。

🤓:另外,我自己覺得有可能是不同Domain的影像中,各個類別物體以全域的角度來看其實很像,只是細節上可能會有所不同。因此採用全域特徵的Transformer可以在UDA的任務中取得較好的預測結果!

2. Rare Class Sampling (RCS)

作者發現使用他們提出來的Transformer架構可以有效地提升困難類別的精準度,但其實這些結果在每次的訓練中都可能有很大的不同,精准度有時候很低(如圖一的藍色曲線)。後來經過實驗發現,如果比較晚才開始訓練困難類別的話,在訓練結束時也容易對應到較低的精準度。作者猜測這有可能是因為不同的Random seed下,我們第一次採樣到困難類別樣本的時間會有很大的變化若太晚採樣到這些樣本的話,會導致模型在一開始已經專注於學習簡單樣本,此時權重已經被更新成適合預測簡單類別樣本,因此很難再讓他好好地繼續學習困難類別樣本。

🤓 :之前剛開始學DL時,我有做過一個實驗:訓練一個AutoEncoder,讓模型想辦法還原輸入的樣子,之後再使用這個模型作為預訓練權重來訓練語意式分割模型。結果發現,在訓練的一開始,模型會花很多時間來從AutoEncoder的任務變成語意式分割的任務,效果不如直接隨機初始化權重好。

從這個實驗也可以了解到:當模型已經被學習成用於某種任務,此時如果兩種任務差別較大的話,此權重就會很難被更新並應用於其他任務。這或許可以說明作者在這段發現的問題~

(現在聽起來可能有點笨,相差那麼多的任務的權重當然差很多,那時候竟然想拿它來當Pretrained model😂)

為了解決此問題,作者提出了RCS,增加採樣到困難樣本的機率。首先論文中使用式子(6)定義各個類別樣本出現的頻率,之後使用式子(7)的Temperature softmax,讓出現頻率較低的類別對應到較高的抽樣機率P(c)。

下圖為其實驗結果。我們可以發現加入RCS後確實可以有效提升困難類別的IoU,而且其結果也穩定許多!

圖一、RCS實驗結果

3. Thing-Class ImageNet Feature Distance (FD)

作者發現使用訓練於ImageNet-1k的Pretrain weight來初始化GTA5 ➔ Cityscapes的訓練,Train、Bus兩個類別在一開始還能在目標域上得到還可以的結果。但隨著訓練的時間增加,這些類別的準確度反而會下降。他猜測這可能是因為模型已經Overfit在來源域的Train、Bus,若兩個Domain的這些類別長得不像,則訓練反而會導致模型在目標域無法對這些類別做出良好的預測。

為了改善以上問題,作者提出了FD,讓模型在訓練的過程中仍能提取出與ImageNet pretrained weight相似的特徵,避免發生Overfitting。但因為ImageNet-1k只包含Thing classes,論文中的FD只會套用在這些類別上。

講解完概念,接下來解釋式子!

首先使用式子(8)來計算「當前從模型提取出的特徵」與「使用ImageNet pretrained weight提取出的特徵」的L2 distance。並在式子(9)定義FD的損失函數,當我們最小化這個函數,即維持了模型與ImageNet pretrained weight的相似性。而式子(9)中的M定義於式子(10)中,他是一個Binary mask,用來表示樣本是否屬於Thing class(等於1代表樣本對應到Thing class)。有了這個Mask後,就可以將FD限定於Thing class。

🤓:式子 (10)中的y是一個解析度跟Feature map相同的Label。由於Feature map的解析度會比較小,一個點會對應到輸入照片的一個區塊,因此他會區域性地看一整個區塊中Thing classes所佔的比例,如果比例高於一個閾值,則式子中的M才會等於1。

下圖為論文的實驗結果,可以發現如果沒有FD,Train的IoU確實會隨著訓練而下降。相較之下,加入FD後就可以讓這些類別的IoU隨著訓練而增加。

比較DAFormer與過去SOTA方法

論文中使用了GTA5 ➔ Cityscapes與Synthia ➔ Cityscapes兩個Benchmark來比較DAFormer與過去SOTA方法的mIoU。透過下表可以發現,在兩個任務中都有很大的提升,尤其是GTA5 ➔ Cityscapes中的Train直接從16.0提升到65.1!

結語

今天的介紹就到這邊啦,希望可以幫助到大家,如果有幫到你的話也可以幫我點一下喜歡喔!

(內文出自於自己的理解,如果有問題的話歡迎大家一起討論~)

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

YuKai Chen
YuKai Chen

Written by YuKai Chen

Specialize in 𝗗𝗲𝗲𝗽 𝗟𝗲𝗮𝗿𝗻𝗶𝗻𝗴 and 𝗖𝗼𝗺𝗽𝘂𝘁𝗲𝗿 𝗩𝗶𝘀𝗶𝗼𝗻. Welcome to connect with me on LinkedIn: https://www.linkedin.com/in/yukai8ntust/

Responses (1)

Write a response