李宏毅《GAN Lecture》學習筆記3 - Unsupervised Conditional GAN

Unsupervised Conditional GAN

上一篇介紹的Conditional GAN是需要成對的數據作爲訓練集,而在很多情況下,很難準備這樣的訓練集。不成對的數據較爲容易收集,那麼,利用這些不成對的數據做Conditional GAN就是Unsupervised Conditional GAN.
在這裏插入圖片描述
有兩種實現方式:

  1. 對於差別不大的情況(只是顏色和紋理的變化),可以直接轉換
  2. 對於差別很大的情況,需要投射到一個Common Space上
    在這裏插入圖片描述

直接轉換

目標函數有兩個:

  1. 生成的圖片儘可能像Domain Y的圖片
  2. 輸入的圖片和生成的圖片要相關
    在這裏插入圖片描述
    關於條件2的方法之一是無視這個問題,因爲generator生成的圖片與輸入本身也不會差太多,尤其是簡單的網絡,當然,複雜的網絡可能會出現一些變化,這時需要添加一些控制。
    在這裏插入圖片描述
    另外一種方式是通過DNN將圖像生成對應的embedding,並最小化兩個embedding的距離。
    在這裏插入圖片描述
    第三種方法也就是大家熟知的CycleGAN。
    在訓練X->Y的generator,同時,也訓練一個Y->X的generator。然後,最小化兩次轉換後的輸入和輸出距離。
    在這裏插入圖片描述
    另外,CycleGAN也可以是雙向的,也就是說,X可以轉成Y,Y也可以轉成X。下圖的G和D會有差異。
    在這裏插入圖片描述
    下面的Disco GAN和Dual GAN,從本質上看和CycleGAN是一樣的。
    在這裏插入圖片描述

Star GAN

多個domain之間的轉換時,如果使用Cycle GAN,需要的G會很多。而Star GAN只需要一個G,就可以完成多個domain的互轉。
在這裏插入圖片描述
下面是StarGAN的算法流程:
左側是D,輸入是real images和fake images,輸出是(1)real/fake,(2)所屬的domain;
中間兩個藍色的G,其實是一個G啦,完成CycleGAN的兩次轉換,從X->Y->X,最後,最小化輸入圖像和輸出圖像的距離;
右側的D是用於判斷生成的image是否是真實的,以及domain是否與期望一致。
在這裏插入圖片描述
論文中使用的案例(1),性別、頭髮顏色作爲不同的domain
在這裏插入圖片描述
案例(2),不同的表情作爲domain
在這裏插入圖片描述

轉到Latent Space

訓練兩套Encoder和Decoder,並最小化reconstruction error
在這裏插入圖片描述
但是,這種訓練方法是獨立進行的,導致X和Y沒有關係。Latent feature可能並沒有一致的關係,這樣,就無法生成符合預期的圖像。
在這裏插入圖片描述
解決這個問題的方法有以下幾種:

(1)encoder之間,後面幾層參數共用。decoder也是如此。這種方式的極端情況,就是使用一個encoder和一個decoder。
這種方式通過增加更多的layer,來使得latent feature相同。
在這裏插入圖片描述
(2)對latent feature增加D,來判斷是否來自不同的domain。訓練過程就是要騙過D,這樣,就可以讓兩個domain的latent feature相同。
在這裏插入圖片描述
(3)下面這種方式類似於CycleGAN,大致過程是:X1->Y2-Y2>X2,最後,最小化reconstruction error
在這裏插入圖片描述
(4)下面這種方式也是類似,差異是比較的是latent feature
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章