天天看點

與判别網絡對抗的生成網絡 (Generative Adversarial Nets)

Generative Adversarial Nets (GAN)

主線為 Ian J. Goodfellow 的論文 (“Generative Adversarial Nets”) 内容 1。之前一些人譯為“生成式對抗網絡”。但從模型分類 (生成模型和判别模型) 的角度來看,更具體地,改為“與判别網絡對抗的生成網絡”會比較直覺。

另外,後面的“我們”并不指我,而指“Ian J. Goodfellow”等人~

摘要

通過對抗過程來估計生成模型,該過程中同時訓練兩個模型:生成模型 G 獲得資料分布,判别模型D估計訓練資料 (而不是 G ) 中 1 個樣本的機率。 G 的訓練過程為最大化D犯錯的機率。生成模型的估計過程對應一場最小最大的雙人遊戲。任意函數 G 和D的空間中,存在唯一解,此時 G 可恢複訓練資料的分布,而D等于 12 。如果 G 和D定義為多層感覺機,那麼整個系統可通過反向傳播來訓練。訓練和樣本生成時不需要任何的 Markov 鍊或展開的近似推理網絡。

1. 簡介

人工智能應用 (諸如自然圖像,語音波形和自然語言的語料庫)中會遇到各種各樣的資料,深度學習的前景是發現代表這些資料的機率分布的豐富的分層模型。目前,深度學習最大的成功是判别模型。判别模型通常将高維的豐富的感官輸入映射為 1 個類标簽。這些成功主要歸功于反向傳播,Dropout 和使梯度表現不錯的分段線性單元。由于許多難解的機率計算 (采用最大似然估計和相關政策) 難以近似和生成上下文中的分段線性單元難以利用,深度生成模型的影響偏小。我們提出一個新的産生模型的估計過程來回避這些困難。

對抗的網絡架構中,生成模型與它的對手對決:判别模型學習去決定某個樣本是否來自模型分布或資料分布。生成模型可認為類似一個造假團夥,該團夥試圖制造假币,但使用前不檢驗。而判别模型類似警察,試圖檢驗假币。遊戲中的競争促使雙方改進方法,直到假币與真币不可分為止。

該架構可為許多模型和優化方法産生具體的訓練方法。本文中,生成模型通過一個多層感覺機傳遞随機噪聲,且判别模型也是一個多層感覺機。這個特例稱為對抗的網絡。這裡,僅用反向傳播和 Dropout 來訓練模型,生成模型通過前向傳播來生成樣本。不需要近似推理和 Markov 鍊。

2. 相關工作

直到最近,大多數深度生成模型的工作集中于為模型的機率分布函數指定參數。然後可最大化對數似然來訓練模型。這類模型中最成功的可能是深度 Boltzmann 機。它們一般有難解的似然函數,是以要求對似然梯度的大量近似。這些困難推動了“生成機”的發展——不用顯式表示似然的模型仍能從期望的分布中生成樣本。随機的生成網絡正是一個用反向傳播訓練 (而不是 Boltzmann 機要求的大量近似) 的生成機。該工作進一步消除了用于随機的生成網絡的 Markov 鍊。

注:“大量近似”的原文為 numerous approximations,“數值近似”的英文為 numerical approximation。不知為何想起了這個~

利用如下觀測的生成過程來反向傳播梯度:

limδ→0∇xEϵ∼N(0,δ2I)f(x+ϵ)=∇xf(x)

我們開展工作的同時,Kingma,Welling 和 Rezende 等人提出更一般的随機反向傳播規則,允許通過有限方差的高斯分布來反向傳播,且對方差和均值反向傳播。這些反向傳播規則可學到生成器的條件方差 (條件方差視為我們工作的超參數) 。Kingma,Welling 和 Rezende 等人用随機反向傳播來訓練變分自編碼器 (VAEs)。與對抗的生成網絡相似,變分自編碼器為可微分的生成網絡配對第 2 個網絡。與對抗的生成網絡不同的是,VAE 中的第2個網絡是一個使用近似推理的識别模型。GANs 要求對可見單元微分,故不能對離散資料模組化。而 VAEs 要求對隐含單元微分,因而不能對離散的潛在變量模組化。存在其它類似 VAE 的方法,但與我們的方法更不相關。

