本文是 GANs 的拓展,在產生 和 判別時,考慮到額外的條件 y,以進行更加「激烈」的對抗,從而達到更好的結果。 算法
衆所周知,GANs 是一個 minmax 的過程:跨域
GAN的原始模型有不少能夠改進的缺點,首當其中就是「模型不可控」。從上面對GAN的介紹可以看出,模型以一個隨機噪聲爲輸入。顯然,咱們很難對輸出的結構進行控制。例如,使用純粹的GAN,咱們能夠訓練出一個生成器:輸入隨機噪聲,產生一張寫着0-9某一個數字的圖片。然而,在現實應用中,咱們每每想要生成「指定」的一張圖片。瀏覽器
而本文經過引入 條件 y,從而將優化的目標函數變成了:網絡
下圖給出了條件產生式對抗網絡的結構示意圖:機器學習
把噪聲z和條件y做爲輸入同時送進生成器,生成跨域向量,再經過非線性函數映射到數據空間。函數
把數據x和條件y做爲輸入同時送進判別器,生成跨域向量,並進一步判斷x是真實訓練數據的機率。學習
實驗優化
1.MNIST數據集實驗編碼
在MNIST上以數字類別標籤爲約束條件,最終根據類別標籤信息,生成對應的數字。spa
生成模型的輸入是100維服從均勻分佈的噪聲向量,條件y是類別標籤的one hot編碼。噪聲z和標籤y分別映射到隱層(200和1000個unit),在被第二次映射前,鏈接了全部1200個unit。最終用一個sigmoid層輸出784維(28*28)的單通道圖像。
判別模型把輸入圖像x映射到一個有240個unit和5 pieces的maxout layer,把y映射到有50個unit和5pieces的maxout layer。而後把全部隱層連在一塊兒映射到240個unit和4pieces的maxout layer,而後通過sigmoid層。最終的輸出是該樣本x來自訓練集的機率。
2.Flickr數據集上的圖像自動標註實驗(Mir Flickr-25k)
首先在完整的ImageNet數據集(21,000個label)上訓練了一個卷積模型做爲特徵提取器。對於詞語表達(原文中是world representation,我的認爲是筆誤,應該是word representation),做者使用YFCC100M數據集中的user-tags, titles和descriptions,利用skip-gram訓練了一個200維的詞向量。訓練中忽略了詞頻小於200的詞,最終詞典大小是247465。
實驗是基於MIR Flickr數據集,利用上面的模型提取圖像和文本特徵。爲了便於評價,對於每一個圖片咱們生成了100的標籤樣本,對於每一個生成標籤利用餘弦類似度找到20個最接近的詞,最後是選取了其中10個最多見的詞。
在實驗中,效果最好的生成器是接收100維的高斯噪聲把它映射到500維的ReLu層,同時把4096維的圖像特徵向量映射到一個2000維的ReLu隱層,再上面的兩種表示鏈接在一塊兒映射到一個200維的線性層,最終由這個層輸出200維的仿標籤文本向量。(噪聲+圖像)
判別器是由500維和1200維的ReLu隱層組成,用於處理文本和圖像。maxout層是有1000個單元和3spieces的鏈接層用於給最終的sigmoid層處理輸入數據。(文本+圖像)
注:
1.one hot編碼
2.maxout(參數k=5)
因此這就是爲何採用maxout的時候,參數個數成k倍增長的緣由。原本咱們只須要一組參數就夠了,採用maxout後,就須要有k組參數。