PaperNotes(5)-Conditional Generative Adversarial Nets

Conditional GAN 論文閱讀筆記

  • Abstract
  • 1 Introduction
  • 2 Related Work
  • 3 Conditional Adversarial Nets
    • 3.1 Generative Adversarial Nets
    • 3.2 Conditional Adversarial Nets
  • 4 Experimental Results
    • 4.1 Unimodal
    • 4.2 Multimodal
  • 5 Future Work
  • 6.思考

文章地址:https://arxiv.org/abs/1411.1784
Mirza M, Osindero S. Conditional Generative Adversarial Nets[J]. Computer Science, 2014:2672-2680.

Abstract

生成對抗網[8]是最近被提出的一種訓練生成模型的新方法。本文介紹了條件版本的GAN,僅通過多增加一個條件輸入數據y。我們希望這個條件能同時約束生成器和判別器。我們展示了本文模型能夠產生以類標簽為條件的MNIST數字。這個模型還可以用來學習多模態模型,和標注圖像–可以為沒有訓練標簽的數據提供描述性的tags.

1 Introduction

最近,生成對抗網被提出,其作為生成模型的一種框架,可以避免許多難以處理的概率計算的困難。

對抗網絡的優點是不需要馬爾可夫鏈,只需要反向傳播獲得梯度,學習過程中不需要推理,并且可以很容易地將各種因素和相互作用納入模型中。

此外,如[8]所示,它可以產生最先進的對數似然估計和逼真的樣本。

在一個無條件的GAN模型中,數據生成的模式不受控制。但是,可以通過附加信息調整指導數據生成過程。條件可以是類標簽,像[5]中的繪畫數據的某些部分,甚至基于不同模態的數據。

本文我們展示了如何構建條件對抗網。在文中我們展示了兩組實驗結果。一個是基于類標簽的MNIST數字數據集,另一個是MIR Flickr 25000數據集,用于多模式學習。

2 Related Work

最近監督神經網絡(尤其是卷積網絡)取得了許多成功[13,17],但要調整這些模型以適應大量的輸出類別仍然是一個挑戰。第二個問題是,迄今為止的大部分工作都集中在學習從輸入到輸出的一對一映射。然而,許多有趣的問題是一對多的概率映射。例如,在圖像標記問題中,可以許多不同的標記賦予給定的同張圖像,并且不同的注釋者可以使用不同的(但通常是同義或相關的)術語來描述同一圖像。

解決第一個問題的一種方法是利用其他模式的信息:例如,使用自然語言語料庫中標簽的向量表示,其中幾何關系在語義上是有意義的。當在這樣的空間中進行預測時,我們受益于:當預測錯誤時,我們仍然“接近”事實(例如預測“桌子”而不是“椅子”)。而且我們可以自然地對訓練期間沒見過的標簽進行預測。文獻[3]等研究表明,即使是從圖像特征空間到詞表示空間的簡單線性映射也可以提高分類性能。

解決第二個問題的一種方法是使用條件概率生成模型,輸入被視為條件變量,一對多映射被實例化為條件預測分布。

[16] 采用類似的方法來解決這個問題,并在MIR flickr25000數據集上訓練一個多模態的深度Boltzmann機器。

此外,在[12]中,作者展示了如何訓練一個有監督的多模態神經語言模型,并且他們能夠為圖像生成的描述性句子。

(這些相關工作的相關性不高吧)

3 Conditional Adversarial Nets

3.1 Generative Adversarial Nets

生成對抗網是一種新的生成式模型。它們由兩個“對抗性”模型組成:一個是捕獲數據分布的生成器G,另一個是判斷樣本來自訓練數據還是生成數據的判別器D。G和D都可以是一個非線性映射函數,比如多層感知器。

為了學習數據x上的生成分布pgp_gpg?,生成器構建了一個從先驗噪聲分布pz(z)p_z(z)pz?(z)到數據空間G(z;θg)G(z;θ_g)G(z;θg?)的映射函數。鑒別器D(x;θd)D(x;θ_d)D(x;θd?)輸出單個標量,表示x來自真實s數據的概率。

