摘要
GAN的訓練需要圖片是兩兩匹配的,這樣經過訓練后,生成器可以逐步生成一張讓判別期無法判斷真偽的圖片。但實際上會碰到一些非匹配的圖片,於是就提出了非匹配的圖片轉換(Unpaired image-to-image),一種在沒有成對例子的情況下學習將圖像從源域X轉換到目標域Y的方法。使得
其中\(x\)是原圖,\(G(x)\)是經過生成器處理后的轉換圖片,再經過生成器\(F\)的還原后,還原圖片需要盡可能的和原圖相同。
相關工作
- GANs
- 匹配與非匹配的圖片轉換
- 一致性損失計算
- 風格遷移
系統闡述
- 目標:找到合適的函數F和G,使得原圖和轉換后的圖片盡可能相似。
- 結構:由兩組生成對抗網絡組成;第一組生成對抗網絡有生成器\(G\)(實現\(G: X \rightarrow Y\)的映射)和鑒別器\(D_y\)(判別圖像是目標圖片還是轉換圖片);第二組生成對抗網絡有生成器\(F\)(實現\(F: Y \rightarrow X\)的映射)和鑒別器\(D_x\)(判別圖像是原圖還是還原圖片)。
結構示意圖
Adversarial Loss
提出對抗一致性損失計算,每個判別器應該盡可能的區分圖片來自於哪個領域。
根據GAN的基礎知識,判別器\(D_Y\)應該盡可能地區別轉換圖片與目標圖片,所以得到上述公式,目標是\(min_Gmax_{D_Y}L_{GAN}(G, D_Y , X, Y )\)及\(min_Fmax_{D_X}L_{GAN}(G, D_X , X, Y )\)。
Cycle Consistency Loss
從理論上使用對抗學習可以使生成的分布逼近於目標域的分布,且使反轉后的分布近似於源域的分布,但是實際中發現,或出現Mode Collapse問題。如下圖所示:
即我們生成的分布(紅色)很可能會偏向於目標分布(藍色)的某一部分(圖中表示為一座峰)。例如訓練集有很多種類別(如貓狗牛羊),但是我們只能生成狗(或貓或牛或羊),雖然生成的狗的圖片質量特別好,但是!整個G就只能生成狗,根本沒法生成貓牛羊,陷入一種訓練結果不好的狀態。這和我們對GAN的預期是相悖的。
基於上述問題,作者提出了前向和反向的循環一致性損失:
Full Objective
最終目標函數為:
在整個處理過程中,我們通過一個中間表示將圖像映射到自身,即圖像轉換到另一個域。
實現過程
網絡結構
訓練細節
使用最小二乘損失替換負的log似然損失。利用該損失訓練過程更穩定,且得到了更好的結果:
評價指標
baseline
- CoGAN;
- Pixel loss+GAN;
- Feature loss+GAN;
- BiGAN/ALI;
- pix2pix;
實驗結果
無論是單獨的周期和GAN + backward 都不能產生與目標域相似的圖像。GAN alone和GAN + forward導致模式崩潰,不管輸入的照片是什么,都產生相同的標簽映射。