以前有工作用判别标準來訓練生成模型。這些方式的标準難以用于深度生成模型上。這些方法難以近似深度模型,因為用變分近似無法近似深度模型所涉及的機率的下界。當模型用于從固定的噪聲分布中區分資料時,噪聲對比估計 (NCE) 通過學習該模型的權重來訓練生成模型。用之前訓練好的模型作為噪聲分布,提高了訓練一系列模型的品質。NCE 是本質上與對抗的網絡遊戲中的正式競争相似的一種非正式競争機制。NCE 關鍵的局限為它的“判别器”是由噪聲分布和模型分布的機率密度比重來定義,進而要求評估和反向傳播兩個機率密度。

一些以前的工作已用到兩個網絡競争的一般概念。最相關的工作為可預見性最小化。其中,一個訓練好的神經網絡中的每個隐含單元與第 2 個網絡的輸出不同。給定所有其它隐含單元的值,第2個網絡的輸出可預測該隐含單元的數值。本文的工作與可預測性最小化有 3 處重要的不同:1) 本文工作中,網絡間的競争是唯一的訓練标準,足以訓練網絡。可預測性最小化僅是鼓勵神經網絡中隐含單元在完成其它任務的同時,統計上也互相獨立的一個正則項;競争并不是主要的訓練标準。 2 ) 競争的本質不同。可預測性最小化中,兩個網絡的輸出互相比較,一個網絡試圖使輸出相似,而另一個網絡試圖使輸出不同;輸出為标量。GANs 中,一個網絡生成一個豐富的高維向量來作為另一個網絡的輸入,并嘗試選擇使另一個網絡不知如何判别的向量為輸入。3) 學習過程不同。可預測性最小化被描述為一個最小化目标函數的優化問題,學習去逼近目标函數的最小值。GANs 基于最大最小遊戲,而不是一個優化問題,且一個 Agent 尋求最大化值函數,另一個 Agent 尋求最小化值函數。遊戲在鞍點處終止,此處是關于一個 Agent 的政策的最小值,和關于另一個 Agent 的政策的最大值。

對抗的生成網絡有時曾與“對抗的執行個體”相混淆。對抗的執行個體是指為找出與誤分類的資料相似的執行個體,通過在分類網絡的輸入上直接基于梯度優化,來獲得的執行個體。對抗的執行個體與目前工作是不同的,因為對抗的執行個體不是一個生成模型的訓練機制。相反,對抗的執行個體主要是顯示網絡行為異常 (經常以高置信度将兩幅圖像分為不同類,盡管兩幅圖像對人來說是同類) 的分析工具。對抗的執行個體的存在确實表明訓練對抗的生成網絡可能效率低,因為對抗的執行個體表明,在不模仿某類的人類感覺屬性時,使目前的判别網絡自信地識别該類是可能的。

3. 對抗的網絡

當模型都為多層感覺機時,可非常直接地應用對抗的模型架構。已知資料 x ,為學習産生器的機率分布pg,定義輸入噪聲變量 pz(z) 的先驗,然後表示資料空間的映射為 G(z;θg) ,其中 G 為一個用參數θg的多層感覺機表示的可微函數。同時定義第 2 個輸出為單個标量的多層感覺機 D(x;θd) 。 D(x) 為來自資料 (而不是 pg )的 x 的機率。訓練D來最大化為訓練執行個體和來自 G 的生成樣本配置設定正确标簽的機率;同時,訓練G來最小化 log(1−D(G(z))) 。換句話說, D 和G根據值函數 V(G,D) 來進行雙人的最小最大遊戲:

minGmaxDV(G,D)=Ex∼pdata(x)[logD(x)]+Ez∼pz(z)[log(1−D(G(z)))]256(1)

