1. 程式人生 > 實用技巧 >生成對抗網路(Generative Adversarial Nets)

生成對抗網路(Generative Adversarial Nets)

pdf:http://de.arxiv.org/pdf/1406.2661

code:https://github.com/goodfeli/adversarial

摘要

我們提出了一個新的框架,用於通過對抗來估計生成模型過程中,我們同時訓練兩個模型:生成模型G
捕獲資料分佈,以及判別模型D樣本來自訓練資料而非G的概率。訓練G的過程是最大程度地提高D犯錯的可能性。 這個
框架對應於一個兩人零和遊戲。 在任意空間功能G和D,存在唯一的解決方案,其中G恢復訓練資料
分佈和D等於12無處不在。 在定義了G和D的情況下通過多層感知器,可以通過反向傳播訓練整個系統。
不需要任何馬爾可夫鏈或展開的近似推理網路在訓練或樣本生成過程中。 實驗證明通過定性和定量評估框架的潛力

生成的樣本。

1.簡介

深度學習的希望是發現表示概率的豐富的,層次化的模型[2]分佈在人工智慧應用中遇到的各種資料,例如自然影象,包含語音的音訊波形以及自然語言語料庫中的符號。到目前為止,深度學習中最引人注目的成功涉及判別模型,通常是那些將高維,豐富的感覺輸入對映到類別標籤[14,20]。這些驚人的成功主要基於反向傳播和dropout演算法,使用分段線性單位[17,8,9]的梯度特別良好。深度生成模型的的影響比較小,因為難以近似許多難以解決的概率計算在最大似然估計和相關策略中出現,並且由於難以利用生成上下文中分段線性單元的好處。我們提出了一種新的生成模型避免這些困難的估算程式。

在提出的對抗網框架中,生成模型與對手形成了對抗:判別模型,用於學習確定樣本是來自模型分佈還是來自模型分佈資料分發。 生成模型可以被認為類似於偽造者團隊,試圖生產假貨幣並在未經檢測的情況下使用它,而歧視模型是類似於警察,試圖發現假幣。 此遊戲中的競爭推動雙方都改進自己的方法,直到假冒品與真品無法區分為止文章。

該框架可以針對多種模型和優化產生特定的訓練演算法演算法。 在本文中,我們探討了生成模型生成樣本時的特殊情況通過使隨機噪聲穿過多層感知器,判別模型也是多層感知器。 我們將此特殊情況稱為對抗網。 在這種情況下,我們可以訓練兩種模型都僅使用非常成功的反向傳播和輟學演算法[16],僅使用正向傳播從生成模型中抽取樣本。 不必使用近似推斷或馬爾可夫鏈。

2.相關工作

直到最近,大多數有關深度生成模型的工作都集中在提供引數化模型的模型上。概率分佈函式的規範。然後可以通過最大化模型來訓練模型對數似然。在這個模型家族中,也許最成功的是博爾茲曼機器[25]。這種模型通常具有難解的似然函式,因此需要似然梯度的許多近似。這些困難推動了發展“生成機”的模型-模型未明確表示可能性,但能夠生成所需分佈的樣本。生成隨機網路[4]是可以通過精確的反向傳播而不是大量近似進行訓練的生成機Boltzmann機器需要。這項工作擴充套件了生成機器的概念通過消除生成隨機網路中使用的馬爾可夫鏈。

通過生成過程反向傳播衍生物,我們發現:

1132/5000

在我們進行這項工作時,我們還沒有意識到Kingma和Welling [18]和Rezende等。 [23]開發了更通用的隨機反向傳播規則,允許反向傳播通過具有有限方差的高斯分佈,並反向傳播至協方差引數以及均值。這些反向傳播規則可以讓人們瞭解條件發生器的方差,在這項工作中我們將其視為超引數。金馬和Welling [18]和Rezende等。 [23]使用隨機反向傳播訓練變分自動編碼器VAE)。像生成對抗網路一樣,變分自動編碼器將可區分的具有第二神經網路的發電機網路。與生成對抗網路不同,第二個VAE中的網路是執行近似推理的識別模型。 GAN要求通過可見單位進行區分,因此無法對離散資料建模,而VAE要求通過隱藏單元進行區分,因此不能具有離散的潛在變數。其他類似VAE方法已經存在[12,22],但與我們的方法關係不大。

先前的工作還採用了使用判別標準來訓練生成力的方法模型[29,13]。這些方法使用的標準對於深度生成模型來說是很難的。這些深度模型很難估計這些方法,因為它們涉及概率比不能使用下限概率的變分近似來近似。噪聲對比估計(NCE)[13]涉及通過學習噪聲模型來訓練生成模型使模型有用的權重可用於區分固定噪聲分佈中的資料。用一個先前訓練過的模型,因為噪聲分佈允許訓練一系列遞增模型質量。這可以看作是一種非正式競賽機制,其精神與正式競賽相似用於對抗網路遊戲。 NCE的主要侷限性在於其“歧視者”由噪聲分佈和模型分佈的概率密度之比定義,因此需要通過兩種密度進行評估和反向傳播的能力。

