輕讀論文(一): CyCADA: Cycle-Consistence Adversarial Domain Adaptation

LUFOR129
7 min readAug 31, 2020

最近暑假的時候每周會看一篇論文,最近也不知道要寫些什麼,所以就來寫一些暑假看過的有趣論文吧!

我只是菜雞,不能保證寫下的東西完全正確,最好還是親自閱讀最為準確

論文連結: https://arxiv.org/pdf/1711.03213.pdf

一、Domain Adaptation 難點

假如我今天有了兩個不同domain的資料以source (s) 與 target (t) domain 為例如下圖:

training data & Testing data in different domain

今天提供了source data (Xs) 與 source Label (Ys) ; target data (Xt) 與 no label。我們的目標是找到function Target (ft) 能夠正確分類(Xt)。當我們有了source data 與對應 source label時我們可以很輕易的使用CrossEntropy 來訓練出function Source (fs) 來進行分類的動作。

CrossEntropy loss

然而當我們將 fs直接用於Xt的分類時,縱使他們可能擁有一樣是K-way classification (分類項目相同),直接硬分類效果一定是差的,因為兩個資料群在不同domain上,我們希望能夠透過Xs的資料將Xt的資料分類好,也就是找出一個ft。

二、 GAN 應用與難點

有一個直接想法是,假如兩個資料群集都是k-way classification,那麼我們將Xs的資料利用GAN風格轉換(domain transfer)成Xt的資料再利用已知的Ys配對如此一來就能成功訓練出來ft了,結構與公式如下。

GAN formula

然而這個做法忽略一件事,假如Gs->t真的訓練的很好,其Dt也只能保證Gs->t(Xs)他符合target domain,並不能保證轉換完成還保有Xs的語意,從而無法確定對應Ys 的label是否標示正確。

為了確保source data在轉換過程中保留內容,研究團隊使用了Cycle-GAN技術,也就是Xs 轉換成Xt後再次輸入進Gt->s轉換成Xs’,並希望Xs、Xs’ 能夠越接近越好。

其中衡量Xs與Xs’ 的關係是L1 reconstruction error

如此一來就能夠確保二次轉換過程中語意(Semantic)的保留,然而這衍生出另一個問題就是Cycle-GAN會隱藏資訊。透過cycle consistence,我們可以確保圖片在二次轉換後能夠維持原先的圖片資訊,但在第一次轉換過程中會出現GAN將資訊隱藏在畫面中待第二次傳換後顯現。

如下圖,Google 地球轉Google Map,在Google Map中理應會出現很多內容丟失,但在二次轉換後卻能正確的被Gt->s腦補出來。同理出現在街景門牌數字轉為MNIST時,數字2第一次轉換成9但二次轉換後又換回原本的2了。

為了避免GAN的欺騙,我們要設立一個語意限制(Semantic consistence),原始圖片應該與轉換後的圖片要有相同的內容/語意(Semantic)。怎麼做呢? 現在已知我們擁有了Xs與Ys那麼應該可以很輕易的訓練出對於source的分類器fs。我們先pretrain 好fs,分類結果可以寫成一個公式。

也就是取出softmax機率最大的那一個

我們將fs當作是判定語意(Semantic)的工具,將Cycle-GAN的input Xs 、output Xt ; input Xt、output Xs 都丟進去p(f,x)做語意上的判斷,可以得到如下公式,也就是我們說的Semantic consistence:

你可能會說: 诶?文章第一段才說fs 用在domain T的分類結果應該會很爛才對啊? 沒錯,會很爛。但是我們現在是做語意上的同步,所以當fs在Xt分類錯誤時,domain transfer後的Xs應該也要同樣非類錯誤並錯在同一個類別。這也是我們為何使用argmax而非單純只使用Ys。假如fs真的分類錯誤了,還會有cycle-consistence 幫忙糾正。成功後架構就如下圖:

如此就能確保source、target domain即使轉換後依舊能保證原來的語意(Semantic)。但是這還沒結束,我們的目的是要找到ft。

三、Domain Adaptation

domain adaption包含兩大重點:

  1. pixel level: source轉換成target domain的圖片pixel分布狀況應該和target domain的pixel分布狀況相近
  2. feature level: source轉換成target domain的圖片彼此轉換成feature後在feature 空間應該要是接近的

CyCADA針對這兩個都有做出了對應方式。現在我們的Xs經過Gs->t後可以進行風格轉換並保留原始語意後,其實就可以將Gs->t(Xs)與Ys訓練出ft了。但是為了滿足上面兩大重點,將架構作出更多改變:

Gs->t(Xs)與Ys訓練出ft,其實就是走上圖紫色路線。Discriminator Dt恰好可以當作pixel level 風格相似的判斷器(綠色路線)。而feature level 可以將ft的中間output取出並輸入進去Gs->t(Xs)與Xt來判斷在feature層面兩者風格是否相近。另外上圖是比較進階的應用,看不懂可以看下圖:

以HVSN轉MNIST為例

訓練好的彩色圖片經過Gs->t後可以變成MNIST風格並保留內容。綠色路徑可以確保在pixel level上轉換風格相近,進行分類ft(紫色路徑)過程中,我們可以把中間output (500 dim)拿出並比較 Gs->t(Xs)與Xt 在feature level層面是否相近。如此可以達到更好的風格轉換,並且也能訓練出更好的ft。

最終LOSS大集合就會變成:

而objective function就會是:

那麼最終實驗結果是:

將GTA5轉換成真實城市風景中CyCADA在更各方面都做到了最好。

--

--