Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
(使用循環一致的對抗網絡的非配對圖像-圖像轉化)
原文地址:https://arxiv.org/abs/1703.10593
作者:Jun-Yan Zhu,Taesung Park,Phillip Isola,Alexei A. Efros
作者機構:伯克利人工智能研究(BAIR)實驗室
作者博客:Jun-Yan Zhu,http://people.csail.mit.edu/junyanz/。博客上有論文演示視頻以及代碼,從博客發現,pix2pix和cycle-gan該作者都參與提出。
作者興趣方向:計算機視覺、計算機圖形學和機器學習。
摘要
圖像-圖像的轉化訓練時,數據不一定是成對的,本文就是用於解決在沒有成對圖像的基礎上,將源域圖像轉化為目標域圖像的問題。我們的目標是學習一個從X到Y的映射G,利用對抗Loss,使得G(X)與Y無法被判別器區分。因為這個映射G高度受限,所以再設計一個從Y到X的映射F,引入一個循環一致性的loss去使得F(G(X))~=X(反之亦然)。本文方法在風格轉換,物體變形,季節轉變,圖像加強上都有應用。
介紹
如果訓練一個映射G:X到Y,並且通過一個對抗網使得輸出y^=G(x),x∈X無法從Y中區分。理論上來說,這個目標函數能夠使得輸出分布與目標分布靠近,這要求G是獨立的。最優化G可以得到我們的目標。然而這樣的轉化不能保證輸入和輸出是有意義的一一對應,因為G有無窮種方式使得Y^的分布靠近Y,這樣的優化對抗網絡往往會導致模式崩潰(mode collapse),即所有輸入圖像映射到相同的輸出圖像。
基於這個問題,所以需要更多的結構去改善我們的目標函數。利用圖像轉化應該必備的特性“循環一致性”。例如:一個英文句子翻譯成法語,然后再由法語翻譯成英文,這時的結果應該盡量與原英文語句一致。即我們如果轉化G映射,X到Y和另一個轉換F映射Y到X,那么G和F應該互為倒數,兩個映射都應該是雙射的。通過同時訓練映射G和F來應用這個結構假設,並且加上循環一致損失來使得F(G(x))~=x,G(F(y))~=y。將這種損失與域X和域Y上的對抗性損失結合起來,就得到了未成對圖像到圖像轉換的完整目標。
相關工作
- GAN。GAN成功關鍵在於對抗損失迫使生成圖像和真實圖像難以區分。本文繼續采用這個思想。
- 圖像到圖像的轉化。很多配對的圖像到圖像訓練方法,本文重在非配對圖像。
- 非匹配圖像到圖像的翻譯。本文不依賴於任何特定任務的,預定義的輸入和輸出之間的相似性函數,也不假設我們假設輸入和輸出必須位於相同的低維嵌入空間。這使我們的方法成為許多視覺和圖形任務的通用解決方案。
- 循環一致性。在目標跟蹤,語言翻譯,3D形狀配准等方面。在CNN中也有應用。我們引入了類似的損失來推動G和F相互一致。
- 神經風格轉移。是另一種形式的圖像到圖像的轉化。我們主要關注點是通過捕捉高階結構之間的對應關系來學習兩個域之間的映射,而不是兩個特定圖像之間的映射。
公式
設計兩個映射函數,G:X到Y。F:Y到X。並設計兩個對抗判別器。Dx用於區分x和F(y),Dy用於區分y和G(x)。同時設計兩個損失函數,一個對抗損失用於使得生成圖像和目標圖像分布一致,另一個是循環一致性損失,以防止G和F相互矛盾。
- 對抗損失:G:X到Y。判別器Dy:
其中G試圖生成圖像G(x)看起來類似於來自域Y的圖像。而DY的目的是區分生成樣本G(x)和真實樣本y。
2. 循環一致性損失:對抗式訓練在理論上可以學習分別作為目標域Y和X產生相同分布的映射G和F(嚴格地說,這要求G和F是隨機函數)。具有足夠大的容量,網絡可以將相同的一組輸入圖像映射到目標域中圖像的任意隨機排列,其中任何學習到的映射都可以產生與目標分布匹配的輸出分布。為了進一步減少可能映射函數的空間,我們認為學習到的映射函數應該是循環一致的:如圖3 (b)所示。對於定義域x中的每一個圖像x,圖像平移周期應該能夠使x返回到原始圖像,
x → G(x) → F(G(x)) ≈ x.向前循環一致性。
y → F(y) → G(F(y)) ≈ y.向后循環一致性
我們可以用循環一致性損失來激勵這種行為:
完整的目標函數:
λ控制兩個目標函數的相關重要性。
我們的目標是求解:
模型可以看作是訓練兩個“自動編碼器:學習一個自編碼器F◦G:X→X和另一個G◦F: Y→Y。然而,這些自動編碼器都有特殊的內部結構:它們通過中間表示層將圖像映射到自身。這種設置也可以看作是“對抗式自動編碼器”的一種特殊情況,它使用對抗式損失來訓練自動編碼器的瓶頸層來匹配任意的目標分布。在我們的案例中,X→X自編碼器的目標分布是域Y。
實現
- 網絡結構。包括 two stride-2 convolutions, several residual blocks , 和 two 1/2 -strided convolutions。使用instance normalization。對於判別器的網絡結構,使用70*70Patch-GANs,即判斷70×70圖像塊是真實或者假。鑒別器架構具有比整張圖片判斷的鑒別器更少的參數,並且可以以完全卷積的方式應用於任意大小的圖像。
- 訓練細節。第一,應用了最近工作中的兩種技術來穩定我們的模型訓練過程,對於Lgan用最小平方差損失替換掉公式1的負log似然函數。公式1變為公式5。
第二,為了減少模型的震盪,更新鑒別器DX和DY,使用歷史生成圖像,而不是使用最新的生成圖像。保存一個圖像緩沖區,存儲以前生成的50個圖像。
結果
比較了本文方法與最近的方法在同一個數據集上的未配對圖像對圖像的轉化。然后研究了對抗性損失和循環一致性損失的重要性,並將我們的完整方法與幾個變量進行了比較。最后,我們證明了我們的算法在非配對數據的應用中的通用性。本文方法稱為CycleGAN。