CGAN論文解讀:Conditional Generative Adversarial Nets

 論文鏈接:Conditional Generative Adversarial Nets

代碼解讀:Keras-CGAN_MNIST 代碼解讀

目錄

一、前言

二、相關工作

三、網絡結構 CGAN NETS

四、實驗結果

4.1 單模態 (mnist實驗)

4.2 多模態(自動爲圖片打標籤)

五、 Future work

六、小結


一、前言

摘要:

本文做的工作:介紹了GAN 的條件版本-條件GAN。通過簡單地爲數據增加label y進行構造,G和D 的輸入都加上了label。本文做了兩個基於條件GAN 的實驗:1.根據類標籤生成數字,(以類標籤作爲條件)使用MNIST手寫數字體數據集。2.我們還演示瞭如何使用該模型來學習一個多模態模型,並提供了一個應用於圖像標記的初步示例,我們在其中演示了該方法如何生成不屬於訓練標籤的描述性標記。(利用CGAN自動爲圖像打標籤)

前言:簡單的介紹GAN的優勢;傳統的Unconditioned GAN不能控制生成器生成數據的模式(mode),爲模型加上額外的信息作爲條件,可以引導數據生成過程。條件信息可以基於圖像修補的部分,或者數據的多模態信息。CGAN可以應用於圖像修補,多模態深度學習。

Notes: 多模態深度學習是深度學習中的一類特殊問題.,多模態是在輸入的類型上有了改變,指多個類型的輸入。例如: 通過紅外,圖像,聲波等多種形態的輸入,來預測場景中是否有人存在,或者做多類型的標註問題。多模態信息融合可以用到目標檢測上。

二、相關工作

圖像標記的多模式學習的兩個挑戰及可能的解決方法:

  1. 龐大的預測輸出類別
  2. 大部分工作集中在輸入輸出一對一映射(但實際中,存在一對多的映射。比如一張圖片由於不同人來標記有不同的註釋但是描述的都是同一張圖片。)

解決方法:

  1. One way to help address the first issue is to leverage additional information from other modalities。幫助解決第一個問題的方法之一是利用來自其他模式的額外信息。
  2. One way to address the second problem is to use a conditional probabilistic generative model, theinput is taken to be the conditioning variable and the one-to-many mapping is instantiated as a conditional predictive distribution.解決第二個問題的一種方法是使用條件概率生成模型,將輸入作爲條件變量,將一對多映射實例化爲條件預測分佈。(在後面CGAN的loss函數上可以體現出來。)

作者展示瞭如何訓練一個監督的多模態神經語言模型,並且他們能夠爲圖像生成描述性語句。(是第二個實驗的前提。)

三、網絡結構 CGAN NETS

傳統GAN 的優化目標:

下圖是一個簡單的CGAN結構:

如果生成器G和鑑別器D都以一些額外的信息y爲條件,則生成對抗網絡可以擴展到條件模型。y可以是任何類型的輔助信息,例如類標籤或來自其他模式的數據。我們可以通過輸入y到鑑別器和發生器作爲額外的輸入層來實現條件設置。在生成器中,先前的輸入噪聲p(z)和y被組合在聯合隱藏表示中。在鑑別器D中,x和y組合在一起作爲輸入,送到判別函數(圖中是MLP模型)。

CGAN的優化目標:

簡單的CGAN結構

 

四、實驗結果

4.1 單模態 (mnist實驗)

以mnist數據集的lable(0-9)作爲條件信息,編碼爲one-hot向量(獨熱碼)。

G網裏,噪聲z和label y分別被映射到大小分別爲200,1000的隱藏層,激活函數都是Relu。再用大小爲1200的隱藏層(combined hidden ReLu layer)拼接這兩個層的輸出,再接着進行生成784(28*28)圖片的過程。

D網也順從這個思路,結合(combine)img和label,一起判斷打分,判斷真假,最後一層是sigmoid。

生成圖片的效果如下:

 在本文開頭的鏈接:代碼解讀中,G combine z和y,D combine img 和 y的方法與此論文有所不同,更簡潔,而且效果也不錯。可以嘗試一下。  

4.2 多模態(自動爲圖片打標籤)

In this section we demonstrate automated tagging of images, with multi-label predictions, using conditional adversarial nets to generate a (possibly multi-modal) distribution of tag-vectors conditional on image features.

在本節中,我們將演示使用多標籤預測來自動標記圖像,並使用條件對抗網生成基於圖像特徵的標記向量(可能是多模式的)分佈。

首先是數據集的特殊性。像Flickr這樣的照片網站是一個豐富的標記數據源,其形式是圖像及其相關的用戶生成元數據(UGM user-generated metadata ),特別是用戶標記。這些標記在語義上更接近人們對圖片的描述,而不是簡單地進行目標識別。UGM 的另一個特殊之處是近義詞,不同人對同一個圖片有着不同的描述,但描述的都是同一個對象。因此用一個有效的方法來規範化這些標籤變得很重要。概念詞嵌入(Conceptual word embeddings)在這裏非常有用,因爲相關的概念詞最終由相似的向量表示。

這個模型的訓練分爲以下幾個步驟:

  1. pre-train two model to extract image and tag features
  2. use MIR Flicker 25,000 dataset, use pre-trained models to extract features.

 

首先分別用兩個數據集(ImageNet,YFCC100M)提前訓練兩個模型,提取圖像和tag(詞向量)的特徵,以便於在GAN中結合(combine)兩者特徵進行訓練。

然後我們用訓練好的兩個模型來提取 MIR Flickr 25,000 dataset的圖像和標籤特徵。在實驗中,去掉了沒有標籤的圖像,一個圖像有多個標籤的(一張圖有多個描述詞),我們在訓練集中重複它,image 和其中一個標籤作爲訓練數據,重複至用上了它的所有標籤。

爲了進行評估,我們爲每幅圖像生成100個樣本,並使用詞彙表中詞彙向量表示的餘弦相似性來找到最接近的前20個單詞。然後我們從100個樣本中選出10個最常見的單詞。下表顯示了用戶分配的標記和註釋的一些示例,以及生成的標記。

 接着簡單敘述了D,G的結構。

The best working model’s generator receives Gaussian noise of size 100 as noise prior and maps it to 500 dimension ReLu layer. And maps 4096 dimension image feature vector to 2000 dimension ReLu hidden layer. Both of these layers are mapped to a joint representation of 200 dimension linear layer which would output the generated word vectors.

The discriminator is consisted of 500 and 1200 dimension ReLu hidden layers for word vectors and
image features respectively and maxout layer with 1000 units and 3 pieces as the join layer which is
finally fed to the one single sigmoid unit.

五、 Future work

這篇文章的工作更像是一種準備工作,闡述了CGAN的潛力,和一些應用場景。在將來的探索中,我們希望提出更好的模型。

在當前的實驗中,我們只單獨使用每個標籤。但是如果同時使用多個標籤(有效地將生成問題作爲“集合生成”問題之一),我們希望獲得更好的結果。另一個明顯的方向是建立一個共同的訓練方案來學習語言模型。以前有工作表明,我們可以學習適合特定任務的語言模型。

六、小結

雖然這是一篇2014年的論文,但可讀性很強,在控制生成器生成數據的模式上很有啓發。文章簡短精煉,實驗結果也比較清晰。這之後,還有很多基於CGAN思想的文章和工作,比如自動生成動漫人物圖像,並可控制人物特徵。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章