Generative Adversarial Nets
NIPS 2014
摘要:本文通過對抗過程,提出了一種新的框架來預測產生式模型,我們同時訓練兩個模型:一個產生式模型 G,該模型可以抓住數據分布;還有一個判別式模型 D 可以預測來自訓練樣本 而不是 G 的樣本的概率.訓練 G 的目的是讓 D 盡可能的犯錯誤,讓其無法判斷一個圖像是產生的,還是來自訓練樣本.這個框架對應了一個 minimax two-player game. 也就是,一方得勢,必然對應另一方失勢,不存在兩方共贏的局面,這個就是這個游戲的規則和屬性。當任意函數 G 和 D的空間,存在一個特殊的解,G 恢復出訓練數據的分布,D 在任何地方都等於 1/2 。當 G 和 D 定義為 multilayer perceptrons, 整個系統可以通過 BP 算法來進行訓練。在訓練或者產生樣本的過程中,不需要馬爾科夫鏈 或者 unrolled approximate inference network 。
引言:深度學習的希望是發現豐富的,等級模式,代表在人工只能應用中遇到的數據的分布,像 natural images,audio waveforms 包含 speech, 自然語言庫的 symbols。到目前為止,最有影響力的 DL 的應用已經涉及到 discriminative models,通常都是將高維,豐富的輸入到一個類別標簽。 Deep discriminative models 沒有那么大的影響力,因為預測許多很難搞定的概率計算是相當困難的,例如:最大似然估計和相關的策略;由於結合 piecewise linear units 的優勢也很困難。我們提出了一種新的 generative model estimation procedure 避開了這些困難。
在這個提出的 adversarial nets framework 中,產生式模型需要和一個敵手進行對抗:一個 discriminative model 需要學習是否是一個樣本是來自於 model distribution 或者 是 data distribution 。這個產生式模型需要看作是造假的團伙,企圖制造假幣;而 discriminative model 類似於 警察,試着檢查出假鈔。這個游戲競爭的結果就是,使得兩個隊伍的不斷的改善其自身的模型,而產生的假鈔變成名副其實的藝術品。(做到真假難辨)
這個 framework 可以產生用於許多類別的模型和優化算法 特定的 training algorithm 。我們探索一種特殊的情況,稱為 adversarial nets。
Adversarial nets :
The adversarial modeling framework 是最直接的方式,當 models 都是多層感知機(multilayer perceptrons)。為了在數據 x 上學習到 generator 的分布 $p_g$,我們在輸入 noise variable $p_z(z)$ 定義一個 prior,然后表示到 data space 的 $G(z; \theta_g)$ 一個 mapping,其中 G 是一個 differentiable function,由多層感知機 $D(x; \theta_d)$ 表示。D(x)表示 x 來自 data 而非 $p_g$ 的概率。我們訓練 D 來最大化賦予 training example 和 來自 G 的樣本的概率。我們同時訓練 G 來最小化 $log(1-D(G(z))): $
換句話說,就是 D 和 G 采用下面的 two-player minimax game with value function V(G, D) :
在接下來的一節,我們展示 adversarial nets 的理論分析,本質上展示了訓練的准則(training criterion)允許恢復出數據產生分布 as G and D are given enough capacity, i.e. the non-parametric limit. 圖 1 給出了一個很好的展示,實際上,我們必須以一種迭代的方式來進行這個游戲。優化 D 在 訓練的內部訓練中完成的代價是非常昂貴的,在有限的數據集上會導致 overfitting。相反,我們相互間隔 k steps 來優化 D ,one step 來優化 G 。這使得 D 保持在其 optimal solution 附近,只要 G 改變的足夠緩慢。這個策略類比 SML/PCD training,這個過程總結在算法 1 中。
實際上,Equation 1 可能並沒有提供足夠的梯度來使得 G 學習的足夠好。在學習的早期,G 是 poor 的,D 可以高置信度的方式 reject samples,因為他們和原始數據很明顯不相同。在這種情況下,$log(1-D(G(z)))$ saturates (飽和了)。Rather than training G to minimize $log(1-D(G(z)))$ , 我們可以訓練 G 來最大化 $log D(G(z))$ 。這個目標函數 results in the same fixed point of the dynamics of G and D but provides much stronger gradients early in learning . (在早期,提供了非常強的梯度信息)
圖 1. 這四個小圖展示了對抗訓練的過程。其中,這幾條線的意思分別是:
------ the discriminative distribution (D, blue, dashed line) 藍色的虛線 表示判別式的分布 ;
------ the data generating distribution (black, dotted line) $p_x$ 黑色的點線 表示 數據產生的分布 ;
------ the generative distribution $p_g (G)$ 綠色的實線 。
------ the lower horizontal line is the domain from which z is sampled . 底部的水平線 是采樣 z 的 domain
------ the horizontal line above is part of the domain of x . 上部的水平線 是 x domain 的部分 。
------ the upward arrows show the mapping x = G(z) imposes the non-uniform distribution $p_g$ on transformed samples. 向上的箭頭展示了 mapping x = G(z),這個映射是非均勻分布 到 轉換的samples。
(a)考慮一個接近收斂的 對抗 pair。$p_g$ 和 $p_{data}$ 相似;D 是一個有一定准確性的 classifier。
(b)在算法 D 的內部循環被訓練用來 從數據中判斷出 samples,收斂到 $D^*(x) = \frac{p_{data}(x)}{p_{data}(x) + p_g(x)}$ 。
(c)在更新 G 之后,D 的梯度已經引導 G(z) to flow to regions that are more likely to be classified as data.
(d)在幾次訓練之后,如果 G 和 D 有足夠的能力,他們會達到一個平衡,使得兩者都已經無法進一步的提升自我,即:$p_g = p_{data}$ 。這個時候,discriminator 已經無法判別兩個分布的區別,也就是說,此時的 D(x) = 1/2 。
Theoretical Results .
作者表明 the minimax game has a global optimum for $p_g = p_{data}$。
Global Optimality of $p_g = p_{data}$:
對於任意一個 generator G,我們考慮最優的 discriminator D 。
Proposition 1 . 對於 fixed G,最優的 discriminator D 是 :
Proof . 對於判別器 D 的訓練准則,給定任意的 generator G,為了最大化 quantity V(G, D)
對於任意的 $ (a, b) \in R^2 \ {0, 0} $,函數 y ->a log(y) + b log(1-y) 在 $\frac{a}{a+b}$ 達到其最大值。The discriminator 不需要在 $Supp (p_{data} U Supp(p_g))$ 之外進行定義。
訓練 D 的目標可以表達為:maximizing the log-likelihood for estimating the conditional probability $P(Y = y|x)$,其中 Y 表示是否 x 來自於 $p_{data}$ (with y = 1) 還是 $p_g$ (with y = 0)。Equation 1 的 minimax game 可以表達為:
Experiments :