NIPS selected paper :繼有名的CycleGAN之後又出現的BicycleGAN

Topic: Toward Multimodal Image-to-Image Translation

螢幕快照 2018-02-08 上午9.24.53.png

EditorChunHan Lu

Resources:   paper   中文post   video

Label: GAN

 

大意

CycleGAN 是2017年初出現最矚目的GANs 相關的研究 (在李宏毅老師的專訪中有解釋CycleGAN, 可以參考錄像的1hr 開始左右),  這次NIPS出現這篇BicycleGAN 處理的是多對多, 可以看成是兩種VAE GAN及conditional GAN的合併

背景知識 – pix2pix

  1.目的:

藉由Paired Data來訓練GAN, 以用來做Cross Domain Image轉換, 例如黑白→彩色,真實→油畫

  2.例子:

利用很多組Paired Data →ex同一張相片的黑白照彩色照, 我們可以Train出 一個GAN, 在訓練過程Generator(G)要從黑白照generated出彩色照,而Discriminator(D)要能分辨出Input照片是Paired Data的彩色照,還是Generated的彩色照. 理想狀況下, 在訓練過後 G可以成功仿出任何黑白相片彩色風格.

Figure 1.  Cycle GAN 能自動將某一類圖片轉換成另一類圖片. 譬如將照片轉換成油畫的風格或馬與斑馬互換等等.

 

背景知識 – CycleGAN

  1.目的:

拋棄掉Paired Data的限制, 只需要兩種 Domain的圖片便能做到 Cross Domain Image轉換

  2.方法:

(以下圖片皆擷取自李宏毅老師的授課影片)先從Figure 2左圖開始, 先利用Domain Y圖片訓練出一個 Dy, Dy能辨識出圖片是否屬於Domain Y . 藉著Dy我們便能訓練出從X轉到Y的Generator Gxy. 但如果只做這樣, Gxy可能會不停的產生 Domain Y 的圖片來騙過 Dy, 而非產生Domain X 轉到 Y的結果, 因此作者引入 Cycle Consistency 的概念:如右圖     X → Gxy → Y → Gyx → X’,      X必須與X’一致 ,  藉此我們便能做到 X→ Y. 右圖下半也是相同的概念, 做的是 Y→ X 的轉換
2
Figure 2. Cycle GAN的架構解釋. 以上圖李宏毅老師的投影片為例, 如果我們的目的在於將真實相片(x)轉成梵谷風格(y)的圖片, 也就是將樣本空間X中的樣本轉換成另一個樣本空間Y. 基本GAN的做法是一個generator (Gx->y)把照片轉成梵谷風格, 一個discriminator(Dx)判斷g(x)跟y是否相似. 而 Cycle GAN則另外加上將梵谷風格轉回真實相片的generator(Gy->x), 及另一個discriminator(Dy)判斷g(y)跟x是否相似. 所以最後loss function就是Dx 及Dy 兩個discriminator以及cycle consistency loss(循環一致性損失)相加.
3
Figure 3. BicycleGAN 架構圖.

BicycleGAN

 1.目的:

在pix2pix中 ,常常一張 X image只能 output 一種結果, 即便加入random noise, 也不會有太多變化, 因此作者想利用VAE的概念,也就是將image encode成一維的 latent vector, 再藉由這個 vector 去 generate image. 如此一來,藉由操控這個 latent vector, 我們便能在output產生更多變化.

 2.方法:

BicycleGAN 主要由兩個部份組成- conditional VAEGAN 以及 conditional LR-GAN. Figure 3 為論文內的Model架構圖, 先給符號定義:  B:GroundTruthOutput,  B^:GeneratedOutput,  A:InputImage,  N(z):正規化噪聲,  Q(z|B):在Input=B的條件下產生的latent vector,  E:Encoder,  G:Generator,  L1:RegressionLoss(B,Bhat兩圖差異)   D:DiscriminatorLoss(D是否辨識出真圖?),  KL:KL divergence(描述兩個分布的距離). 

3. conditional VAEGAN (Figure3左圖):

    目標: B →  latent vector(Q(z|B)  → B^ , B =B^ (Cycle Consistency)
    次目標: Q(z|B)latent vector 要 close to 正規化噪聲

4. conditional VAEGAN (Figure3左圖):

    目標: z →  B^  → z^ ,  z =z^ (Cycle Consistency)
    次目標: B^ 要 close to B

5. 結論

其實兩者都利用Cycle Consistency來訓練 Encoder 和 Generator, 只是Input跟Loss define的差異, 作者指出,  藉由這兩個Model的搭配(bi-jection), 可以使的產生的圖片更多樣且更逼真. 
  (Paper中有提供 Result of   pix2pix v.s. (a)only v.s. (b)only v.s. (a)+(b)  )
  
  另外作者的brief introduction講的相當容易理解, 如果有興趣可以參考,後面還有short demo

 

Editor:  ChunHan Lu
交大電機畢業 目前擔任中研院助理 近期研究方向: GAN, BayesianNN, ObjectDetection , 有興趣歡迎一起討論^^

Review: George

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s