《Conditional Generative Adversarial Nets》閱讀筆記

轉載請註明出處:西土城的搬磚日常

原文鏈接:Conditional Generative Adversarial Nets

文章來源:arXiv 2014

一、論文簡介:

本文提出在利用 GAN(對抗網路)的方法時,在生成模型G和判別模型D中都加入條件信息來引導模型的訓練,並將這種方法應用於跨模態問題,例如圖像自動標註等。

二、相關工作介紹:

Generative AdversarialnNets (GAN) :

GAN是一種訓練生成模型的方法,包括兩個互相對抗的模型:一個生成模型G用於擬合樣本數據分布和一個判別模型D用於估計輸入樣本是來自於真實的訓練數據還是生成模型G。

生成器通過映射函數把雜訊映射到數據空間,而判別器的輸出是一個標量,表示數據來自真實訓練數據而非G的生成數據的概率。

G和D非線性的映射函數,例如多層感知機等。

上圖左邊表示對於判別模型D,如果輸入為真實的訓練數據,那麼模型最終的輸出應該接近於1。上圖右側表示如果判別模型的輸入為由G生成的樣本,那麼D的最終輸出應該期望接近於0。

GAN模型沒有損失函數,優化過程是一個「二元極小極大博弈(minimax two-player game)」問題,下面是模型的價值函數:

min_{G}max_{D}{V(D,G)} =E_{xsim p_{data}(x)}[logD(x)]+E_{zsim p_{z}(z)}[log(1-D(G(z)))]

訓練模型D要最大概率地分對真實樣本(最大化log(D(x)),而生成模型G要最小化log(1-D(G(z))),即最大化D的損失。G和D同時訓練,但是訓練中要固定一方,更新另一方的參數,交替迭代,使對方的錯誤最大化。最終,G能估計出真實樣本的分布。在查資料時看過一個比喻:GAN的訓練過程可以被比作警察抓小偷的過程---生成模型G是小偷,判別模型D是警察。也就是說,對於小偷G要儘可能提高自己的手段,來騙過警察D,而對於警察D來說,要提高自己的能力來識別出小偷G。所以,GAN框架下的學習過程就變成了一種生成模型G和判別模型D之間的競爭關係。最終判別模型的準確率等於50%,整個模型狀態達到納什均衡。

但是由於GAN這種不需要預先建模的方法太過自由,如果對於較大圖片,較多像素的情形,這種基於GAN的方法就太不可控了。

三、本文思想

為了解決上述問題,自然就想到給GAN模型加入一些條件約束,也就有了本文的工作Conditional Generative AdversarialnNets(CGAN)。在生成模型G和判別模型D中同時加入條件約束y來引導數據的生成過程。條件可以是任何補充的信息,如類標籤,其它模態的數據等,這樣使得GAN能夠更好地被應用於跨模態問題,例如圖像自動標註。

上圖所示是CGAN的結構。

把雜訊z和條件y作為輸入同時送進生成器,生成跨域向量,再通過非線性函數映射到數據空間。

把數據x和條件y作為輸入同時送進判別器,生成跨域向量,並進一步判斷x是真實訓練數據的概率。

min_{G} max_{D}V(D,G)=E_{xsim p_{data}{(x)}}[logD(x|y)]+E_{zsim p_{z}{(z)}}[log(1-D(G(z|y)))]

四、實驗

1. MNIST數據集實驗

在MNIST上以數字類別標籤為約束條件,最終根據類別標籤信息,生成對應的數字。

生成模型的輸入是100維服從均勻分布的雜訊向量,條件y是類別標籤的one hot編碼。雜訊z和標籤y分別映射到隱層(200和1000個unit),在被第二次映射前,連接了所有120個unit。最終用一個sigmoid層輸出784維(28*28)的單通道圖像。

判別模型把輸入圖像x映射到一個有240個unit和5 pieces的maxout layer,把y映射到有50個unit和5pieces的maxout layer。同時,把所有隱層連在一起成為sigmoid層之前的有240個unit和4pieces的maxout layer。最終的輸出是該樣本x來自訓練集的概率。

2. Flickr數據集上的圖像自動標註實驗(Mir Flickr-25k)

在ImageNet數據集(21000labels)上預訓練模型,採用最後一層全連接輸出作為圖像特徵。文本表示是選取YFCC數據集,預處理後用skip-model訓練成200維的詞向量,除去出現次數少於200的詞,最後剩下247465個詞。

實驗是基於MIR Flickr數據集,利用上面的模型提取圖像和文本特徵。為了便於評價,對於每個圖片我們生成了100的標籤樣本,對於每個生成標籤利用餘弦相似度找到20個最接近的詞,最後是選取了其中10個最常見的詞。

在實驗中,效果最好的生成器是接收100維的高斯雜訊把它映射到500維的ReLu層,同時把4096維的圖像特徵向量映射到一個2000維的ReLu隱層,再上面的兩種表示連接在一起映射到一個200維的線性層,最終由這個層輸出200維的仿標籤文本向量。

判別器是由500維和1200維的ReLu隱層組成,用於處理文本和圖像。最大輸出層是有1000個單元和3spieces的連接層用於給最終的sigmoid層處理輸入數據。

五、簡評

現在大多數網路數據都存在標籤缺失的情況,例如這篇論文用到的MIR Flickr數據集,25000張圖片的標籤中,出現20次以上的詞才1300多,而且其中有很多標籤詞並不與圖片內容有關,例如notmycat,圖片中獎盃信息,蛋糕上人名等詞語。所以文章中提到的能夠自動生成標籤的方法很有意義。但是,分析最後生成標籤的結果,還有有不少生成標籤是與圖像內容無關的,考慮可以想辦法改進。

六、相關論文

七、參考資料

1.近期GAN的模型和理論發展

2.生成式對抗網路GAN研究進展系列

3.深度:生成模型(GAN)的最新進展
推薦閱讀:

詳解:智能醫學影像分析的前沿與挑戰 | 硬創公開課
PS教程-通過海綿工具凸顯圖片中的人物
載入選區與儲存選區
《Fully Convolutional Instance-aware Semantic Segmentation》論文筆記

TAG:机器学习 | 图像处理 | 生成对抗网络GAN |