前言

上次寫的文章-- 一文了解下 GANs可以做到的事情,如果想進一步瞭解 GAN,學習研究 GAN,可以先從這 10 篇論文開始。

本文翻譯自:

towardsdatascience.com/

原文介紹 10 篇介紹 GANs 以及最新進展的論文,跟原文介紹順序有所不同,我是根據時間順序,從最開始提出的 GANs 論文到目前最新的來介紹,這十篇分別如下所示:

  1. Generative Adversarial Networks,2014
  2. Conditional GANs,2014
  3. DCGAN,2015
  4. Improved Techniques for Training GANs,2016
  5. Pix2Pix,2016
  6. CycleGAN,2017
  7. Progressively Growing of GANs,2017
  8. StackGAN,2017
  9. BigGAN,2018
  10. StyleGAN,2018

原文作者推薦開始的第一篇論文是 DCGAN 。

文末在介紹幾個 Github 項目,分別是專門收集 GAN 方面的論文,以及用 TensorFlow、PyTorch 和 Keras 實現 GANs 模型。


1. Generative Adversarial Networks

論文名稱:Generative Adversarial Nets

論文地址: arxiv.org/abs/1406.2661

「GAN之父」 Ian Goodfellow 發表的第一篇提出 GAN 的論文,這應該是任何開始研究學習 GAN 的都該閱讀的一篇論文,它提出了 GAN 這個模型框架,討論了非飽和的損失函數,然後對於最佳判別器(optimal discriminator)給出其導數,然後進行證明;最後是在 Mnist、TFD、CIFAR-10 數據集上進行了實驗。

2. Conditional GANs

論文名稱:Conditional Generative Adversarial Nets

論文地址:arxiv.org/abs/1411.1784

如果說上一篇 GAN 論文是開始出現 GAN 這個讓人覺得眼前一亮的模型框架,這篇 cGAN 就是當前 GAN 模型技術變得這麼熱門的重要因素之一,事實上 GAN 開始是一個無監督模型,生成器需要的僅僅是隨機雜訊,但是效果並沒有那麼好,在 14 年提出,到 16 年之前,其實這方面的研究並不多,真正開始一大堆相關論文發表出來,第一個因素就是 cGAN,第二個因素是等會介紹的 DCGAN;

cGAN 其實是將 GAN 又拉回到監督學習領域,如下圖所示,它在生成器部分添加了類別標籤這個輸入,通過這個改進,緩和了 GAN 的一大問題--訓練不穩定,而這種思想,引入先驗知識的做法,在如今大多數非常有名的 GAN 中都採用這種做法,後面介紹的生成圖片的 BigGAN,或者是圖片轉換的 Pix2Pix,都是這種思想,可以說 cGAN 的提出非常關鍵。

3. DCGAN

論文名稱:Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks

論文地址:arxiv.org/abs/1511.0643

其實原作者推薦第一篇論文應該是閱讀這篇 DCGAN 論文,2015年發表的。這是第一次採用 CNN 結構實現 GAN 模型,它介紹如何使用卷積層,並給出一些額外的結構上的指導建議來實現。另外,它還討論如何可視化 GAN 的特徵、隱空間的插值、利用判別器特徵訓練分類器以及評估結果。下圖是 DCGAN 的生成器部分結構示意圖

4. Improved Techniques for Training GANs

論文名稱:Improved Techniques for Training GANs

論文地址:arxiv.org/abs/1606.0349

這篇論文的作者之一是 Ian Goodfellow,它介紹了很多如何構建一個 GAN 結構的建議,它可以幫助你理解 GAN 不穩定性的原因,給出很多穩定訓練 DCGANs 的建議,比如特徵匹配(feature matching)、最小批次判別(minibatch discrimination)、單邊標籤平滑(one-sided label smoothing)、虛擬批歸一化(virtual batch normalization)等等,利用這些建議來實現 DCGAN 模型是一個很好學習瞭解 GANs 的做法。

5. Pix2Pix

論文名稱:Image-to-Image Translation with Conditional Adversarial Networks

論文地址:arxiv.org/abs/1611.0700

Pix2Pix 的目標是實現圖像轉換的應用,如下圖所示。這個模型在訓練時候需要採用成對的訓練數據,並對 GAN 模型採用了不同的配置。其中它應用到了 PatchGAN 這個模型,PatchGAN 對圖片的一塊 70*70 大小的區域進行觀察來判斷該圖片是真是假,而不需要觀察整張圖片。