對抗的網絡的理論分析本質上證明,性能足夠好時 (即無參數限制) ,訓練标準可恢複生成資料的分布來作為 G 和D。下圖為該方法非正式的卻更直覺的解釋。

與判别網絡對抗的生成網絡 (Generative Adversarial Nets)

訓練對抗的生成網絡時,同時更新判别分布 ( D ,藍色虛線) 使D能區分資料生成分布 (黑色虛線) 中的樣本和生成分布 pg ( G ,綠色實線) 中的樣本。下面的水準線為均勻采樣z的區間,上面的水準線為 x 的部分區間。朝上的箭頭顯示映射x=G(z)如何在轉換後的樣本上添加非均勻分布 pg 。 G 在pg高密度區域收縮,且在 pg 的低密度區域擴散。

(a) 考慮一個接近收斂的對抗的模型對: pg 與 pdata 相似,且 D 是個部分準确的分類器。

(b) 算法的内循環中,訓練 D 來判别資料中的樣本,直到收斂至D∗(x)=pdata(x)pdata(x)+pg(x)。

(c) 更新 1 次 G 後,D的梯度引導 G(z) 流向更可能分類為資料的區域。

(d) 訓練若幹步後,如果 G 和D性能足夠,它們接近某個穩定點并無法繼續提高性能,因為此時 pg=pdata 。判别器将無法區分訓練資料分布和生成資料分布,即 D(x)=12 。

實際上,必須對遊戲用疊代的數值方法。訓練中單獨優化 D 計算上不可行,且有限資料集合上會導緻過拟合。相反,優化D k 步和優化 G 1 步交替。結果僅當G緩慢變化時, D 保持在其最優解附近。算法 1 正式表示該過程。

與判别網絡對抗的生成網絡 (Generative Adversarial Nets)

實際上,為學習好G,方程 (1) 可能無法為 G 提供足夠的梯度。學習初期,當G的生成效果很差時, D 會以高置信度來拒絕生成樣本。此時,log(1−D(G(z)))飽和。是以,訓練 G 來最大化logD(G(z)),而不去訓練 G 來最小化log(1−D(G(z)))。該目标函數使 G 和D的動力學穩定點相同,但訓練早期,該目标函數提供了更強大的梯度。

4. 理論結果

當 z∼pz 時獲得樣本 G(z) ,産生器 G 隐式定義機率分布pg來作為 G(z) 的分布。是以,如果模型和訓練時間足夠大,希望算法 1 收斂後可很好地估計 pdata 。通過在機率密度函數空間中學習收斂來表示一個性能無限的模型。

最小最大遊戲的全局最優為 pg=pdata 。

4.1 pg=pdata 的全局最優性

首先任意給定産生器 G ,考慮最優判别器D。

命題 1. 固定 G ,最優判别器D為

D∗G(x)=pdata(x)pdata(x)+pg(x)256(2)

證明. 給定任意生成器 G ,判别器D的訓練标準為最大化目标函數 V(G,D) :

V(G,D)=∫xpdata(x)log(D(x))dx+∫zpz(z)log(1−D(G(z)))dz=∫xpdata(x)log(D(x))+pg(x)log(1−D(x))dx256(3)

對任意 (a,b)∈R2\(0,0) ,當 y∈[0,1] 時,函數 y→alog(y)+blog(1−y) 在 aa+b 處達到最大值。無需在 Supp(pdata)∩Supp(pg) 外定義判别器。證畢。

D 的訓練目标可視為最大化估計條件機率P(Y=y|x)的對數似然。當 y=1 時, x 來自pdata;當 y=0 時, x 來自pg。公式 1 的最小最大遊戲可形式化為:

C(G)=maxDV(G,D)=Ex∼pdata[logD∗G(x)]+Ez∼pz(z)[log(1−D(G∗(z)))]=Ex∼pdata[logD∗G(x)]+Ex∼pg(x)[log(1−D∗G(x))]=Ex∼pdata[logpdata(x)pdata(x)+pg(x)]+Ex∼pg(x)[logpg(x)pdata(x)+pg(x)]256(4)