G和D同時訓練:調整G的參數使log(1?D(G(z))log(1- D(G(z))log(1?D(G(z))最小化,調整D的參數使logD(X))最大化,以上過程遵循兩人的最小?最大博弈,其值函數為logD(X))最大化,以上過程遵循兩人的最小-最大博弈,其值函數為logD(X))?V(G,D)$:

min?Gmax?DV(D,G)=Ex~pdata(x)[log?D(x)]+Ez~pz(z)[log(1?D(G(z)))]\min_G \max_D V(D,G) = \mathbb{E}_{x\sim p_{data}(x)}[\log D(x)]+ \mathbb{E}_{z\sim p_z(z)}[log(1-D(G(z)))]Gmin?Dmax?V(D,G)=Expdata?(x)?[logD(x)]+Ezpz?(z)?[log(1?D(G(z)))]

3.2 Conditional Adversarial Nets

如果生成器和鑒別器都以一些附加信息為條件y,生成對抗網可以擴展為一個條件模型。y可以是任何類型的輔助信息,例如類標簽或來自其他模式的數據。我們可以通過向D和G輸入y作為附加輸入層來實現條件控制。

在G中,先驗輸入噪聲pz(z)和y被組合在聯合隱藏表示中,并且對抗性訓練框架對hidden representation的構成方式具有很大的靈活性。(目前,我們只是將條件輸入和先驗噪聲作為MLP的一個隱藏層的輸入,但是可以想象使用更高階的交互來允許復雜的生成機制,這在傳統的生成框架中是非常困難的。)

在鑒別器中,x和y被表示為判別函數的輸入(在這種情況下由MLP實現)。

此時兩人極小極大博弈的目標函數如下所示:
min?Gmax?DV(D,G)=Ex~pdata(x)[logD(x∣y)]+Ez~pz(z)[log?(1?D(G(z∣y)))]\min_G \max_D V(D,G)= \mathbb{E}_{x\sim p_{data}(x)}[logD(x|y)]+\mathbb{E}_{z\sim p_z(z)}[\log (1-D(G(z|y)))]Gmin?Dmax?V(D,G)=Expdata?(x)?[logD(xy)]+Ezpz?(z)?[log(1?D(G(zy)))]

(細節沒有說)
圖1展示了一個簡單條件對抗網的結構。
在這里插入圖片描述

4 Experimental Results

4.1 Unimodal

我們在MNIST圖像上訓練了一個條件對抗網絡,條件輸入是類標簽。類標簽采用one-hot 編碼。

對于生成器G,噪聲先驗z是從單位超立方體內的均勻分布提取維數為100向量。ReLu作為隱藏層的激活函數[4,11],層大小分別為200和1000,然后將它們映射到維度為1200的第二個組合隱藏ReLu層。然后我們有一個最終的sigmoid單元層作為我們的輸出,用于生成784維MNIST樣本(28*28)。

判別器D將x映射到具有240個單元和5個pieces的maxout[6]層,而將y映射到具有50個單元和5個pieces的maxout層。這兩個隱藏層映射到一個有240個單元和4個pieces的聯合maxout層,然后被送入sigmoid層。(只要判別器有足夠的能力,判別器的精確結構并不重要;我們發現maxout單元通常非常適合這項任務。)
網絡訓練超參數設置

maxout 通俗理解–本來傳統的MLP算法在第i層到第i+1層,參數只有一組,然而現在不這么干了,在這一層同時訓練n組參數,然后選擇激活值最大的作為下一層神經元的激活值。

模型采用隨機梯度下降法訓練,mini-batch size為100,初始學習率為0.1,指數下降到0.000001,衰減因子為1.00004。同時使用動量系數,初始值為0.5,增加到0.7。概率為0.5的Dropout[9]同時應用于生成器和鑒別器。以驗證集上對數似然的最佳估計作為停止點。(什么的停止點?超參數的停止點?)

