條件GAN(Conditional Generative Adversarial Nets),原文地址爲CGAN。
Abstract
生成對抗網絡(GAN)是最近提出的訓練生成模型(generative model)的新方法。在本文中,咱們介紹了條件GAN(下文統一簡稱爲CGAN),簡單來講咱們把但願做爲條件的data y同時送入generator和discriminator。咱們在文中展現了在數字類別做爲條件的狀況下,CGAN能夠生成指定的MNIST手寫數字。咱們一樣展現了CGAN能夠用來學習多形態模型(multi-modal model),咱們提供了一個image-tagging的應用,其中咱們展現了這種模型能夠產生豐富的tags,這些tags並非訓練標籤的一部分。
web
1. Introduction
GAN最近被提出做爲訓練生成模型的替代框架,用來規避有些狀況下近似複雜機率的計算的困難。
GAN的一個重要優點就是不須要計算馬爾科夫鏈(Markov chains),只須要經過反向傳播算法計算梯度,在學習過程當中不須要進行推斷(inference),一系列的factors和interactions能夠被輕易地加入到model當中。
更進一步地,就像[8]中顯示的那樣,CGAN能夠產生state-of-the-art的對數似然估計(log-likelihood)和十分逼真的樣本。
在非條件的生成模型中,咱們無法控制生成什麼樣模式的樣本。然而,經過給model增長額外的信息,咱們能夠引導模型生成數據的方向。這樣的條件能夠創建在類別標籤,或者[5]展現的圖像修復的部分數據,甚至能夠是不一樣模式的數據上。
本文展現了應該如何構建CGAN。咱們展現了CGAN在兩個數據集上的結果,一個是以類別標籤做爲條件的MNIST數據集;還有一個是創建在MIR Flickr 25,000 dataset上的多模態學習(multi-modal learning)。
2. Related Work
2.1 圖像標籤的多模態學習
儘管最近監督神經網絡(特別是卷積網絡)取得了巨大的成功,可是將這種模型擴展到有很是大的預測輸出類別的問題上仍然面臨着巨大的挑戰。第二個問題是,當今的大部分工做都主要集中在學習輸入到輸出的一對一的映射。然而不少有趣的問題能夠考慮爲機率上的一對多的映射。好比說在圖片標註問題上,對於一個給定的圖片可能對應了多個標籤,不一樣的人類標註者可能會使用不一樣的(但一般是類似的或者是相關的)詞彙來描述相同的一幅圖片。
解決第一個問題的一種方式是從其餘的模式中施加額外的信息,好比說經過語言模型來學習詞彙的向量形式的表達,其中幾何上的關係對應了語義上的相關。在這樣的空間(映射以後的向量空間)作預測時,一個很好的性質時,即便咱們的預測錯誤了,可是仍然和真實的答案很接近(好比說預測是"table"而不是"chair"),還有一個優點是,咱們能夠天然地對即便在訓練時沒有見過的詞彙作generalizations prediction,由於類似的向量語義上也是類似的。[3]的工做顯示即便是一個從圖像特徵空間到單詞表達空間(word vector)的線性映射均可以提升分類的性能。
解決第二個問題的一種解決辦法是使用條件機率生成模型,輸入是做爲條件變量,一對多的映射被實例化爲一個條件預測分佈。
[16]對第二個問題採用了和咱們相似的辦法,他們在MIR Flickr 25,000 dataset上訓練了一個深度玻茲曼機。
除此以外,[12]的做者展現瞭如何訓練一個有監督的多模態天然語言模型,這樣能夠爲圖片生成描述的句子。
3. Conditional Adersarial Nets(條件對抗網絡)
3.1 Generative Adervasarial Nets
GAN是最近提出的一種新穎的訓練生成模型的方式。它包含了兩個「對抗」模型:生成模型G捕獲數據分佈,判別模型D估計樣原本自訓練數據而不是G的機率。G和D均可以是非線性的映射函數,好比多層感知機模型。
爲了學習生成器關於data x的分佈
\(p_g\),生成器構建了一個從先驗噪聲分佈
\(p_z(z)\)到數據空間的映射
\(G(z;\theta_g)\)。判別器
\(D(x;\theta_d)\)輸出了一個單一的標量,表明x來自訓練樣本而不是
\(p_g\)的機率。
G和D是同時訓練的:咱們調整G的參數來最小化
\(log(1-D(g(Z)))\),而後調整D的參數來最小化
\(log(D(X))\),他們就像以下的兩人的最小最大化博弈(two player min-max game),價值函數(value function)爲
\(V(G,D)\):
3.2 Conditional Adersarial Nets
若是生成器和判別器都基於一些額外的信息y的話,GAN能夠擴展爲一個條件模型。y能夠是任何形式的輔助信息,好比說類別標籤或者其餘模式的數據。咱們能夠經過增長額外的輸入層來將y同時輸入生成器和判別器,來實施條件模型。
在生成器中,先驗的噪聲輸入\(p_z(z)\)和y被結合成一個鏈接隱藏表達(joint hidden representation),對抗訓練的框架爲組成隱藏表達(compose of hidden representation)提供了至關大的靈活性。
在判別器中,x和y被做爲輸入送入判別函數(再一次地,好比能夠是一個MLP,多層感知器)。
Two player minimax game的目標函數如公式(2):
算法
圖1展現了一個簡單的條件對抗網絡的架構。
圖1 條件對抗網絡
4. Experimental Results
4.1 Unimodal(單一模式)
咱們以類別標籤做爲條件在MNIST數據集上訓練了一個對抗網絡,類別標籤是做爲one-hot vectors的形式。
在生成網絡中,100維的噪聲先驗分佈是從unit hypercube(單位超方體)的均勻分佈採樣獲得的。z和y都是映射到帶有relu激活函數的hidden layers,隱藏層節點數分別爲200和1000,而後兩者的輸出相結合造成一個節點數爲1200的帶有relu激活函數的hidden layer,最後是一個sigmoid unit hidden layer做爲輸出,生成784維的MNIST samples。
判別器將x映射到一個有240 units and 5 pieces的maxout layer[6],y映射到一個有50 units and 5 pieces 的maxout layer。這兩個hidden layers在被送入sigmoid layer以前都被映射到一個有240 units and 4 pieces 的joint maxout layer。(判別器的準確的架構不是特別重要,只要有sufficient power便可;咱們發現對於這個任務maxout units很是合適)。
模型的訓練使用SGD,mini-batch size 爲100,初始化的學習率爲0.1,指數衰減因子爲1.00004,最終的學習率爲0.000001。momentum參數初始化爲0.5,最終增長到0.7。generator和discriminator都須要使用dropout,dropout rate爲0.5。在validation set 上的最佳對數似然估計被做爲中止點(early stop)。
表1顯示了對於MNIST的test data的Gaussian Parzen window對數似然估計。從10個類別的每個類別採樣共獲得1000個samples,而後使用Gaussian Parzen window來擬合這些samples。而後咱們使用Parzen window 分佈來估計測試集的對數似然。([8]詳細介紹了怎麼作這種估計)。
條件對抗網絡的結果顯示了,咱們的實驗結果和基於其餘網絡獲得的結果相近,可是比其中的幾種方法更加優越——包括非條件對抗網絡。咱們展現這種優越性更可能是基於概念上的,而不是具體的功效,咱們相信,將來若是對超參數和模型架構進行更深刻的探索,條件模型能夠達到甚至超過非條件模型的結果。
圖2顯示了一些生成的樣本,每一行是基於一個label生成的樣本,而每一列則表明了生成的不一樣樣本。
圖2 生成的MNIST手寫數字,每一行是以一個label做爲條件
4.2 Multimodal(多模態)
像Flickr這樣的圖像網站,是圖像以及用戶爲圖像生成的額外信息(user-generated metadata,UGM)的有標記數據的豐富來源——特別數用戶提供的標籤。
用戶提供的標記信息與經典的圖像標籤不同的地方在於,用戶提供的標記信息內容更加豐富,語義上也更加接近人類用天然語言對於圖像的描述,而不只僅是識別出圖像中有什麼東西。UGM中同義詞很廣泛,不一樣的用戶對相同的圖像內容可能用不一樣的詞彙去描述,所以,找到一種對這些標籤進行標準化的有效方式是很是重要的。概念上的詞向量是很是有用的,由於表達成爲詞向量以後,語義相近的詞向量在距離上也是相近的。在本節當中,咱們展現了圖像的自動標記,能夠帶有多個預測標籤,咱們基於圖像特徵使用條件對抗網絡生成(多是多模態)標籤向量的分佈。
對於圖像特徵來講,咱們採用和[13]相似的方法,在帶有21000個標籤的所有ImageNet數據集上預訓練了一個卷積網絡。咱們使用了卷積網絡最後一層帶有4096個units的全鏈接層做爲圖像的特徵表達。
對於單詞表達來講,咱們從
YFCC100M數據集獲取了用戶標籤,標題以及圖像描述的語料庫。在對文本進行預處理以及清洗以後,咱們訓練了一個skip-gram model,word vector的size是200。咱們從詞典當中丟棄了出現次數少於200次的詞彙。最後詞典的大小是247465。
咱們在訓練對抗網絡過程當中保持卷積網絡和語言模型(language model)固定。將來咱們將會探索,將反向傳播同時應用於對抗網絡,卷積網絡和語言模型。
在實驗的過程當中,咱們使用了MIR Flickr 25,000 數據集,而且使用瞭如上所述的卷積網絡和語言模型提取了圖像特徵和標籤(詞向量)特徵。沒有任何標籤的圖像被咱們捨棄了,註釋被看作是額外的標籤。前15萬的樣例被做爲訓練樣本。有多個標籤的圖像,帶有每個標籤的圖像分別被看作一組數據。
評估過程,對於每一個圖像咱們生成了100個samples,而且使用餘弦距離找出了最相近的20個單詞。而後咱們選取了100個samples中最常出現的10個單詞。表4.2展現了一些用戶關聯生成的標籤和註釋以及生成的標籤。
表現最佳的條件對抗網絡的生成器接收size爲100的高斯噪聲做爲先驗噪聲,而後將它映射到500維的relu層,而後將4096層的圖像特徵映射到2000維的relu layer,這些層都被映射到一個200維的線性layer的而後鏈接表達,最後輸出生成的詞向量。
鑑別器由對於詞向量500維的relu layer,對圖像特徵1200維的relu layer組成,而後是一個帶有1000個units和3pieces的maxout layer,最後送入sigmoid單元獲得輸出。
模型的訓練使用了隨機梯度降低(SGD),batch size =100,初始學習率爲0.1,指數衰減率爲1.00004,最後學習率降低到0.000001。同時模型也使用了momentum(動量加速),初始值爲0.5,最後上升到0.7。生成器和鑑別器都使用了dropout,dropout rate 爲0.5。
超參數以及模型架構由交叉驗證還有混合了手工以及的網格搜索的方法所獲得。
5. Feature Work
本文顯示的結果很是初步,可是它展現了條件對抗網絡的潛力,同時也爲有趣且有用的應用提供了新的思路。在將來進一步的探索當中,咱們但願展現更加豐富的模型以及對於模型表現、特性更加具體深刻的分析。同時在當前的實驗中,咱們僅僅使用了每一個單獨的標籤,咱們但願能夠經過一次使用多個標籤取得更好的結果。
另一個顯然將來能夠探索的方向是咱們能夠將對抗網絡和語言模型結合到一塊兒訓練。[12]的工做顯示了咱們能夠學習到針對特定任務的語言模型。
References
[1] Bengio, Y., Mesnil, G., Dauphin, Y., and Rifai, S. (2013). Better mixing via deep representations. In ICML’2013. [2] Bengio, Y., Thibodeau-Laufer, E., Alain, G., and Yosinski, J. (2014). Deep generative stochastic networks trainable by backprop. In Proceedings of the 30th International Conference on Machine Learning (ICML’14). [3] Frome, A., Corrado, G. S., Shlens, J., Bengio, S., Dean, J., Mikolov, T., et al. (2013). Devise: A deep visual-semantic embedding model. In Advances in Neural Information Processing Systems, pages 2121–2129. [4] Glorot, X., Bordes, A., and Bengio, Y. (2011). Deep sparse rectifier neural networks. In International Conference on Artificial Intelligence and Statistics, pages 315–323. [5] 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. [6] Goodfellow, I. J., Warde-Farley, D., Mirza, M., Courville, A., and Bengio, Y. (2013b). Maxout networks. In ICML’2013. [7] Goodfellow, I. J., Warde-Farley, D., Lamblin, P., Dumoulin, V., Mirza, M., Pascanu, R., Bergstra, J., Bastien, F., and Bengio, Y. (2013c). Pylearn2: a machine learning research library. arXiv preprint arXiv:1308.4214. [8] Goodfellow, I. J., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., Courville, A., and Bengio, Y. (2014). Generative adversarial nets. In NIPS’2014. [9] Hinton, G. E., Srivastava, N., Krizhevsky, A., Sutskever, I., and Salakhutdinov, R. (2012). Improving neural networks by preventing co-adaptation of feature detectors. Technical report, arXiv:1207.0580. [10] Huiskes, M. J. and Lew, M. S. (2008). The mir flickr retrieval evaluation. In MIR ’08: Proceedings of the 2008 ACM International Conference on Multimedia Information Retrieval, New York, NY, USA. ACM. [11] Jarrett, K., Kavukcuoglu, K., Ranzato, M., and LeCun, Y. (2009). What is the best multi-stage architecture for object recognition? In ICCV’09. [12] Kiros, R., Zemel, R., and Salakhutdinov, R. (2013). Multimodal neural language models. In Proc. NIPS Deep Learning Workshop. [13] Krizhevsky, A., Sutskever, I., and Hinton, G. (2012). ImageNet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems 25 (NIPS’2012). [14] Mikolov, T., Chen, K., Corrado, G., and Dean, J. (2013). Efficient estimation of word representations in vector space. In International Conference on Learning Representations: Workshops Track. [15] Russakovsky, O. and Fei-Fei, L. (2010). Attribute learning in large-scale datasets. In European Conference of Computer Vision (ECCV), International Workshop on Parts and Attributes, Crete, Greece. [16] Srivastava, N. and Salakhutdinov, R. (2012). Multimodal learning with deep boltzmann machines. In NIPS’2012. [17] Szegedy, C., Liu, W., Jia, Y., Sermanet, P., Reed, S., Anguelov, D., Erhan, D., Vanhoucke, V., and Rabinovich, A. (2014). Going deeper with convolutions. arXiv preprint arXiv:1409.4842.