定理 1. 達到虛拟的訓練标準 C(G) 的全局最優,當且僅當 pg=pdata 。此時, C(G) 達到值 −log14 。

證明. pg=pdata 時, D∗G(x)=12 。由公式 (4) 得 C(G)=log12+log12=−log14 。可以看到這是 C(G) 的最優值,僅當 pg=pdata 時。觀察到

Ex∼pdata[−log12]+Ex∼pg[−log12]=−log14

從 C(G)=V(G,D∗G) 中減去上式,得

C(G)=−log14+KL(pdata∥pdata+pg2)+KL(pg∥pdata+pg2)

其中, KL 為 Kullback-Leibler 散度 2。前面表達中模型分布間的 Jensen-Shannon 散度 3和資料生成過程:

C(G)=−log14+2⋅JSD(pdata∥pg)256(6)

連續随機變量 P 和Q分布之間的 KL 散度為

KL(P∥Q)=∫∞−∞p(x)logp(x)q(x)dx

是以,

====KL(pdata(x)∥pdata(x)+pg(x)2)∫∞−∞pdata(x)logpdata(x)pdata(x)+pg(x)2dx∫∞−∞pdata(x)logpdata(x)pdata(x)+pg(x)dx+log12∫∞−∞pdata(x)dx∫∞−∞pdata(x)logpdata(x)pdata(x)+pg(x)dx+log12Ex∼pdata[logpdata(x)pdata(x)+pg(x)]+log12

同理, =KL(pg(x)∥pdata(x)+pg(x)2)Ex∼pg(x)[logpg(x)pdata(x)+pg(x)]+log12

Jensen-Shannon 散度為

JSD(P∥Q)=12KL(P∥M)+12KL(Q∥M)

其中, M=P+Q2 。

是以,

=JSD(pdata∥pg)12KL(pdata(x)∥pdata(x)+pg(x)2)+12KL(pg(x)∥pdata(x)+pg(x)2)

由于兩個分布間的 Jensen-Shannon 散度總為非負的,當且僅當兩者相等時 JSD 為 0 ,此時C(G)的全局最小值為 C∗=−log14 ,且唯一解為 pg=pdata ,即生成模型完美複制資料的分布。

4.2 算法 1 的收斂性

命題 2. 如果 G 和D性能足夠,且算法 1 的每步,給定 G 時判别器可達到最優,且更新pg來提高标準

Ex∼pdata[log1D∗G(x)]+Ex∼pg[log(1−D∗G(x))]

則 pg 收斂到 pdata 。

證明. 如上述标準考慮 V(G,D)=U(pg,D)為 關于 pg 的函數。注意到 U(pg,D) 為 pg 的凸函數。該凸函數上确界的次導數包括達到最大值處的該函數的導數。換句話說,如果 f(x)=supα∈Afα(x) ,且對每個 α , fα(x) 關于 x 是凸的,那麼如果β=arg1supα∈Afα(x),則 ∂fβ(x)∈∂f 。等價于給定對應的 G 和最優判别D,梯度下降更新 pg 。在定理 1 中證明 supDU(pg,D) 關于 pg 是凸的且有唯一的全局最優解,是以, pg 更新足夠小時, pg 收斂到 px ,證畢。

實際上,對抗的網絡通過函數 G(z;θg) 表示 pg 分布的簇有限,且優化 θg (而不是 pg 本身),是以證明不适用。然而,實際中多層感覺機的不錯表現表明它們為可合理使用的模型,盡管缺少理論保證。

5. 實驗

在資料集 MNIST,Toronto Face Database 和 CIFAR-10 上訓練對抗的生成網絡。生成器用 ReLU 與 Sigmoid 激活單元的混合,而判别器用 maxout 激活單元。訓練判别網絡時用 Dropout。雖然理論架構可在生成器的中間層用 Dropout 和其它噪聲,但這裡僅在生成網絡的最底層用噪聲輸入。

通過對 G 生成的樣本拟合高斯 Parzen 窗 4和計算該分布下的對數似然來估計測試集資料。

