這篇文章初看有些迷惑,用模型來訓練一個source-free image translation(SFIT)方法。
仔細看方法才知道是怎么回事:
實際上這個image translation的訓練有點像perceptual loss那篇,generator完成圖像翻譯,后面虛線的部分是固定的,用來計算loss。
這個source free是怎么來的呢?意思是完成這個訓練不需要任何來自source domian的圖像。Source CNN是在源域上訓練的,target CNN是通過unsupervised domain adaptation學的。
這樣就完了?事情當然沒有這么簡單。實際上作者是通過SFIT來看一看DA的過程中神經網絡到底學到了什么知識,適應到了什么內容。這種source free的方式避免了generator接觸到source domain 的圖像,保證只從兩個模型學到知識,避免了image本身帶來的“分心”。
這也是一個知識蒸餾問題。作者表示,不同於data-free的知識蒸餾,SFIT必須可以表現出有哪些知識通過DA被轉移過去了,而data-free只需要生成滿足teacher的數據。
作者的目的就是把兩個模型之間的知識差異通關generator來表現出來,並且可視化出來。
右邊的knowledge distllation loss 就是用同樣的classifier求出兩個label 的KL散度,不需要額外解釋。
Relationship preserving loss是作者提出來的。實際上就是對兩個圖像特征先求GRAM矩陣,然后對GRAM矩陣做L2標准化,最后計算MSE loss。
為什么用這種row-wise normalized Gram matrix 而不是原來的Gram matrix?(這里的row實際上是channel,因為F是D*HW的)
這個loss更關注channel之間的相對關系,而不是傳統的用絕對值的方式描述channel自相關的絕對值。
這是對應的兩個gram矩陣。更深的顏色代表更大的差異,因此帶來的監督效果更強。傳統的gram矩陣只有四個角落的通道的監督更強,而作者提出的更加均勻一些。
實驗部分:
訓練的細節:generator是初始化為一個transparent filter,輸入什么輸出就是什么。具體來說就用identity loss和content loss訓練的。
實驗結果:
首先是定量分析,作者展示了在生成的圖像的分類准確率。
在數字數據集上的表現:
在Office-31數據集上的表現:
在VisDA數據集上的表現:
source model一行應該是指source model在target domain的分類准確率,target model一行是target model在target domain上的准確率。
由於兩個模型在知識上存在差異,所以在target domain上的准確率也有較大的差異。
generated images一行是指將target domain域的圖像翻譯回source domain后送入source model的分類准確率。
Fine-tuning一行是使用target images和generated images對target model微調的結果。
作者對此的解讀是,generated images緩解了分類性能上的知識差異,表示SFIT方法確實把target model適應到的、學到的知識蒸餾到了generator中。
定型分析:
VisDA數據集的結果:SYN→REAL
數字數據集(SVHN→MNIST)的結果:
注意,MNIST的圖像是灰度圖像,因此生成的圖像中隨機添加了顏色。
Office-31數據集的結果:Amazon→Webcam
結論就是generator會保留target image的內容,並且可以學到從來沒見過的、來自source domain的style。
數字的數據集使用的是LeNET,loss比較容易優化而不容易學到style。
另外兩種數據集使用的是resnet,生成滿足loss的圖像是比較困難的,因此訓練的時間和更嚴格的限制導致生成圖像的質量也更好。
使用不同的UDA方法在VisDA數據集上應用SFIT的結果:
其中a是target image,bcd分別用了DAN、ADDA、SHOT-IM。更強的UDA方法可以更好的把沒見過的source domain的風格遷移到target image上。
小小總結:作者提出的SFIT是可視化DA過程中source model與target model知識差異的好工具。
從image translation的角度來看,這個結構並不是新穎的。但是與DA和知識蒸餾相結合便達到了另一層高度,該說不愧是cvpr嗎。