PaperNotes(2)-Generative Adversarial Nets
Generative Adversarial Nets-生成對抗網(wǎng)絡(luò)
- Abstract
- 1.Introduction
- 2.Related work
- 3.Adversarial nets
- 4.Theoretical Results
- 4.1全局最優(yōu) pg=pdatap_g=p_{data}pg?=pdata?
- 4.2算法1的收斂性質(zhì)
- 5.Experiments
- 6.Advantagesa and disadvantages
- 7.Conclusions and future work
GAN開篇之作2014年
Abstract
我們通過一個對抗過程( adversarial process)給估計(jì)生成模型(generative models)提出了一個新的框架(最后是為了取生成模型)。在這個新的框架中,我們同時訓(xùn)練兩個模型:一個用于捕獲數(shù)據(jù)分布的生成模型G,一個判別模型D,用于估計(jì)來自訓(xùn)練集數(shù)據(jù)而非模型G產(chǎn)生的數(shù)據(jù)的概率。生成模型G的訓(xùn)練過程:最大化判別模型D產(chǎn)生錯誤的概率(不懂),這個框架與最小化兩人博弈相對應(yīng)。在任意函數(shù)G和D的空間中,存在唯一解;其中,G恢復(fù)訓(xùn)練數(shù)據(jù)分布,D處處等于0.5。在G和D由多層感知機(jī)定義的情況下,整個系統(tǒng)可以利用BP算法進(jìn)行訓(xùn)練。在訓(xùn)練模型或者生成樣本的過程中,不需要馬爾科夫鏈或展開近似推理網(wǎng)絡(luò)( unrolled approximate inference networks)。通過定性和定量分析生成樣本,實(shí)驗(yàn)結(jié)果展示了本框架的潛力。
1.Introduction
深度學(xué)習(xí)有希望發(fā)現(xiàn)豐富的,有層次的模型[2],這些模型表達(dá)了人工智能應(yīng)用領(lǐng)域各種數(shù)據(jù)的概率分布,例如自然圖像、語音音頻波、自然語言庫的符號等數(shù)據(jù)的概率分布。到目前為止,深度學(xué)習(xí)最顯著的成功都涉及到判別式模型,這些判別式模型將高維、豐富的感官輸入映射到類別標(biāo)簽[14,20]。這些驚人的成功主要依賴于BP算法和dropout算法的應(yīng)用,特別是具有良好梯度的分段線性單元。深度生成模型的影響力很小,主要是由于:極大似然估計(jì)和相關(guān)策略中出現(xiàn)了難以解決的概率計(jì)算困難、很難利用生成上下文中使用分段線性單元獲得的好處。我們提出了一個生成估計(jì)模型,分步解決這些困難。
本文提出的對抗網(wǎng)絡(luò)框架,其中的生成模型類似于與對手對峙:判別式模型要區(qū)分樣本是來自數(shù)據(jù)分布還是生成模型分布。(做一個生動的比喻:)生成模型可以認(rèn)為類似于一個造假團(tuán)隊(duì),試圖生產(chǎn)假幣而且在不被發(fā)現(xiàn)的情況下使用它;而判別模型類似于一個警察,試圖檢測假幣。在這個博弈中的競爭驅(qū)使兩個團(tuán)隊(duì)都改進(jìn)他們的方法性能直至真品與偽造品難以辨別(目的是:讓造假團(tuán)隊(duì)的技術(shù)達(dá)到真假難辨)。
本文提出的框架能夠給 許多模型和優(yōu)化算法 產(chǎn)生特定的訓(xùn)練算法。本文中,我們探索了一個特例:將隨機(jī)噪聲輸入到多層感知器的生成模型、判別模型也是一個多層感知器。我們稱這個特殊情況為對抗網(wǎng)絡(luò)。在這情況下,我們可以利用高度成熟的BP算法和dropout算法[16]訓(xùn)練兩個模型;以及利用前向算法通過生成模型,計(jì)算模型生成樣本。(這個過程中)不需要近似推斷和馬爾科夫鏈條。
2.Related work
目前,大多數(shù)關(guān)于深度生成模型的工作都聚焦于 提供概率分布函數(shù)的 參數(shù)化規(guī)范 的模型上。可以通過最大化對數(shù)似然函數(shù)訓(xùn)練模型。在這個模型家族中,最成功的是深度玻爾茲曼機(jī)(Deep Boltzmann machine)[25]。這些模型通常具有難以處理的似然函數(shù),因此需要對似然梯度進(jìn)行大量的近似。這些困難促使“生成機(jī)器”的發(fā)展–即不明確表示似然性,但能夠從所需分布生成樣本的模型。生成隨機(jī)網(wǎng)絡(luò)[4]是生成機(jī)器的一個例子,它可以通過精確的反向傳播而不是Boltzmann機(jī)器所需的大量近似來訓(xùn)練。這項(xiàng)工作通過消除生成隨機(jī)網(wǎng)絡(luò)中使用的馬爾可夫鏈擴(kuò)展了生成機(jī)器的概念。
我們的工作是通過 生成過程 反向傳播導(dǎo)數(shù),通過觀察
lim?σ→0?xE?~N(0,σ2I)f(x+?)=?xf(x)\lim _{\sigma \rightarrow 0} \nabla_{\boldsymbol{x}} \mathbb{E}_{\epsilon \sim \mathcal{N}\left(0, \sigma^{2} \boldsymbol{I}\right)} f(\boldsymbol{x}+\epsilon)=\nabla_{\boldsymbol{x}} f(\boldsymbol{x}) σ→0lim??x?E?~N(0,σ2I)?f(x+?)=?x?f(x)
我們開發(fā)這項(xiàng)工作時,并不知道金馬和韋林[18]和雷森德等人[23]發(fā)展了更一般的隨機(jī)反向傳播規(guī)則,允許通過有限方差的高斯分布進(jìn)行反向傳播,并反向傳播到協(xié)方差參數(shù)和均值。這些反向傳播規(guī)則允許學(xué)習(xí)生成器的條件方差,在本文中,我們將其作為一個超參數(shù)處理。Kingma和Welling[18]和Rezende等人[23]使用隨機(jī)反向傳播訓(xùn)練變分自編碼器(VAE)。與生成性對抗網(wǎng)絡(luò)一樣,變分自編碼器將可微生成網(wǎng)絡(luò)與第二個神經(jīng)網(wǎng)絡(luò)配對。與生成性對抗網(wǎng)絡(luò)不同,vae中的第二個網(wǎng)絡(luò)識別模型,執(zhí)行近似推理工作。gans需要通過可見單元來微分,因此不能對離散數(shù)據(jù)建模;vae需要通過隱藏單元來微分,因此不能有離散的潛在變量。其他類似vae的方法也存在[12,22],但與我們的方法關(guān)系不大。
先前有些工作嘗試使用判別準(zhǔn)則來訓(xùn)練生成模型[29,13]。這些標(biāo)準(zhǔn)則對于深層生成模型來說是難以適用的。這些方法甚至很難用來對深度模型進(jìn)行近似,因?yàn)樗鼈兩婕暗母怕时炔荒芡ㄟ^概率下界用變分推斷來近似。噪聲對比估計(jì)(nce)[13]涉及通過學(xué)習(xí) 使模型有助于從固定噪聲分布 中區(qū)分?jǐn)?shù)據(jù) 的權(quán)重 來訓(xùn)練生成模型。使用先前訓(xùn)練過的模型作為噪聲分布,可以訓(xùn)練一系列高質(zhì)量的模型。這可以看作是一種非正式的競爭機(jī)制,在核心類似于對抗性網(wǎng)絡(luò)博弈中使用的正式競爭。NCE的關(guān)鍵局限性在于它的“鑒別器”是由噪聲分布的概率密度和模型分布的概率密度之比來定義的,因此它需要具有評估和反向傳播兩種密度的能力。
以前一些工作已經(jīng)使用過兩個神經(jīng)網(wǎng)絡(luò)競爭的概念。最相關(guān)的工作是可預(yù)測性最小化[26]。在可預(yù)測性最小化中,神經(jīng)網(wǎng)絡(luò)中的每個隱藏單元都被訓(xùn)練成不同于第二個網(wǎng)絡(luò)的輸出,后者根據(jù)所有其他隱藏單元的值來預(yù)測該隱藏單元的值。本文工作與可預(yù)測性最小化有三個重要的區(qū)別:1)本工作中,網(wǎng)絡(luò)間的競爭是唯一的訓(xùn)練準(zhǔn)則,它本身就足以訓(xùn)練網(wǎng)絡(luò)。可預(yù)測性最小化只是一種正則化方法,它鼓勵神經(jīng)網(wǎng)絡(luò)的隱單元在完成其他任務(wù)時在統(tǒng)計(jì)上獨(dú)立,而不是一個主要的訓(xùn)練準(zhǔn)則。2)競爭的性質(zhì)不同。在可預(yù)測性最小化中,比較了兩個網(wǎng)絡(luò)的輸出,一個網(wǎng)絡(luò)試圖使輸出相似,另一個網(wǎng)絡(luò)試圖使輸出不同。所以其輸出是標(biāo)量。在gans中,生成器網(wǎng)絡(luò)產(chǎn)生一個豐富的高維向量,用作另一個網(wǎng)絡(luò)的輸入,并試圖選擇另一個網(wǎng)絡(luò)不知道如何區(qū)分的輸入。3)學(xué)習(xí)過程的規(guī)格不同。**可預(yù)測性極小化是一個目標(biāo)函數(shù)最小化的優(yōu)化問題,學(xué)習(xí)方法是使目標(biāo)函數(shù)的最小化。**GANS 是基于一個極大極小博弈,而不是一個優(yōu)化問題,它具有一個agent尋求最大化而另一個agent尋求最小化的價(jià)值函數(shù)。博弈在一個鞍點(diǎn)結(jié)束,這個鞍點(diǎn)對于一個玩家的策略是最小的,對于另一個玩家的策略是最大的。
生成性對抗網(wǎng)絡(luò)有時與“對抗性例子”的相關(guān)概念混淆[28]。**對抗性的例子 是通過直接對分類網(wǎng)絡(luò)的輸入使用 基于梯度的優(yōu)化 來找到的例子,以便找到與數(shù)據(jù)相似但又被錯誤分類的例子。**這與目前的研究不同,因?yàn)閷剐缘睦硬皇且环N培養(yǎng)生成模型的機(jī)制。相反,對抗性的例子主要是一種分析工具,用來顯示神經(jīng)網(wǎng)絡(luò)以有趣行為,通常以高度的自信地將兩幅圖像分為兩類,即使人類觀察者無法察覺它們之間的差異。這些對抗性例子的存在確實(shí)表明,生成性對抗性網(wǎng)絡(luò)訓(xùn)練可能效率低下,因?yàn)樗鼈儽砻?#xff0c;現(xiàn)代的鑒別網(wǎng)絡(luò)可以自信地識別一個類,而不必模仿該類的任何人類可感知屬性(人類肉眼區(qū)分的依賴特征)。
3.Adversarial nets
當(dāng)(生成模型和判別模型)都是多層感知器時,對 抗模型框架 能夠被直接應(yīng)用。為了學(xué)習(xí) 生成器 在 數(shù)據(jù) xxx 的分布,我們在輸入噪聲變量 pz(z)p_z(z)pz?(z) 的(基礎(chǔ))上定義了一個先驗(yàn),將 數(shù)據(jù)空間 的映射 表達(dá)成 G(z;θg)G(z;\theta_g)G(z;θg?),其中GGG是由多層感知器表示的可微函數(shù),參數(shù)為θg\theta_gθg?。我們還定義了第二個多層感知器D(X;θd)D(X;\theta_d)D(X;θd?),它的輸出是一個簡單的標(biāo)量。D(x)D(x)D(x)表l示x來自數(shù)據(jù)而不是pgp_gpg?的 概率。我們訓(xùn)練DDD,以最大化給訓(xùn)練樣本和G產(chǎn)生的樣本打上正確標(biāo)簽概率。我們同時訓(xùn)練GGG最小化log(1?D(G(Z)))log(1-D(G(Z)))log(1?D(G(Z)))。換一句話說,DDD和GGG使用值函數(shù)V(G,D)V(G,D)V(G,D)‘開展’一下的雙人最小最大博弈:
(min?Gmax?DV(D,G)=Ex~pdata(x)[logD(x)]+Ez~pz(z)[log(1?D(G(z)))](1)(\min_G\max_DV(D,G)=E_{x\sim p_{data}(x)}[logD(x)]+E_{z\sim p_z(z)}[log(1-D(G(z)))]\tag 1 (Gmin?Dmax?V(D,G)=Ex~pdata?(x)?[logD(x)]+Ez~pz?(z)?[log(1?D(G(z)))](1)
在下一節(jié)中,我們會展示對抗網(wǎng)絡(luò)的理論分析,基本上顯示:訓(xùn)練標(biāo)準(zhǔn)允許人們恢復(fù)數(shù)據(jù)的生成分布,因?yàn)?span id="ze8trgl8bvbq" class="katex--inline">GGG和DDD被賦予足夠的容量(enough capacity) ,例如,在非參數(shù)限制中。本方法的不太正式,更具教學(xué)意義的解釋,請參見圖1。實(shí)際中,我們需要使用迭代的數(shù)值方法來是實(shí)施博弈。在訓(xùn)練的內(nèi)層循環(huán)中‘優(yōu)化D到完成(完美)’在計(jì)算上是不可能實(shí)現(xiàn)的,并且在有限數(shù)據(jù)集合上會導(dǎo)致過擬合。相反,我們在’k步優(yōu)化D’與‘一步優(yōu)化G’之間交替進(jìn)行。這一處理方式,只要G變換的足夠慢;就能使得D保持接近他的最優(yōu)解。這一過程在算法1中正式呈現(xiàn)。
在實(shí)際中,等式1可能無法為‘G學(xué)習(xí)到足夠好’提供足夠的梯度。在學(xué)習(xí)之初,當(dāng)G的性能很差時,D可以‘有高自信’地拒絕樣本;因?yàn)檫@些樣本與訓(xùn)練數(shù)據(jù)明顯不同。在這種情況下,log(1?D(G(z)))log(1-D(G(z)))log(1?D(G(z)))是飽和的。我們可以訓(xùn)練G去最大化log(D(G(z)))log(D(G(z)))log(D(G(z))),而不是訓(xùn)練G去最小化log(1?D(G(z)))log(1-D(G(z)))log(1?D(G(z)))。該目標(biāo)方程 導(dǎo)致了 G和D的相同的動力學(xué)固定點(diǎn),但是,在早期學(xué)習(xí)的時候提供更強(qiáng)的梯度。
4.Theoretical Results
生成器G隱含地將概率分布pgp_gpg?定義為當(dāng)z~pzz\sim p_zz~pz?時所獲得的樣本G(z)的分布。因此,如果給定足夠的容量和訓(xùn)練時間,我們希望 算法1收斂至pdatap_{data}pdata?的良好預(yù)期。這個部分的結(jié)果是在非參數(shù)設(shè)定中完成的,例如,我們通過研究概率密度函數(shù)空間的收斂性 來 表示具有 有限容量的模型。
我們會在4.1節(jié)中展示這個最小最大化博弈對于pg=pdatap_g=p_{data}pg?=pdata?有一個全局最優(yōu)。我們會在4.2節(jié)展示算法1優(yōu)化等式1,從而獲得期待的結(jié)果。
圖1:通過同時更新判別分布(D藍(lán)色,虛線)來訓(xùn)練生成對抗網(wǎng)絡(luò),以便區(qū)分來自數(shù)據(jù)產(chǎn)生分布(黑,虛線)pxp_xpx? 與 模型產(chǎn)生的分布(綠色,實(shí)線)pg(G)p_g(G)pg?(G)。下面的水平線是z 的采樣域,(圖示)這種情況下是均勻的,上面的水平線是x域的一部分。向上的箭頭顯示了映射x=G(z)x=G(z)x=G(z)如何對變換樣本施加非均勻分布。G在高密度區(qū)域收縮,在低密度區(qū)域擴(kuò)展。再解釋4個圖。
4.1全局最優(yōu) pg=pdatap_g=p_{data}pg?=pdata?
首先固定G,尋求D使,GAN目標(biāo)函數(shù)V(G,D)V(G,D)V(G,D)最大化。等價(jià)于求pdatap_{data}pdata?與pgp_gpg?之間的JS散度。
固定D?D^*D?,尋求G使得V(G,D?)V(G,D^*)V(G,D?)最小,就是使pdatap_{data}pdata?與pgp_gpg?之間的JS散度最小化,當(dāng)pg=pdatap_g=p_{data}pg?=pdata?,V(G,D?)V(G,D^*)V(G,D?)最小。
4.2算法1的收斂性質(zhì)
理論分析:嚴(yán)格按照4.1求解,pgp_gpg?會收斂于pdatap_{data}pdata?。但是采用迭代優(yōu)化時,求出最優(yōu)的D?D^*D?之后,迭代一步G0?>G1G_0->G_1G0??>G1?,此時D?D^*D?不是V(G1,D)V(G_1,D)V(G1?,D)的最大值,那么,繼續(xù)迭代將會愈加偏離收斂目標(biāo)。且迭代找到最優(yōu)值需要的次數(shù)很多,所以,在實(shí)際算法中,沒更新k次判別器后更新一次生成器。雖然pgp_gpg?不會嚴(yán)格收斂于pdatap_{data}pdata?,但是,生成器的效果已經(jīng)能夠符合人么的需求。
5.Experiments
我們用一系列數(shù)據(jù)集訓(xùn)練了對抗網(wǎng)絡(luò),包括 MNIST [23],多倫多人臉數(shù)據(jù)庫(TFD)[28]和CIFAR-10 [21]。 生成網(wǎng)絡(luò)使用線性激活[19,9]和 S 形激活的混合激活層,而判別網(wǎng)絡(luò)使用 Maxout[10]激活。隨機(jī)丟棄算法(Dropout)[17]用于訓(xùn)練判別網(wǎng)絡(luò)。 雖然我們的理論框架允許在生成器的中間層使用壓差和其他噪聲,但我們使用噪聲作為生成網(wǎng)絡(luò)最底層的輸入。.
我們通過將高斯 Parzen 窗口擬合到用 G 生成的樣本并在該分布下報(bào)告對數(shù)似然來估計(jì)測試集數(shù)據(jù)在pgp_gpg?下的概率。參數(shù)σ通過驗(yàn)證集上的交叉驗(yàn)證獲得高斯算子。 該程序在 Breuleux 等人的研究中[8]引入并用于各種生成模型,其確切的可能性是不易處理的[25,3,5]。實(shí)驗(yàn)結(jié)果 顯示在表 1 中。這種估計(jì)概率的方法具有稍高的方差,并且在高維空間中表現(xiàn)不佳,但它是我們所知的最佳方法。 可以采樣但不能估計(jì)概率的生成模型的進(jìn)步直接激發(fā)了對如何評估此類模型的進(jìn)一步研究。
6.Advantagesa and disadvantages
與以前的建模框架相比,這個新框架具有優(yōu)點(diǎn)和缺點(diǎn)。缺點(diǎn)主要在于沒有pg(x)p_g(x)pg?(x)的明確表示,并且 D 在訓(xùn)練期間必須與 G 很好地同步(特別是,在不更新 D 的情況下,G 不得過多訓(xùn)練,以避免“Helvetica 場景” “其中 G 將太多的 z 值折疊到 x 的相同值以具有足夠的多樣性來模擬pdatap_{data}pdata? ”,就像Boltzmann 機(jī)器的負(fù)鏈必須在學(xué)習(xí)步驟之間保持最新一樣。優(yōu)點(diǎn)是永遠(yuǎn)不需要馬爾可夫鏈,只有反向傳播,學(xué)習(xí)期間不需要推理,并且可以將多種功能合并到模型中。表 2 總結(jié)了生成對抗網(wǎng)絡(luò)與其他生成建模方法的比較。
上述優(yōu)點(diǎn)主要是在計(jì)算上。對抗模型也可能從生成網(wǎng)絡(luò)中獲得一些統(tǒng)計(jì)優(yōu)勢,而不是直接用數(shù)據(jù)示例更新,而是僅通過流經(jīng)判別器的梯度。這意味著輸入的組件不會直接復(fù)制到生成器的參數(shù)中。對抗性網(wǎng)絡(luò)的另一個優(yōu)點(diǎn)是它們可以表示非常尖銳,甚至是較為初始的分布,而基于馬爾可夫鏈的方法要求分布有些模糊,以便鏈能夠在模式之間混合.
7.Conclusions and future work
該框架有許多直接的擴(kuò)展 :
1.條件生成模型p(x∣c)p(x|c)p(x∣c): 可以通過將 c 作為 G 和 D 的輸入來得到這個后驗(yàn)概率 。
2.給定 x,可以通過訓(xùn)練一個輔助的網(wǎng)絡(luò)來學(xué)習(xí)近似推理,達(dá)到預(yù)測 z 的目的。這和 wakesleep 算法[15]訓(xùn)練出的推理網(wǎng)絡(luò)類似,但是它具有一個優(yōu)勢,就是在生成器訓(xùn)練完成后,這個推理網(wǎng)絡(luò)可以針對固定的生成器進(jìn)行訓(xùn)練。
3.可以通過訓(xùn)練共享參數(shù)的條件模型族來近似地對所有條件概率p(xs∣xs′)p(x_s|x_{s'})p(xs?∣xs′?)進(jìn)行建模,其中 S是 x 下標(biāo)的子集。本質(zhì)上,可以使用敵對網(wǎng)絡(luò)來實(shí)現(xiàn)確定性 MP-DBM[11]的隨機(jī)擴(kuò)展。
4.半監(jiān)督學(xué)習(xí):當(dāng)有限的標(biāo)簽數(shù)據(jù)可用時,來自鑒別器或推理網(wǎng)絡(luò)的特征可以改善分類器的性能。
5.改善效率:通過為協(xié)調(diào) G 和 D 設(shè)計(jì)更好的方法,或在訓(xùn)練期間確定更好的分布來采樣 z,能夠極大的加速訓(xùn)練。
本文已經(jīng)展示了對抗模型框架的可行性,表明這些研究方向是有用的。
總結(jié)
以上是生活随笔為你收集整理的PaperNotes(2)-Generative Adversarial Nets的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Python Cookbook 3rd
- 下一篇: 《Python Cookbook 3rd