【前言】
本文首先介紹生成式模型,而後着重梳理生成式模型(Generative Models)中生成對抗網絡(Generative Adversarial Network)的研究與發展。做者按照GAN主幹論文、GAN應用性論文、GAN相關論文分類整理了45篇近兩年的論文,着重梳理了主幹論文之間的聯繫與區別,揭示生成式對抗網絡的研究脈絡。
本文涉及的論文有:css
- Goodfellow Ian, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in Neural Information Processing Systems. 2014: 2672-2680.
- Denton E L, Chintala S, Fergus R. Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks[C]//Advances in neural information processing systems. 2015: 1486-1494.
- Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv:1511.06434, 2015.
DCGAN[1]這篇論文的提出看似並無很大創新,但其實它的開源代碼如今被使用和借鑑的頻率最高。這一切必須歸功於這篇工做中比 LAPGAN [2]更 robust 的工程經驗分享。也就是說,DCGAN,Deep Convolutional Generative Adversarial Networks,這個工做[1],指出了許多對於GAN這種不穩定學習方式重要的架構設計和針對CNN這種網絡的特定經驗。重點來看:
好比他們提出既然以前已經被提出的strided convolutional networks 能夠從理論上實現和有pooling的 CNN同樣的功能和效果,那麼strided convolutional networks做爲一個能夠 fully differentiable的generator G,在GAN中會表現得更加可控和穩定。
又好比,原本 Facebook的LAPGAN中指出Batch Normalization(BN)被用在 GAN 中的D上會致使整個學習的collapse ,可是DCGAN中則成功將 BN 用在了 G 和 D 上。這些工程性的突破無疑是更多人選擇DCGAN 這一工做做爲 base 的重要緣由。
另外一方面,他們在 visualize generative models 也有許多貢獻。好比他們學習了 ICLR 2016 論文《Generating Sentences From a Continuous Space》中的 interpolate space 的方式,將生成圖片中的 hidden states 都 show 了出來,能夠看出圖像逐漸演變的過程。
與此同時,他們也講 Vector Arithmetic 運用在了圖像上,獲得了以下的一些結果:
html
相較有監督學習,CNN在無監督學習上的進展緩慢。本文結合CNN在有監督學習的成功和無監督學習,提出一類被稱爲「深度卷積生成對抗網絡(DCGANs)」使用生成模型和判別模型,從物體物件到場景圖像,學習到一種層次的表徵。最後,使用學習到的特徵實現新任務——闡明它們能夠用於生成圖像的表徵。
無監督地學習表徵,用於有監督學習。windows
經過GAN構建表徵,而後重用部分生成模型、判別模型做爲有監督學習的特徵提取器。網絡
GAN是「最大似然方法」的一個有吸引力的替代方法。架構
對於表徵學習,無需啓發式損失函數是有吸引力的。app
GAN有一個通病:訓練過程的unstable : 常常致使生成器產出無心義的輸出。目前在試圖理解和可視化GANs學到什麼以及多層GANs的中間層標準方面研究很是有限。
這篇文章主要貢獻:ide
Representation Learning from Unlabeled Data
無監督表徵學習是一個CV領域中至關好的研究問題
經典的無監督表徵學習方法:聚類分析;利用聚類的簇改善分類性能
In the context of images函數
Generating natural images
分爲參數生成模型 和 非參生成模型
Non-parametric models
The non-parametric models often do matching from a database of existing images, often matching patches of images.
Parametric models
A variational sampling approach to generating images (Kingma & Welling, 2013)
Another approach generates images using an iterative forward diffusion process(Sohl-Dickstein et al., 2015)
Generative Adversarial Networks (Goodfellow et al., 2014) generated images suffering from being noisy and incomprehensible.
A laplacian pyramid extension to this approach (Denton et al., 2015) showed higher quality images, but they still suffered from the objects looking wobbly because of noise introduced in chaining multiple models.
A recurrent network approach (Gregor et al., 2015) and a deconvolution network approach (Dosovitskiy et al., 2014) have also recently had some success with generating natural images, not leveraged the generators for supervised tasks性能
歷史上使用CNN擴展GANs模型不是很成功(這裏的「擴展」含義是什麼?原始的GAN和LAPGAN都有用卷積網絡做爲生成模型/判別模型?)
這驅使LAPGAN[2]的做者開發一種替代方法:迭代地升級低分辨率圖像
Attempting to scale GANs using CNN architectures commonly used in the supervised literature
試圖使用文獻中說起的一般用於有監督學習的CNN架構擴展GANs時遇到了困難。最終找到了一類結構,能夠在多種數據集上穩定地訓練,而且產生更高分辨率的圖像:深度卷積生成網絡(DCGAN)。
Core to our approach is adopting and modifying three recently demonstrated changes to CNN architectures.
方法的核心:採用、修改了三種最近CNN結構的改進:學習
All convolutional net (Springenberg et al., 2014) 全卷積網絡
在卷積特徵之上消除全鏈接層
Batch Normalization 批標準化
解決因糟糕的初始化引發的訓練問題,使得梯度能傳播更深層次。
Batch Normalization證實了生成模型初始化的重要性,避免生成模型崩潰:生成的全部樣本都在一個點上(樣本相同),這是訓練GANs常常遇到的失敗現象。
This proved critical to get deep generators to begin learning, preventing the generator from collapsing all samples to a single point which is a common failure mode observed in GANs.
100維的噪聲被投影到一個小空間幅度的卷積表徵中。有四個微步幅卷積(在一些論文中,它們被誤稱爲反捲積deconvolutions),而後將這些高層表徵轉換到64 * 64像素的RGB三通道圖片。沒有全鏈接層,沒有池化層。
原文對DCGAN的網絡結構介紹的不是很清楚,Semantic Image Inpainting with Perceptual and
Contextual Losses這篇文章使用了DCGAN進行圖像修復,對網絡結構和參數介紹的比較清楚(圖中判別網絡D的各層卷積操做的通道數應該和生成網絡G同樣,可是圖中是不一樣的,懷疑是否是判別網絡D的通道數(卷積核數目)畫錯了?)。以下圖所示:
上圖a是生成模型G:輸入(100 維噪聲向量Z)到第一個層:全鏈接 100 —> 1024,而後再把1024的一維向量reshape成1024個通道的4*4的feature map。基本規律是生成網絡的每個下一層是反捲積層,通道數減半,圖像尺寸加倍。
下圖b判別模型D:就是一個沒有pooling的全卷積網絡,輸出是一個標量,表示輸入數據屬於訓練數據而非生成樣本的機率。
在LSUN臥室數據集上訓練DCGAN,生成的圖像很是逼真:
We demonstrate that an unsupervised DCGAN trained on a large image dataset can also learn a hierarchy of features that are interesting.
Using guided backpropagation as proposed by (Springenberg et al., 2014), we show in Fig.5 that the features learnt by the discriminator activate on typical parts of a bedroom, like beds and windows.
Vector arithmetic for visual concepts
[1] Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv:1511.06434, 2015. [2] Denton E L, Chintala S, Fergus R. Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks[C]//Advances in neural information processing systems. 2015: 1486-1494.