此外,生成器部分使用 U-Net 結構,即結合了 ResNet 網路中的 skip connections 技術,編碼器和解碼器對應層之間有相互連接,它可以實現如下圖所示的轉換操作,比如語義圖轉街景,黑白圖片上色,素描圖變真實照片等。

6. CycleGAN

論文名稱:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

論文地址:arxiv.org/abs/1703.1059

上一篇論文 Pix2Pix 的問題就是訓練數據必須成對,即需要原圖片和對應轉換後的圖片,而現實就是這種數據非常難尋找,甚至有的不存在這樣一對一的轉換數據,因此有了 CycleGAN,僅僅需要準備兩個領域的數據集即可,比如說普通馬的圖片和斑馬的圖片,但不需要一一對應。這篇論文提出了一個非常好的方法--循環一致性(Cycle-Consistency)損失函數,如下圖所示的結構:

這種結構在接下來圖片轉換應用的許多 GAN 論文中都有利用到,cycleGAN 可以實現如下圖所示的一些應用,普通馬和斑馬的轉換、風格遷移(照片變油畫)、冬夏季節變換等等。

7. Progressively Growing of GANs

論文名稱:Progressive Growing of GANs for Improved Quality, Stability, and Variation

論文地址:arxiv.org/abs/1710.1019

這篇論文必讀的原因是因為它取得非常好的結果以及對於 GAN 問題的創造性方法。它利用一個多尺度結構,從 4*48*8 一直提升到 1024*1024 的解析度,如下圖所示的結構,這篇論文提出了一些如何解決由於目標圖片尺寸導致的不穩定問題。

8. StackGAN

論文名稱:StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks

論文地址:arxiv.org/abs/1612.0324

StackGAN 和 cGAN 、 Progressively GANs 兩篇論文比較相似,它同樣採用了先驗知識,以及多尺度方法。整個網路結構如下圖所示,第一階段根據給定文本描述和隨機雜訊,然後輸出 64*64 的圖片,接著將其作為先驗知識,再次生成 256*256 大小的圖片。相比前面 推薦的 7 篇論文,StackGAN 通過一個文本向量來引入文本信息,並提取一些視覺特徵

9. BigGAN

論文地址:Large Scale GAN Training for High Fidelity Natural Image Synthesis

論文地址:arxiv.org/abs/1809.1109

BigGAN 應該是當前 ImageNet 上圖片生成最好的模型了,它的生成結果如下圖所示,非常的逼真,但這篇論文比較難在本地電腦上進行復現,它同時結合了很多結構和技術,包括自注意機制(Self-Attention)、譜歸一化(Spectral Normalization)等,這些在論文都有很好的介紹和說明。

10. StyleGAN

論文地址:A Style-Based Generator Architecture for Generative Adversarial Networks

論文地址:arxiv.org/abs/1812.0494

StyleGAN 借鑒瞭如 Adaptive Instance Normalization (AdaIN)的自然風格轉換技術,來控制隱空間變數 z 。其網路結構如下圖所示,它在生產模型中結合了一個映射網路以及 AdaIN 條件分佈的做法,並不容易復現,但這篇論文依然值得一讀,包含了很多有趣的想法。


小結

本文主要介紹了 10 篇值得一讀的 GAN 論文,從最開始提出這個模型的論文,到截止至 2018 年的論文,其中既有影響很大的 cGAN 和 DCAN,也有圖像轉換領域非常重要的 Pix2Pix 和 CycleGAN,還有最近效果非常不錯的 BigGAN。

如果是希望研究這個方向的,可以看下這 10 篇論文。另外,再推薦一個收集了大量 GAN 論文的 Github 項目,並且根據應用方向劃分論文:

  • AdversarialNetsPapers

以及 3 個復現多種 GANs 模型的 github 項目,分別是目前主流的三個框架,TensorFlow、PyTorch 和 Keras:

  • tensorflow-GANs:TensorFlow 版本
  • Pytorch-GAN:PyTorch 版本
  • Keras-GAN:Keras 版本

最後,對於文章介紹的 10 篇論文都已經下載打包後,獲取方式:

  1. 關注公眾號「演算法猿的成長
  2. 在公眾號會話界面回復 「GAN論文」,即可獲取網盤鏈接。

歡迎關注我的微信公眾號--演算法猿的成長,或者掃描下方的二維碼,大家一起交流,學習和進步!


推薦閱讀:
相關文章