1. 程式人生 > >GANs學習系列(2):cGANs:Conditional Generative Adversarial Networks

GANs學習系列(2):cGANs:Conditional Generative Adversarial Networks

結論by ym:

轉完這篇,理解一下表達一下自己的一點感想。

其實cgan潛在的道理很簡單,但是這個簡單直接的改進被證明非常有效。

簡單來說就是因為:

在生成模型中,先驗輸入噪聲p(z)和條件資訊y聯合組成了聯合隱層表徵。對抗訓練框架在隱層表徵的組成方式方面相當地靈活。

即cnn一直以來的隱層表徵方式,我們多加入一個c,相當於在一個潛在的維度中加入了一些restriction,這些實際會不會使用到其實是未知的,但是我們加入了c其實就是對gan隨機的分佈中,加入了一個潛在的約束範圍。

【前言】 
    本文首先介紹生成式模型,然後著重梳理生成式模型(Generative Models)中生成對抗網路(Generative Adversarial Network)的研究與發展。作者按照GAN主幹論文、GAN應用性論文、GAN相關論文分類整理了45篇近兩年的論文,著重梳理了主幹論文之間的聯絡與區別,揭示生成式對抗網路的研究脈絡。 
本文涉及的論文有:

 
[1] Goodfellow Ian, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in Neural Information Processing Systems. 2014: 2672-2680. 
[2] Mirza M, Osindero S. Conditional Generative Adversarial Nets[J]. Computer Science, 2014:2672-2680. 
[3] 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.

3. 條件生成式對抗網路,Conditional Generative Adversarial Networks

3.1 CGAN的思想

     生成式對抗網路GAN研究進展(二)——原始GAN 提出,與其他生成式模型相比,GAN這種競爭的方式不再要求一個假設的資料分佈,即不需要formulate p(x),而是使用一種分佈直接進行取樣sampling,從而真正達到理論上可以完全逼近真實資料,這也是GAN最大的優勢。然而,這種不需要預先建模的方法缺點是太過自由了,對於較大的圖片,較多的 pixel的情形,基於簡單 GAN 的方式就不太可控了。為了解決GAN太過自由這個問題,一個很自然的想法是給GAN加一些約束,於是便有了

Conditional Generative Adversarial Nets(CGAN)【Mirza M, Osindero S. Conditional】。這項工作提出了一種帶條件約束的GAN,在生成模型(D)和判別模型(G)的建模中均引入條件變數y(conditional variable y),使用額外資訊y對模型增加條件,可以指導資料生成過程。這些條件變數y可以基於多種資訊,例如類別標籤,用於影象修復的部分資料[2],來自不同模態(modality)的資料。如果條件變數y是類別標籤,可以看做CGAN 是把純無監督的 GAN 變成有監督的模型的一種改進。這個簡單直接的改進被證明非常有效,並廣泛用於後續的相關工作中[3,4]。Mehdi Mirza et al. 的工作是在MNIST資料集上以類別標籤為條件變數,生成指定類別的影象。作者還探索了CGAN在用於影象自動標註的多模態學習上的應用,在MIR Flickr25000資料集上,以影象特徵為條件變數,生成該影象的tag的詞向量。

3.2 Conditional Generative Adversarial Nets

3.2.1 Generative Adversarial Nets

    Generative Adversarial Nets是由Goodfellow[5]提出的一種訓練生成式模型的新方法,包含了兩個“對抗”的模型:生成模型(G)用於捕捉資料分佈,判別模型(D)用於估計一個樣本來自與真實資料而非生成樣本的概率。為了學習在真實資料集x上的生成分佈Pg,生成模型G構建一個從先驗分佈 Pz (z)到資料空間的對映函式 G(z; θg )。 判別模型D的輸入是真實影象或者生成影象,D(x; θd )輸出一個標量,表示輸入樣本來自訓練樣本(而非生成樣本)的概率。 
     模型G和D同時訓練:固定判別模型D,調整G的引數使得 log(1 − D(G(z))的期望最小化;固定生成模型G,調整D的引數使得logD(X) + log(1 − D(G(z)))的期望最大化。這個優化過程可以歸結為一個“二元極小極大博弈(minimax two-player game)”問題:

            這裡寫圖片描述

3.2.2 Conditional Adversarial Nets

    條件生成式對抗網路(CGAN)是對原始GAN的一個擴充套件,生成器和判別器都增加額外資訊y為條件, y可以使任意資訊,例如類別資訊,或者其他模態的資料。如Figure 1所示,通過將額外資訊y輸送給判別模型和生成模型,作為輸入層的一部分,從而實現條件GAN。在生成模型中,先驗輸入噪聲p(z)和條件資訊y聯合組成了聯合隱層表徵。對抗訓練框架在隱層表徵的組成方式方面相當地靈活。類似地,條件GAN的目標函式是帶有條件概率的二人極小極大值博弈(two-player minimax game ): 
這裡寫圖片描述

CGAN的網路結構 
                      CGAN的網路結構

3.3 實驗

3.3.1 MNIST資料集實驗

    在MNIST上以類別標籤為條件(one-hot編碼)訓練條件GAN,可以根據標籤條件資訊,生成對應的數字。生成模型的輸入是100維服從均勻分佈的噪聲向量,條件變數y是類別標籤的one hot編碼。噪聲z和標籤y分別對映到隱層(200和1000個單元),在對映到第二層前,聯合所有單元。最終有一個sigmoid生成模型的輸出(784維),即28*28的單通道影象。 
    判別模型的輸入是784維的影象資料和條件變數y(類別標籤的one hot編碼),輸出是該樣本來自訓練集的概率。 
            這裡寫圖片描述

3.3.2 多模態學習用於影象自動標註

    自動標註影象:automated tagging of images,使用多標籤預測。使用條件GAN生成tag-vector在影象特徵條件上的分佈。資料集: MIR Flickr 25,000 dataset ,語言模型:訓練一個skip-gram模型,帶有一個200維的詞向量。 
【生成模型輸入/輸出】 
噪聲資料 100維=>500維度 
影象特徵4096維=>2000維 
這些單元全都聯合地對映到200維的線性層, 
輸出生成的詞向量 (200維的詞向量) 
【判別模型的輸入/輸出】 
輸入: 
500維詞向量; 
1200維的影象特徵 
???生成式和判別式的條件輸入y,維度不一樣???一個是4096維的影象特徵,另一個是?維的?向量 _??? 
如圖2所示,第一列是原始像,第二列是使用者標註的tags ,第三列是生成模型G生成的tags。 
這裡寫圖片描述

3.4 Future works

     
1. 提出更復雜的方法,探索CGAN的細節和詳細地分析它們的效能和特性。 
2. 當前生成的每個tag是相互獨立的,沒有體現更豐富的資訊。 
3. 另一個遺留下的方向是構建一個聯合訓練的排程方法去學校language model

Reference

[1] Mirza M, Osindero S. Conditional Generative Adversarial Nets[J]. Computer Science, 2014:2672-2680. 
[2] Goodfellow, I., Mirza, M., Courville, A., and Bengio, Y. (2013a). Multi-prediction deep boltzmann machines. In Advances in Neural Information Processing Systems, pages 548–556. 
[3] 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. 
[4] Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv:1511.06434, 2015. 
[5] Goodfellow Ian, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in Neural Information Processing Systems. 2014: 2672-2680.