先前的一些工作使用了使兩個神經網路競爭的一般概念。最相關的工作是最小化可預測性[26]。在最小化可預測性方面,將神經網路中的每個隱藏單元訓練為與第二個網路的輸出不同,第二個網路的輸出會根據所有其他隱藏單元的值來預測該隱藏單元的值。這項工作在以下三個重要方面與可預測性最小化不同:1)在這項工作中,網路之間的競爭是唯一的訓練標準,並且足以單獨訓練網路。可預測性最小化只是一個正則化器,它鼓勵神經網路的隱藏單元在完成其他任務時在統計上獨立。這不是主要的培訓標準。2)比賽的性質不同。在最小化可預測性方面,比較了兩個網路的輸出,其中一個網路試圖使輸出相似,而另一個網路試圖使輸出不同。有問題的輸出是單個標量。在GAN中,一個網路會生成一個豐富的高維向量,該向量將用作另一個網路的輸入,並嘗試選擇一個輸入另一個網路不知道如何處理。 3)學習過程的規範不同。可預測性最小化被描述為目標函式要最小化的優化問題,學習接近目標函式的最小值。 GAN是基於最小極大博弈而不是優化問題,並且具有一種價值函式,一個代理商試圖最大化,而另一個代理商試圖最小化。遊戲在一個鞍點處終止,該鞍點對於一個玩家的策略而言是最小值,對於另一個玩家的策略而言是最大值。

生成對抗網路有時與“對抗示例”的相關概念相混淆[28]。對抗性示例是通過直接在分類網路的輸入上使用基於梯度的優化找到的示例,以查詢與尚未分類的資料相似的示例。這與當前的工作不同,因為對抗性示例不是訓練生成模型的機制。相反,對抗性示例主要是一種分析工具,用於顯示神經網路以有趣的方式表現,通常會自信地進行分類,即使人類觀察者無法察覺到兩個影象的置信度也很高。此類對抗性示例的存在確實表明,生成式對抗性網路訓練可能是低效的,因為它們表明,有可能使現代的歧視性網路自信地識別某個類別,而無需模仿該類別的任何人類可感知的屬性。

3.對抗網路

當模型都是多層感知器時,對抗建模框架最容易應用。 為了瞭解發生器在資料x上的分佈{p_g},我們定義了一個先驗的輸入噪聲變數% MathType!MTEF!2!1!+- % feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLn % hiov2DGi1BTfMBaeXatLxBI9gBaerbd9wDYLwzYbItLDharqqtubsr % 4rNCHbWexLMBbXgBd9gzLbvyNv2CaeHbnnfiqD0B0HwAJbGeaGqiVu % 0Je9sqqrpepC0xbbL8F4rqqrFfpeea0xe9Lq-Jc9vqaqpepm0xbba9 % pwe9Q8fs0-yqaqpepae9pg0FirpepeKkFr0xfr-xfr-xb9adbaqaae % GaciGaaiaabeqaamGabiabauaakeaacaWGWbWaaSbaaSqaaiaadQha % aeqaaOWaaeWaaeaacaWG6baacaGLOaGaayzkaaaaaa!43FB! \[{p_z}\left( z \right)\]{p_z}\left( z \right),然後將到資料空間的對映表示為G\left( {z;{\theta _g}} \right),其中G是由多層感知器表示的微分函式 帶有引數\[{​{\theta _g}}\]。 我們還定義了第二個多層感知器D\left( {x;{\theta _d}} \right),它輸出一個標量。 D\left( x \right)表示x來自資料而非{p_g}的概率。 我們訓練D來最大化為G訓練樣本和樣本分配正確標籤的可能性。我們同時訓練G來最小化\log \left( {1 - D\left( {G\left( z \right)} \right)} \right)。 換句話說,D和G玩以下具有值函式V\left( {G,D} \right)的兩人博弈遊戲:

在下一部分中,我們將對對抗網進行理論分析,本質上表明,當G和D被賦予足夠的容量(即在非引數範圍內)時,訓練準則允許人們恢復生成資料的分佈。 有關該方法的較不正式,較教學性的說明,請參見圖1。 在實踐中,我們必須使用迭代的數值方法來實現遊戲。 在訓練的內部迴圈中將D優化以完成是計算上的問題,並且在有限的資料集上會導致過度擬合。 取而代之的是,我們在優化D的k個步驟和優化G的一個步驟之間交替進行。只要G的變化足夠緩慢,就可以使D保持在其最佳解附近。 該過程在演算法1中正式提出。

