条件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的網絡結構?
??????????????????????
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.
總結
- 上一篇: Windows 7 Bcdedit 应用
- 下一篇: 零次学习(zero-shot learn