論文:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
GitHub:CycleGAN
部分圖像翻譯算法存在的問題
許多圖像翻譯算法需要一一對應(yīng)的圖像。可是在許多應(yīng)用場景下,往往沒有這種一一對應(yīng)的強(qiáng)監(jiān)督信息。比如說以下一些應(yīng)用場景:

以第一排第一幅圖為例,要找到這種一一配對的數(shù)據(jù)是不現(xiàn)實(shí)的。在這篇paper中,作者提出了一種非常驚艷巧妙的辦法。繞過了這種一一對應(yīng)的數(shù)據(jù)。
作者提出的算法
模型結(jié)構(gòu)
總體思路如下,假設(shè)有兩個(gè)域的數(shù)據(jù),記為A,B。對于上圖第一排第一幅圖A域就是普通的馬,B域就是斑馬。由于A->B的轉(zhuǎn)換缺乏監(jiān)督信息,于是,作者提出采用如下方法進(jìn)行轉(zhuǎn)換:
a. A->fake_B->rec_A
b. B->fake_A->rec_B
對于A域的所有圖像,學(xué)習(xí)一個(gè)網(wǎng)絡(luò)G_B,該網(wǎng)絡(luò)可以生成B。對于B域的所有圖像,也學(xué)習(xí)一個(gè)網(wǎng)絡(luò)G_A,該網(wǎng)絡(luò)可以生成G_B。
訓(xùn)練過程分成兩步,首先對于A域的某張圖像,送入G_B生成fake_B,然后對fake_B送入G_A,得到重構(gòu)后的A圖像rec_A。對于B域的某一張圖像也是類似。重構(gòu)后的圖像rec_A/rec_B可以和原圖A/B做均方誤差,實(shí)現(xiàn)了有監(jiān)督的訓(xùn)練。此處值得注意的是A->fake_B(B->fake_A)和fake_A->rec_B(fake_B->rec_A)的網(wǎng)絡(luò)是一模一樣的。下圖是形象化的網(wǎng)絡(luò)結(jié)構(gòu)圖:

cycleGAN的生成器采用U-Net,判別器采用LS-GAN。
Loss設(shè)計(jì)
總的Loss就是X域和Y域的GAN Loss,以及Cycle consistency loss:

整個(gè)過程End to end訓(xùn)練,效果非常驚艷,利用這一框架可以完成非常多有趣的任務(wù)