前言
上次寫的文章-- 一文了解下 GANs可以做到的事情,如果想進一步瞭解 GAN,學習研究 GAN,可以先從這 10 篇論文開始。
本文翻譯自:
https:// towardsdatascience.com/ must-read-papers-on-gans-b665bbae3317
原文介紹 10 篇介紹 GANs 以及最新進展的論文,跟原文介紹順序有所不同,我是根據時間順序,從最開始提出的 GANs 論文到目前最新的來介紹,這十篇分別如下所示:
Generative Adversarial Networks,2014
Conditional GANs,2014
DCGAN,2015
Improved Techniques for Training GANs,2016
Pix2Pix,2016
CycleGAN,2017
Progressively Growing of GANs,2017
StackGAN,2017
BigGAN,2018
StyleGAN,2018
原文作者推薦開始的第一篇論文是 DCGAN 。
文末在介紹幾個 Github 項目,分別是專門收集 GAN 方面的論文,以及用 TensorFlow、PyTorch 和 Keras 實現 GANs 模型。
1. Generative Adversarial Networks
論文名稱:Generative Adversarial Nets
論文地址: https:// arxiv.org/abs/1406.2661
「GAN之父」 Ian Goodfellow 發表的第一篇提出 GAN 的論文,這應該是任何開始研究學習 GAN 的都該閱讀的一篇論文,它提出了 GAN 這個模型框架,討論了非飽和的損失函數,然後對於最佳判別器(optimal discriminator)給出其導數,然後進行證明;最後是在 Mnist、TFD、CIFAR-10 數據集上進行了實驗。
2. Conditional GANs
論文名稱:Conditional Generative Adversarial Nets
論文地址:https:// 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
論文地址:https:// arxiv.org/abs/1511.0643 4
其實原作者推薦第一篇論文應該是閱讀這篇 DCGAN 論文,2015年發表的。這是第一次採用 CNN 結構實現 GAN 模型,它介紹如何使用卷積層,並給出一些額外的結構上的指導建議來實現。另外,它還討論如何可視化 GAN 的特徵、隱空間的插值、利用判別器特徵訓練分類器以及評估結果。下圖是 DCGAN 的生成器部分結構示意圖
4. Improved Techniques for Training GANs
論文名稱:Improved Techniques for Training GANs
論文地址:https:// arxiv.org/abs/1606.0349 8
這篇論文的作者之一是 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
論文地址:https:// arxiv.org/abs/1611.0700 4
Pix2Pix 的目標是實現圖像轉換的應用,如下圖所示。這個模型在訓練時候需要採用成對的訓練數據,並對 GAN 模型採用了不同的配置。其中它應用到了 PatchGAN 這個模型,PatchGAN 對圖片的一塊 70*70 大小的區域進行觀察來判斷該圖片是真是假,而不需要觀察整張圖片。
此外,生成器部分使用 U-Net 結構,即結合了 ResNet 網路中的 skip connections 技術,編碼器和解碼器對應層之間有相互連接,它可以實現如下圖所示的轉換操作,比如語義圖轉街景,黑白圖片上色,素描圖變真實照片等。
6. CycleGAN
論文名稱:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
論文地址:https:// arxiv.org/abs/1703.1059 3
上一篇論文 Pix2Pix 的問題就是訓練數據必須成對,即需要原圖片和對應轉換後的圖片,而現實就是這種數據非常難尋找,甚至有的不存在這樣一對一的轉換數據,因此有了 CycleGAN,僅僅需要準備兩個領域的數據集即可,比如說普通馬的圖片和斑馬的圖片,但不需要一一對應。這篇論文提出了一個非常好的方法--循環一致性(Cycle-Consistency)損失函數,如下圖所示的結構:
這種結構在接下來圖片轉換應用的許多 GAN 論文中都有利用到,cycleGAN 可以實現如下圖所示的一些應用,普通馬和斑馬的轉換、風格遷移(照片變油畫)、冬夏季節變換等等。
7. Progressively Growing of GANs
論文名稱:Progressive Growing of GANs for Improved Quality, Stability, and Variation
論文地址:https:// arxiv.org/abs/1710.1019 6
這篇論文必讀的原因是因為它取得非常好的結果以及對於 GAN 問題的創造性方法。它利用一個多尺度結構,從 4*4
到 8*8
一直提升到 1024*1024
的解析度,如下圖所示的結構,這篇論文提出了一些如何解決由於目標圖片尺寸導致的不穩定問題。
8. StackGAN
論文名稱:StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks
論文地址:https:// arxiv.org/abs/1612.0324 2
StackGAN 和 cGAN 、 Progressively GANs 兩篇論文比較相似,它同樣採用了先驗知識,以及多尺度方法。整個網路結構如下圖所示,第一階段根據給定文本描述和隨機雜訊,然後輸出 64*64
的圖片,接著將其作為先驗知識,再次生成 256*256
大小的圖片。相比前面 推薦的 7 篇論文,StackGAN 通過一個文本向量來引入文本信息,並提取一些視覺特徵
9. BigGAN
論文地址:Large Scale GAN Training for High Fidelity Natural Image Synthesis
論文地址:https:// arxiv.org/abs/1809.1109 6
BigGAN 應該是當前 ImageNet 上圖片生成最好的模型了,它的生成結果如下圖所示,非常的逼真,但這篇論文比較難在本地電腦上進行復現,它同時結合了很多結構和技術,包括自注意機制(Self-Attention)、譜歸一化(Spectral Normalization)等,這些在論文都有很好的介紹和說明。
10. StyleGAN
論文地址:A Style-Based Generator Architecture for Generative Adversarial Networks
論文地址:https:// arxiv.org/abs/1812.0494 8
StyleGAN 借鑒瞭如 Adaptive Instance Normalization (AdaIN)的自然風格轉換技術,來控制隱空間變數 z
。其網路結構如下圖所示,它在生產模型中結合了一個映射網路以及 AdaIN 條件分佈的做法,並不容易復現,但這篇論文依然值得一讀,包含了很多有趣的想法。
小結
本文主要介紹了 10 篇值得一讀的 GAN 論文,從最開始提出這個模型的論文,到截止至 2018 年的論文,其中既有影響很大的 cGAN 和 DCAN,也有圖像轉換領域非常重要的 Pix2Pix 和 CycleGAN,還有最近效果非常不錯的 BigGAN。
如果是希望研究這個方向的,可以看下這 10 篇論文。另外,再推薦一個收集了大量 GAN 論文的 Github 項目,並且根據應用方向劃分論文:
以及 3 個復現多種 GANs 模型的 github 項目,分別是目前主流的三個框架,TensorFlow、PyTorch 和 Keras:
tensorflow-GANs:TensorFlow 版本
Pytorch-GAN:PyTorch 版本
Keras-GAN:Keras 版本
最後,對於文章介紹的 10 篇論文都已經下載打包後,獲取方式:
關注公眾號「演算法猿的成長 」
在公眾號會話界面回復 「GAN論文 」,即可獲取網盤鏈接。
歡迎關注我的微信公眾號--演算法猿的成長 ,或者掃描下方的二維碼,大家一起交流,學習和進步!
推薦閱讀:
Please enable JavaScript to view the comments powered by Disqus.