生成對抗網路系列(3)——cGAN及變種

前兩個小節主要介紹了GAN的理論基礎,存在的難訓練D強G弱的challenge和理論上的解決方案。這個小節先介紹GAN與CNN結合的一個變種DCGAN,接著介紹目前最重要的變種之一conditional GAN(cGAN),以及基於cGAN的一些其他變種如pix2pix、cycleGAN、BicycleGAN等一些impressive and potential 的GAN

3.1 DCGAN[1]

前邊兩節介紹的GAN中,generator和discriminator都用的是簡單的線型神經元。我們知道,近年來,深度學習之所以能大放光彩,主要還是得益於CNN的應用。同樣的,GAN中的generator和discriminator也可以換成CNN,最先提出這個思想的就是DCGAN。G和D的結構如下:

Architecture of DCGAN

D和G換成CNN之後,重新跑一下自己的服裝數據集,得到以下結果:

可以看出,CNN還是蠻強大的,這次的效果明顯比之前的好的多。不過,因為DCGAN只能生產64×64的圖像,我試著改了一下網路結構,把輸入增加到256×256,效果很一般。最新的用在Generator和Discriminator上的網路是Unet(挖坑下次再補充!)

3.2 cGAN

conditional GAN[2]是最早的GAN的變種之一,把原生GAN中的概率全改成條件概率,

max_D {E_{x sim P_{data}} log D(x|y)+E_{x sim P_{G}} log (1-(D(x|y))}

這個條件可以是圖片,標註等等,結構如下圖:

真正在訓練的時候,把條件直接拼接到原始數據中就好。受到cGAN的啟發,總結出下邊的表格:

圖中任意pair都可以選一個做條件,一個做輸出去訓練GAN,從而做一些有意思的應用。

3.2 pix2pix[3]

用上邊的cGAN可知,既然cGAN的條件可以是圖片:

我們就用跟原圖尺寸大小相同的圖片做條件,這樣藉助cGAN可以完成一些paird data才能完成的任務,如把輪廓圖轉化成真實圖片,把mask轉化成真實圖,把黑白圖轉化成真實圖等,如下:

我也跑了自己的服裝數據,效果還是非常挺不錯的,但基於研究保密的需要,暫時不放實驗結果,paper發了之後再放!

3.3 BicycleGAN[6]

Pix2pix最大的缺點就是需要輸入一張ground truth與input image的圖像對,G才能從input image中還原出ground truth. 此外,生成的結果也十分單一,為了增加多樣性,人們又提出BicycleGAN. 這個GAN主要是結合了cVAE-GAN和cLR-GAN兩個變種,同時訓練這兩個網路,如下圖:

BicycleGAN

我們也可以看一下他的結果:

與pix2pix相同,不過這篇文章給了給多不同模式的輸出結果,使得結果更加diverse. 我們同樣在自己的服裝數據集上跑了結果,現在暫時不放。

3.4 Cycle GAN

和 Disco GAN 上邊說的cGAN需要有paired data,也許,我們沒辦法得到這樣的數據,比如把彩鉛畫轉化成真實圖,不可能去找畫家去畫各種彩鉛畫。Cycle GAN[4]和Disco GAN[5]告訴我們不用paird data一樣可以做到風格轉移:

Cycle GAN可以把真實圖片轉化成梵高風格,反之亦然!

除了用image做條件外,還可以用text做條件,這樣就可以完成基於文本描述的圖像生成,不同方法的區別在於如何處理文字,可以轉化成向量、矩陣,或者用一個RNN處理。這方面典型的代表工作是:GAN-INIT-CLS[7], GAWWN[8], StackGAN[9]. 這個不是我目前研究的重點,以後再補充相關的細節,這裡只給出三個方法的部分實驗結果,先是根據文字描述生成鳥

接著是根據文字描述生成花,或者各種場景

2.7 參考文獻

[1] Radford A, Metz L, Chintala S. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks[J]. Computer Science, 2015.

[2] Mirza, Mehdi, and Simon Osindero. "Conditional generative adversarial nets." arXiv preprint arXiv:1411.1784 (2014).

[3] Isola, Phillip, et al. "Image-to-image translation with conditional adversarial networks." arXiv preprint (2017).

[4]Zhu, Jun-Yan, et al. "Unpaired image-to-image translation using cycle-consistent adversarial networks." arXiv preprint arXiv:1703.10593 (2017).

[5]Kim T, Cha M, Kim H, et al. Learning to Discover Cross-Domain Relations with Generative Adversarial Networks[J]. 2017.

[6] Zhu J Y, Zhang R, Pathak D, et al. Toward Multimodal Image-to-Image Translation[J]. 2017.

[7] Reed S, Akata Z, Yan X, et al. Generative Adversarial Text to Image Synthesis[J]. 2016:1060-1069.

[8] Reed S, Akata Z, Mohan S, et al. Learning What and Where to Draw[J]. New Republic, 2016.

[9] Zhang H, Xu T, Li H. StackGAN: Text to Photo-Realistic Image Synthesis with Stacked Generative Adversarial Networks[J]. 2016:5908-5916.

推薦閱讀:

TAG:生成對抗網路GAN |