給定R為以 x 為中心的正方形,h為正方體邊長。則視窗函數

ϕ(xi−xh)={10|xik−xk|h≤12,k=1,2otherwise

當 ϕ(xi−xh)=1 時,樣本點落入正方形内。估計的Parzen 機率密度為

p(x)=1n∑i=1nϕ(xi−xh)h2

視窗函數泛化為高斯函數時,将 n 個樣本點為中心的高斯函數權重平均,有

p(x)=1n∑i=1n12π‾‾‾√σe−(xi−x)22σ2

驗證集上交叉驗證來獲得高斯分布的參數 σ 。Breuleux 等人引入該過程且用于不同的似然難解的生成模型上。該方法估計似然的方差較大且高維空間中表現不好,但确實目前我們認為最好的方法。生成模型的優點是可采樣而不直接估計似然,進而促進了該模型評估的進一步研究。訓練後的生成樣本如下圖所示。雖然未聲明該方法生成的樣本由于其它方法生成的樣本,但我們相信這些樣本至少和文獻中更好的生成模型相比依然有競争力,也突出了對抗的架構的潛力。

與判别網絡對抗的生成網絡 (Generative Adversarial Nets)

模型樣本可視化。為證模型并未記憶訓練集,最右列顯示與相鄰樣本最接近的訓練執行個體。生成樣本随機繪制。與其它深度生成模型不同的是,這些生成圖像顯示來自生成模型分布的實際樣本,而非給定隐含單元樣本時的條件均值。此外,生成樣本間不相關,因為采樣過程不依賴 Markov 鍊。

a) MNIST; b) TFD; c) CIFAR-10 (全連接配接模型) d) CIFAR-10 (卷積判别器和“反卷積”生成器)

6. 優劣

新架構相比以前的模型架構有其優缺點。缺點主要為 pg 的隐式表示,且訓練期間, D 和G必須很好地同步 (尤其,不更新 D 時G不必過度訓練,為避免“Helvetica 情景”。否則, x 值相同時G丢失過多 z 值以至于模型pdata多樣性不足),正如 Boltzmann 機在學習步間不斷更新。優點是無需 Markov 鍊,僅用反向傳播來獲得梯度,學習間無需推理,且模型中可融入多種函數。
鈣的結構崩潰稱為Helvetica 情景。目前公認的鈣模型基于三螺旋,但實際上它是由 4 個電子 (每個電子由 3 個質子支援) 組成的半永久結構。質子将電信号傳給分子的中心原子 (王後原子)。當王後原子離開分子 (巢)後,将産生災難性影響,會導緻整個該結構倒塌 5。
上述優勢主要在計算上。對抗的模型也可能用資料執行個體,僅用流過判别器的梯度,從間接更新的生成模型中獲得一些統計優勢。這意味輸入部分未直接複制進生成器的參數。對抗的網絡的另一優點是可表示很尖,甚至退化的分布,而基于 Markov 鍊的方法為混合模式而要求模糊的分布。

7. 結論與未來工作

該架構允許許多直接的擴充:

1) 添加 c 至G和 D 的輸入,可獲得條件的生成模型p(x|c)。

2) 給定 x ,為預測z,訓練任意的網絡可學習近似推理。類似于 wake-sleep 算法訓練出的推理網絡,但訓練推理網絡時可能要用到訓練完成後的固定的生成網絡。

3) 來近似模組化所有的條件機率 P(xS|x∖S) ,其中, S 為通過訓練共享參數的條件模型簇的x的索引。本質上,對抗的網絡可用于随機擴充 MP-DBM。

4) 半監督學習:當标簽資料有限時,判别網絡或推理網絡的特征不會提高分類器效果。

5) 效率改善:為協調 G 和D設計更好的方法,或訓練期間确定更好的分布來采樣 z <script type="math/tex" id="MathJax-Element-455">z</script>,進而加速訓練。

本文展示對抗的模型架構的可行性,證明了此研究方向有用。

全文未經校正,有問題歡迎指出。(~ o ~)~zZ

繼續閱讀