在實踐中,公式1可能無法為G提供足夠的梯度來學習。 在學習的早期,當G較差時,D可以以高置信度拒絕樣本,因為它們明顯不同於訓練資料。 在這種情況下,\log \left( {1 - D\left( {G\left( z \right)} \right)} \right)達到飽和。 與其訓練G以使\log \left( {1 - D\left( {G\left( z \right)} \right)} \right)最小,我們可以訓練G以使\log { D( {G( z )})}最大化。 該目標函式導致G和D動力學的相同固定點,但在學習早期就提供了更強的梯度。

4.理論結果

生成器G隱式地將概率分佈{p_g}定義為當z \sim {p_z}時獲得的樣本G(z)的分佈。 因此,如果給定足夠的容量和訓練時間,我們希望演算法1收斂到一個好的{p_{data}}估計量。 本部分的結果在非引數設定中完成,例如 我們通過研究概率密度函式空間中的收斂性來表示具有無限容量的模型。

我們將在第4.1節中顯示,此博弈遊戲具有{p_g} = {p_{data}}的全域性最優值。 然後,我們將在4.2節中展示演算法1優化公式1,從而獲得所需的結果。

圖1通過同時更新判別分佈(D,藍色,虛線)來訓練生成對抗網路,以便區分生成資料的分佈(黑色,虛線){p_\infty }的樣本與生成分佈{p_g}\left( G \right)的樣本(綠色,實線)。下方的水平線是從z中取樣的域,在這種情況下是均勻的。上面的水平線是x的域的一部分。向上的箭頭表示對映x = G\left( z \right)如何將非均勻分佈{p_g}施加到轉換後的樣本上。 G在高密度區域收縮,在{p_g}低密度區域膨脹。(a) 考慮一個接近收斂的對抗對:{p_g}{p_d_a_t_a}相似,D是部分準確的分類器。(b)在演算法的內部迴圈中,訓練D來區分資料中的樣本,收斂到{D^ * }\left( x \right) = {p_{data}}\left( \infty \right)/\left( {​{p_{data}}\left( \infty \right) + {p_g}\left( \infty \right)} \right)。 (c)在更新G之後,D的坡度已引導G\left( z \right)流向更可能歸類為資料的區域。 (d)經過幾個步驟的訓練,如果G和D具有足夠的能力,則它們將達到無法提高的點,因為{p_g} = {p_{data}}。鑑別器無法區分兩個分佈,即D\left( x \right) = {\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 2}}\right.\kern-\nulldelimiterspace} \!\lower0.7ex\hbox{$2$}}

4.1{p_g} = {p_{data}}全域性優化

我們首先考慮任何給定生成器G的最佳鑑別符D。

命題1:對於固定的G,最優判別器D為:

證明:給定任何生成器G,鑑別器D的訓練準則是使量V\left( {G;D} \right)的值最大化。

對於任何\left( {a,b} \right) \in {^2}\backslash \left\{ {0,0} \right\},函式y \to a\log \left( y \right) + b\log \left( {1 - y} \right)在[0,1]區間中的{a \mathord{\left/ {\vphantom {a {\left( {a + b} \right)}}} \right. \kern-\nulldelimiterspace} {\left( {a + b} \right)}}達到最大值。 鑑別符不需要在Supp\left( {​{p_{data}}} \right) \cup Supp\left( {​{p_g}} \right)之外定義,包括證明。

請注意,D的訓練目標可以解釋為最大化對數似然率以估計條件概率P\left( {Y = y|x} \right),其中Y表示x是來自p_{data}(y = 1)還是來自p_{g}(y = 0) )。 公式1中的博弈遊戲可以重新表示為:

定理1.當且僅當p_{g}=p_{data}時,才能達到虛擬訓練準則C(G)的全域性最小值。 此時,C(G)達到-\log4的值。

證明.對於p_{g}=p_{data}D_G^*\left( x \right) = {1 \mathord{\left/ {\vphantom {1 2}} \right. \kern-\nulldelimiterspace} 2}(考慮式2)。 因此,通過檢查等式4, 在D_G^*\left( x \right) = {1 \mathord{\left/ {\vphantom {1 2}} \right. \kern-\nulldelimiterspace} 2}時,我們發現C\left( G \right) = \log \frac{1}{2} + \log \frac{1}{2} = - \log 4。這是C\left( G \right)的最佳可能值,僅當p_{g}=p_{data}時才達到, 觀察到

通過從C\left( G \right) = V\left( {D_G^*,G} \right)減去該表示式,我們得到:

其中,KL是Kullback-Leibler散度。 我們在前面的表示式中認識到模型的分佈與資料生成過程之間的詹森-夏農差異:

由於兩個分佈之間的詹森-夏農散度總是非負的,並且當它們相等時為零,因此我們證明了{C^*} = - \log 4C(G)的全域性最小值,唯一的解是p_{g}=p_{data},即生成模型完美地複製了資料分佈。

4.2演算法1的收斂

命題2。如果G和D具有足夠的容量,並且在演算法1的每個步驟中,都可以使鑑別器達到給定G的最優值,並更新pg以改進準則

then p_{g} converges to p_{data}.

證明.按照上述準則,將V(G; D)= U(pg; D)視為pg的函式。 注意,U(pg; D)在pg中是凸的。 凸函式的超導數包括在達到最大值時的函式導數。 換句話說,如果f(x)= sup 2A f(x)且f(x)在x中每個凸,則@f(x)2 @f if = arg sup 2A f(x)。 這等效於在給定相應G的情況下在最佳D下計算pg的梯度下降更新。supD U(pg; D)在pg中是凸的,具有在Thm 1中證明的唯一全域性最優值,因此pg的更新足夠小, pg收斂到px,得出證明。

實際上,對抗網路通過函式G(z; g)表示有限的pg分佈族,並且我們優化g而不是pg本身,因此證明不適用。 但是,多層感知器在實踐中的出色效能表明,儘管缺乏理論上的保證,它們還是可以使用的合理模型。

5. 實驗

我們訓練了對抗網路,包括MNIST [21],Toronto Face資料庫(TFD)[27]和CIFAR-10 [19]。 生成器網路使用了整流器線性啟用[17、8]和S型啟用的混合,而鑑別器網路使用了maxout [9]啟用。 輟學[16]被應用於訓練鑑別器網路。 儘管我們的理論框架允許在發電機的中間層使用壓降和其他噪聲,但我們僅將噪聲用作發電機網路最底層的輸入。

我們通過將高斯Parzen視窗擬合到G生成的樣本並報告此分佈下的對數似然來估計pg下測試集資料的概率。通過對驗證集進行交叉驗證來獲得高斯引數。此過程在Breuleux等人中進行了介紹。 [7],用於各種生成模型,對於這些模型,確切的可能性難以把握[24、3、4]。結果報告在表1中。這種估計可能性的方法具有較高的方差,並且在高維空間中的效果不佳,但這是我們所知的最佳方法。可以取樣但無法估計可能性的生成模型的進步直接激勵著人們進一步研究如何評估這種模型。在圖2和3中,我們顯示了訓練後從發電機網路中抽取的樣本。儘管我們沒有斷言這些樣本比通過現有方法生成的樣本更好,但我們認為這些樣本至少與文獻中更好的生成模型具有競爭力,並強調了對抗框架的潛力。

6 優點與缺點

與以前的建模框架相比,此新框架具有優點和缺點。 缺點主要是沒有pg(x)的明確表示,並且在訓練過程中D必須與G很好地同步(特別是,在沒有updateD的情況下G不能被過多訓練,以避免出現“ Helvetica場景” 其中,G將太多的z值摺疊成與x相同的值,以至於沒有足夠的多樣性來建模pdata),就像必須在學習步驟之間保持Boltzmann機器的負鏈更新一樣。 優點是不再需要馬爾可夫鏈,僅使用backprop即可獲得梯度,在學習過程中無需進行推理,並且可以將多種功能整合到模型中。 表2總結了生成對抗網路與其他生成建模方法的比較。

前述優點主要是計算上的。 對抗模型還可以從生成器網路中獲得一些統計上的優勢,該生成器網路不直接使用資料示例進行更新,而僅使用流經鑑別器的梯度進行更新。 這意味著輸入的組成部分不會直接複製到生成器的引數中。 對抗網路的另一個優點是它們可以表示非常尖銳的分佈,甚至可以是簡併的分佈,而基於馬爾可夫鏈的方法則要求分佈有些模糊,以使鏈能夠在模式之間進行混合。

7 結論與未來工作

該框架允許多種擴充套件:

1.可以通過將c作為輸入新增到G和D來獲得條件生成模型p\left( {x|c} \right)

2.通過訓練輔助網路來預測給定x的z,可以執行學習到的近似推理。 這類似於由喚醒睡眠演算法[15]訓練的推理網路,但是具有的優點是,在生成器網路完成訓練之後,可以為固定的生成器網路訓練推理網路。

3.通過訓練一組共享引數的條件模型,可以近似地對所有條件條件p\left( {​{x_S}|{x_\$ }} \right)進行建模,其中S是x的索引的子集。 本質上,人們可以使用對抗性網路來實現確定性MP-DBM的隨機擴充套件[10]。

4.半監督學習:當有限的標記資料可用時,來自鑑別器或推理網路的功能可以提高分類器的效能。

5.效率提高:通過設計更好的協調G和D的方法或確定訓練過程中樣本z的更好分佈,可以大大加快訓練速度。