表1顯示了MNIST數據集測試數據的高斯Parzen窗口對數似然估計。從每10個類中抽取1000個樣本,并將高斯Parzen窗口(概率密度估計的一種)擬合到這些樣本上。然后,我們使用Parzen窗口分布估計測試集的對數似然(關于如何構造這個估計的更多細節,請參見[8])

我們所提出的條件對抗網絡結果與一些模型的效果是相當,也優于一些方法(包括非條件對抗網絡)。我們提出這些結果更多的是概念的證明,而不是作為有效性的證明,并認為隨著超參數空間和體系結構的進一步探索,條件模型應該匹配或將超過非條件模型的性能。

4.2 Multimodal

(生成詞向量的工作)

像Flickr這樣的照片網站?是一個豐富的標記數據源,這些數據以圖像和它們相關聯的用戶生成元數據(UGM)的形式存在,尤其是用戶標記。

用戶生成的元數據不同于更“規范”的圖像標記模式,因為它們通常更具描述性,并且在語義上更接近人類用自然語言描述圖像的方式,而不僅僅是識別圖像中的對象。UGM的另一個方面是synoymy很流行,不同的用戶可能使用不同的詞匯來描述相同的概念,因此,有一種有效的方法來規范這些標簽變得非常重要。概念詞嵌入[14]在這里是非常有用的,因為相關概念最終由相似的向量表示。

在本節中,我們將演示圖像的自動標記,使用基于圖像特征的條件對抗網絡來生成的標記向量分布來實現。

對于圖像特征,我們在帶有21000個標簽的完整ImageNet數據集上預先訓練了一個類似于[13]的卷積模型[15]。我們使用最后一個有4096個單元的全連接層的輸出作為圖像表示。

對于單詞表示,我們首先從YFCC100M 數據集元數據中收集用戶標記、標題和描述的文本語料庫。在對文本進行預處理和清理之后,我們訓練了一個單詞向量大小為200的skip gram模型[14]。我們省略了詞匯表中出現次數少于200次的單詞,最終得到了一本247465的詞典。

在GAN訓練過程中,我們保持卷積模型和語言模型參數不變。梯度在這兩個模型中的傳遞將作為下一步的工作。

在實驗中,我們使用MIR-flickr25000數據集[10],并使用上面描述的卷積模型和語言模型提取圖像和標簽特征。我們的實驗中省略了沒有任何標記的圖像,并將注釋視為額外的標記。前15萬個樣本被用作訓練集。在訓練集中帶有多標簽的圖像會按相應的tag 重復多次。

為了評估,我們為每個圖像生成100個樣本,并使用詞匯表中單詞與每個樣本向量表示的余弦相似度來找出最接近的20個單詞。然后我們從100個樣本中選出最常見的10個單詞。表4.2顯示了用戶分配的標記和注釋以及生成的標記的一些示例。

最佳的生成器結構為:接收大小為100的高斯噪聲作為噪聲先驗,并將其映射到500維ReLu層。將4096維圖像特征向量映射到2000維ReLu隱層。這兩個層被映射到一個200維線性層的聯合表示,該層將輸出生成的詞向量。

最佳鑒別器結構為:500維和1200維ReLu隱層組成,分別用于詞向量和圖像特征,maxout層由1000個單元和3個塊組成連接層,最后送入單個sigmoid單元。

模型采用隨機梯度下降法訓練,mini-batch size 為100,初始學習率為0.1,指數下降到.000001,衰減因子為1.00004。使用動量梯度下降算法,動量系數的初始值為0.5,增加到0.7。發生器和鑒別器均采用了概率為0.5的drop out 結構。

超參數和體系結構的選擇是通過交叉驗證以及隨機網格搜索和手動選擇的混合(盡管搜索空間有限)

5 Future Work

本文的結果是非常初步的,但它們展示了條件對抗網的潛力,并顯示了有趣和有用的應用前景。

在未來探索中,我們希望探索更復雜的模型,并對其性能和特點進行更詳細和透徹的分析。

在目前的實驗中,我們只單獨使用每個標簽。但是,我們希望通過同時使用多個標簽(有效地將生成問題作為“集合生成”的一個)來實現更好的結果。

