遷移變換
以CycleGAN爲例,遷移就是從一個域遷移到另一個域。比如:斑馬到馬;
與CycleGAN很有關係的兩個兄弟DualGAN和DiscoGAN;
CycleGAN的歷史淵源
- 階段一:cGAN,條件是標註信息;
- 階段二:pix2pix,條件是圖片信息;
- 階段三:CycleGAN,條件是圖片信息;(難點在於沒有ground truth)
解決方法(靈感來源): NLP中從英文翻譯爲法文,再將翻譯後的法文重新翻譯回英文,看翻譯回的英文與原文的區別;
即X->Y->X’;
CycleGAN的優化目標
兩個生成器:
- G: X->Y
- F: Y->X’
兩個判別器:
- D1(y) 用來判別G生成器的結果;
- D2(x) 用來判別F生成器的結果;
一些新的內容
循環一致性損失
我們希望X‘能夠儘量的接近X,但是並沒有解決導致模式塌縮,也就是說我們還是不能保證Y是我們想要的Y,於是我們提出了循環一致性損失。
關於DiscoGAN和DualGAN
表達的思想是一致的,三者只有細微的不同。
核心思想都是:”遷移過去,還要遷移回來“
失敗案例
代碼與論文
[1] CycleGAN論文
[2] CycleGAN代碼