天天看點

GAN---Conditional Generative Adversarial Nets論文

Conditional Generative Adversarial Nets論文筆記

論文位址:Conditional Generative Adversarial Nets

2014年,Goodfellow提出了Generative Adversarial Networks,在論文的最後他指出了GAN的優缺點以及未來的研究方向和拓展,其中他提到的第一點拓展就是:A conditional generative model p(x|c) can be obtained by adding c as input to both G and D。這是因為這種不需要預先模組化的方法缺點是太過自由了,對于較大的圖檔,較多的pixel的情形,基于簡單 GAN 的方式就不太可控了。

于是我們希望得到一種條件型的生成對抗網絡,通過給GAN中的G和D增加一些條件性的限制,來解決訓練太自由的問題。于是同年,Mirza等人就提出了一種Conditional Generative Adversarial Networks,這是一種帶條件限制的生成對抗模型,它在生成模型(G)和判别模型(D)的模組化中均引入了條件變量y,這裡y可以是label,可以是tags,可以是來自不同模态是資料,甚至可以是一張圖檔,使用這個額外的條件變量,對于生成器對資料的生成具有指導作用,是以,Conditional Generative Adversarial Networks也可以看成是把無監督的GAN變成有監督模型的一種改進,這個改進也被證明是非常有效的,為後續的相關工作提供了指導作用。

在之前的文章中,我們提到了Generative Adversarial Networks實際上是對D和G解決以下極小化極大的二進制博弈問題:

GAN---Conditional Generative Adversarial Nets論文

而在D和G中均加入條件限制y時,實際上就變成了帶有條件機率的二進制極小化極大問題:

GAN---Conditional Generative Adversarial Nets論文

在生成器模型中,條件變量y實際上是作為一個額外的輸入層(additional input layer),它與生成器的噪聲輸入p(z)組合形成了一個聯合的隐層表達;在判别器模型中,y與真實資料x也是作為輸入,并輸入到一個判别函數當中。**實際上就是将z和x分别于y進行concat,分别作為生成器和判别器的輸入,再來進行訓練。**其實在有監督的DBN中,也用到了類似的做法。Conditional Generative Adversarial Networks的基本架構如下圖:

GAN---Conditional Generative Adversarial Nets論文

在論文中,作者做了兩個實驗,一是MNIST手寫體資料集的生成,二是基于多模态的圖像自動标注。

  • 在MNIST資料集的實驗中,對于生成器模型,将label的one-hot編碼與100維的均勻分布的噪聲輸入concat起來作為輸入,輸出是784維的生成資料,與資料集28*28的次元一緻。對于判别器模型,作者使用了一個maxout的激活層,對maxout感興趣的朋友可以去看Goodfellow2013年的一篇論文Maxout Networks,本文作者提到了模型的架構并不是限定的,隻不過在這裡使用maxout對于這個任務的效果非常好。
  • 在多模态的實驗中,作者使用的是Flickr資料集,這個資料集具有大量的含有标簽的圖像,并且具有很多user-generated metadat/user-tags,而這些user-tags的好處是,相當于是很多人來描述這張圖檔,而不是僅僅來定義這張圖檔,并且對于不同的人來描述可能會出現很多同義詞,這對訓練也起到了非常有效的效果。

在這裡,作者的目的是利用圖像的特征作為條件變量,生成詞向量的分布,實作一個圖像自動标注的功能。對于image feature,作者使用的是在ImageNet資料集上預訓練的卷積神經網絡,利用最後一個全連接配接層的4096個單元的輸出作為圖像特征。對于word representation,先從YFCC100M資料集中收集一個語料庫,包含有相關的user-tags、标題以及描述等,然後訓練一個skip-gram的模型,用來生成一個語義的字典。

然後在實驗中,分别使用上面的卷積模型和skip-gram模型來提取Flickr資料集中的圖檔和tag特征,然後來訓練我們的Conditional Generative Adversarial Network,最終實作了很好的圖像自動标注的效果。

在文章的最後,作者提出了幾點未來的研究方向,

  • 第一,文中使用的模型和方法都是比較簡單的,作者希望能夠探索更加sophisticated的Conditional Generative Adversarial Network;
  • 第二,在文章中的圖像自動标注實驗中,是每次單獨使用一個tag,作者希望能夠同時使用多個tags能達到更好的效果;
  • 第三,作者希望能夠建構一個聯合訓練機制來學習一個language model,能夠适應于特定的任務。

總的來說,Conditional Generative Adversarial Networks的确是一個在原始GAN上非常直接也很有效的改進,能夠更加有效的發揮GAN在資料生成上的效果,并且在很多場所都會有非常重要的運用。

繼續閱讀