另外一個可以深入研究的方向是構建一個聯合訓練方案,用來學習語言模型(語言模型隨著網絡進行訓練)。類似[12]這樣的工作表明,我們可以學習適合特定任務的語言模型。

6.思考

1.本文只是簡單的在GAN的輸入處嵌入了一個條件,并沒有說明由此帶來的訓練上的差別。光從目標函數上來看應該是訓練形式不做改變。

2.與早期調研的李宏毅的條件GAN目標函數有所不同。李宏毅的課件中所用的框架為另一篇文章的工作:Generative Adversarial Text to Image Synthesis [ICML 2016,http://arxiv.org/abs/1605.05396] ,此文是目前公認的條件GAN框架的出處。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444932.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444932.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

蛙泳姿勢教學

偶爾看到分享的一篇日志,記錄下,忙過這段時間努力學蛙泳。 蛙泳配合有一個順口溜,在講解蛙泳動作要領之前先介紹給大家:“劃手腿不動,收手再收腿,先伸胳膊后蹬腿,并攏伸直漂一會兒。”從順口溜中…

leetcode238 除本身以外數組的乘積

給定長度為 n 的整數數組 nums,其中 n > 1,返回輸出數組 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積。 示例: 輸入: [1,2,3,4] 輸出: [24,12,8,6] 說明: 請不要使用除法,且在 O(n) 時間復雜度內完…

C 和c++的一些雜想,想到哪兒寫到哪兒

關于C和c++一直有好多的程序猿在研究,研究區別研究相似的地方,究竟用那個預言好,沒有確定的說法,要看你做什么了。 初始化操作: 在初始化的時候,我們都知道C語言一般都是這樣處理的: int a=12; C++ 呢,除了這樣復制初始化之外還可以直接初始化: int a(12); 啊…

C++(2)--mac使用VScode 進行C++編譯、運行、調試

mac 使用VScode 進行C開發1.編譯的基礎概念2. mac 編譯c代碼2.1 查看編譯器情況2.2 安裝插件C/C,C/C Clang Command Adapte2.3新建一個C project2.3.1本地新建文件夾2.3.2新建mian.cpp文件2.3.3 編寫hello word demo2.4 代碼編譯,運行,調試2.…

boost庫linux編譯安裝

0.下載 1.解壓boost_1_49_0.tar.g然后放到/opt/ 2. 進入解壓后的文件夾 cd /opt/boost_1_49_0 3.將boost安裝配置在/boost/prefix目錄下 不過之前先 mkdir -p /boost/prefix

leetcode136 只出現一次的數字

給定一個非空整數數組,除了某個元素只出現一次以外,其余每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: …

C++(3)--編譯、gdb調試

3--編譯和執行過程1.編譯2.gdb調試gdb 查coreGCC是一個編譯套件,是一個以"gcc"命令為首的源碼施工隊。施工隊的成員有gcc、cpp、as、ld四個成員 預處理–宏定義展開,頭文件引入-- cpp 等價于 gcc -E編譯–C語言->匯編語言–gcc -S匯編–匯…

leetcode94 二叉樹的中序遍歷

給定一個二叉樹,返回它的中序 遍歷。 示例: 輸入: [1,null,2,3] 1 \ 2 / 3 輸出: [1,3,2] 進階: 遞歸算法很簡單,你可以通過迭代算法完成嗎? 遞歸 /*** Definition for a binary tree node.* public class TreeNode …

使用動態鏈接庫

1. 動態鏈接庫是程序運行時加載的庫,當動態鏈接庫正確安裝后,所有的程序都可以使用動態庫來運行程序。動態鏈接庫是目標文件的集合,目標文件在動態鏈接庫中的組織方式是按照特殊方式形成的。庫中函數和變量的地址是相對地址,不是絕對地址,其真實地址在調用動態庫的程序加載…

算法(29)--兩棵樹匹配

樹匹配1.劍指 Offer 26. 樹的子結構2.劍指 Offer 27. 二叉樹的鏡像3.劍指 Offer 28. 對稱的二叉樹1.劍指 Offer 26. 樹的子結構 判斷:小樹B是否是大樹A的一部分,需要以大樹A的每個為根節點進行匹配判斷。 算法:判斷兩個節點是否相等&#xf…

leetcode647 回文子串

給定一個字符串,你的任務是計算這個字符串中有多少個回文子串。 具有不同開始位置或結束位置的子串,即使是由相同的字符組成,也會被計為是不同的子串。 示例 1: 輸入: "abc" 輸出: 3 解釋: 三個回文子串: "a", "…

windows下關于Objective-C開發環境的配置

最近IOS一直很火,也想學習以以下OC開發,一般裝個虛擬機,然后裝個mac,我相信大多數人的機子跑不起來或者很卡,所以之前借鑒了一個文章,就是關于在windows下配置OC開發環境,這里我把自己的安裝說一…

如何選擇商鋪投資

如何選擇商鋪? 選擇商鋪時,需要考慮哪些因素呢? 聶先生表示,要看地段,包括周圍的商業環境、停車方便程度、汽車流量、未來發展前景、視覺效果等因素。此外,地域經濟也很重要,必須要有一個好的投…

PaperNotes(6)-GAN/DCGAN/WGAN/WGAN-GP/WGAN-SN-網絡結構/實驗效果

GAN模型網絡結構實驗效果演化1.GAN1.1網絡結構1.2實驗結果2.DCGAN2.1網絡結構2.2實驗結果3.WGAN3.1網絡結構3.2實驗結果4.WGAN-GP4.1網絡結構4.2實驗結果5.WGAN-SN5.1網絡結構5.2實驗結果小結1.GAN 文章: https://arxiv.org/pdf/1406.2661.pdf 代碼: Py…

Spring Security使用

Spring Security 在web應用開發中,安全無疑是十分重要的,選擇Spring Security來保護web應用是一個非常好的選擇。 Spring Security 是spring項目之中的一個安全模塊,可以非常方便與spring項目無縫集成。特別是在spring boot項目中加入sprin…

nginx python webpy 配置安裝

安裝webpy$ wget http://webpy.org/static/web.py-0.34.tar.gz$ tar xvzf web.py-0.34.tar.gz$ cd web.py-0.34$ sudo python setup.py install安裝 Fluphttp://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz$ wget http://www.saddi.com/software/flup/dist/flup-1.0.2…

PaperNotes(7)-GANs模式坍塌/訓練不穩定

GANs-模式坍塌-訓練不穩定1.訓練不穩定問題相關文章1.1 DCGAN1.2Big-GAN1.3WGAN 、WGAN-GP、SN-WGAN1.4其他工作2.模式坍塌問題相關文章2.1 MAD-GAN2.2 Unrolled GAN2.3 DRAGAN2.4 D2GAN2.5 InfoGAN2.6 Deligan2.7 EBGAN2.8 Maximum Entropy Generators for Energy-Based Model…

thinkphp框架起步認識

先看看thinkphp的文檔吧:這是我在網上找的一個不錯的鏈接地址,對自己有用,同時相信對讀者也有用吧。 http://doc.thinkphp.cn/manual/class.html ThinkPHP 跨模塊調用操作方法(A方法與R方法) 跨模塊調用操作方法 前面說…

leetcode403 青蛙過河

一只青蛙想要過河。 假定河流被等分為 x 個單元格,并且在每一個單元格內都有可能放有一石子(也有可能沒有)。 青蛙可以跳上石頭,但是不可以跳入水中。 給定石子的位置列表(用單元格序號升序表示)&#xff…

PaperNotes(8)-Stein Variational Gradient Descent A General Purpose Bayesian Inference Algorithm

通用貝葉斯推理算法-Stein Variational Gradient DescentAbstract1 Introduction2 Background3 Variational Inference Using Smooth Transforms3.1 Stein Operator as the Derivative of KL Divergence定理3.1引理3.23.2 Stein Variational Gradient Descent4 Related Works5 …