Generative Adversarial Nets(生成對抗網絡)


  生成對抗網絡通過一個對抗步驟來估計生成模型,它同時訓練兩個模型:一個是獲取數據分布的生成模型$G$,一個是估計樣本來自訓練數據而不是$G$的概率的判別模型$D$。$G$的訓練步驟就是最大化$D$犯錯的概率。這個框架對應於一個二元極小極大博弈。在任意函數$G$和$D$的空間中,存在唯一解,$G$恢復數據分布,$D$總是等於1/2。在$G$和$D$通過多層感知機定義的情況下,整個系統通過反向傳播訓練。在訓練或者生成樣本過程中,不需要任何馬爾科夫鏈或者展開近似推理網絡。通過對生成樣本定性和定量分析,實驗證明了框架的潛力。

3 對抗網絡

  當模型都是多層感知機時,對抗模型框架最直接應用。為了在數據$x$上學習生成器的分布$p_{g}$,在輸入噪聲變量$p_{z}(z)$上定義了一個先驗,然后將數據空間的映射表示為$G(z;\Theta_{g})$,其中$G$是一個由多層感知機表示的可微函數,參數為$\Theta_{g}$。也定義了第二個多層感知器$D(x;\Theta_{d})$,其輸出一個標量。$D(x)$表示$x$來自數據而不是$p_{g}$的概率。訓練$D$以最大化為訓練樣本和來自$G$的樣本分配准正確的標簽的概率。同時訓練$G$來最小化$log(1-D(G(z)))$。換句話說,$D$和$G$使用值函數$V(G,D)$來進行下面的二元極小極大博弈:

\begin{equation} \min \limits_{G} \max \limits_{D} V(D,G)=\mathbb{E}_{x \sim p_{data}(x)}[logD(x)]+\mathbb{E}_{z \sim p_{z}(z)}[log(1-D(G(z)))] \end{equation}

  下節將提出對抗網絡的理論分析,基本展示了訓練准則允許人們恢復數據生成分布,因為$G$和$D$被賦予了足夠的能力,也就是沒有參數限制。有關方法不太正式,但是更具教學意義的解釋,請參見圖1。在實踐中,必須使用一種迭代的數字化的方法實現游戲。在訓練的內循環上優化$D$到完成在計算上是禁止的,並且有限的數據集將導致過擬合。相反,交替優化$D$k步和優化$G$1步。這將導致$D$保持在最優解附近,只要$G$足夠緩慢地變化。該步驟在算法1中正式呈現。

  在實踐中,公式1不能為$G$提供足夠的梯度來學好。在學習早期,$G$很糟糕,$D$可以以高可信度拒絕樣本,因為它們和訓練數據有明顯的不同。在這種情況下,$log(1-D(G(z)))$是飽和的。可以最大化$logD(G(z))$來訓練$G$,而不是最小化$log(1-D(G(z)))$。這個目標函數將導致$G$和$D$動力學的相同固定點,但是在學習早期提供更健壯的梯度。

圖1:同時更新判別分布(D,藍虛線)來訓練生成對抗網絡,以便於能鑒別樣本是來自數據分布$p_{x}$(黑點線)還是生成的分布$p_{g}(G)$(綠實線)。向上的箭頭展示了映射$x=G(z)$如何在轉化樣本上強加非均勻分布$p_{g}$。$G$在高密度區域收縮,在低密度區域擴展。(a)視為一個對抗趨於收斂:$p_{g}$相似於$p_{data}$,並且$D$是一個部分准確的分類器。(b)在算法的內環,訓練$D$以從數據中區分樣本,收斂到$D^*(x)=\frac{p_{data}(x)}{p_{data}(x)+p_{g}(x)}$。(c)在更新$G$之后,$D$的梯度會引導$G(z)$更傾向於將輸入分類為數據。(d)訓練幾步之后,如果$G$和$D$有足夠的容量,它們都達到一個不能再改善的點,因為$p_{g}=p_{data}$。判別器不能區分兩個分布,即$D(x)=\frac{1}{2}$。

4 理論結果

  生成器$G$隱含地將概率分布$p_{g}$定義為當$z \sim p_{z}$時獲得的樣本$G(z)$的分布。因此,如果給定足夠的容量和訓練時間,想要算法1收斂成$p_{data}$的好估計器。這部分的結果是在非參數設置中得到,例如,通過研究概率密度函數空間的收斂來表示具有無限容量的模型。

  4.1節將展示這個二元極小極大博弈有個最優解$p_{g}=p_{data}$。然后在4.2節展示算法1優化公式1,從而獲得所需結果。

4.1 $p_{g}=p_{data}$的全局優化

  首先考慮給定任意生成器$G$的最佳判別器$D$。

  命題 1。對於固定的$G$,最佳判別器$D$是

\begin{equation} D^{*}_{G}(x)=\frac{p_{data}(x)}{p_{data}(x)+p_{g}(x)} \end{equation}

  證明。判別器$D$的訓練准則是,給定任意生成器$G$,最大化$V(G,D)$

\begin{equation}\begin{aligned} V(G,D) &= \int_{x}p_{data}(x)log(D(x))dx+\int_{z}p_{z}(z)log(1-D(g(z)))dz \\ &= \int_{x}p_{data}(x)log(D(x))+p_{g}(x)log(1-D(x))dx \end{aligned}\end{equation}

  對於任意$(a,b) \in \mathbb{R^2} \setminus \{0,0\}$,函數$y \to alog(y)+blog(1-y)$在$[0,1]$的$\frac{a}{a+b}$處得到最大值。判別器不需要在$Supp(p_{data})∪Supp(p_{g})$之外定義,證明結束。

  注意$D$的訓練目標可以解釋為最大化條件概率$P(Y=y|x)$的似然,其中$Y$表明$x$來自$p_{data}$($y=1$),還是來自$p_{g}$($y=0$)。公式1的極小極大博弈現在可以重新表述為:

\begin{equation}\begin{aligned} C(G) &= \max \limits_{D} V(G,D) \\ &= \mathbb{E}_{x \sim p_{data}}[logD^*_{G}(x)] + \mathbb{E}_{z \sim p_{z}}[log(1-D^*_{G}(G(z)))] \\ &= \mathbb{E}_{x \sim p_{data}}[logD^*_{G}(x)] + \mathbb{E}_{x \sim p_{g}}[log(1-D^*_{G}(x))] \\  &= \mathbb{E}_{x \sim p_{data}}[log \frac{p_{data}(x)}{p_{data}(x)+p_{g}(x)}] + \mathbb{E}_{x \sim p_{g}}[log \frac{p_{g}(x)}{p_{data}(x)+p_{g}(x)}] \end{aligned}\end{equation}

  定理1。當且僅當$p_{g}=p_{data}$時,實現實際訓練准則$C(G)$的全局最小。在這個點,$C(G)$的值為$-log4$。

  證明。對於$p_{g}=p_{data}$,$D^*_{G}(x)=\frac{1}{2}$。因此,通過在$G^*_{G}(x)=\frac{1}{2}$觀察公式4,發現$C(G)=log \frac{1}{2}+log \frac{1}{2}=-log4$...

4.2 算法1的收斂

  命題2。如果$G$和$D$有足夠容量,並且在算法的每一步,允許判別器到達給定$G$的最優,以及更新$p_{g}$以便改善以下准則:

\begin{equation} \mathbb{E}_{x \sim p_{data}}[logD^*_{G}(x)] + \mathbb{E}_{x \sim p_{g}}[log(1-D^*_{G}(x))] \end{equation}

  然后$p_{G}$收斂到$p_{data}$

  在實踐中,對抗網絡通過函數$G(x;\Theta_{g})$表示一組有限的$p_{g}$分布,並且優化$\Theta_{g}$而不是$p_{g}$本身,因此證明不可用。然而,多層感知機在實踐中傑出的性能表明,盡管缺少理論保證它們仍然是一個合理的模型。

5 實驗

  在一個廣泛的數據集上訓練對抗網絡,包括MNIST,the Toronto Face Database(TFD)和CIFAR-10。生成器混合使用rectifier linear activations和sigmoid激活函數,而判別器使用maxout激活。在訓練判別器的時候使用了Dropout。雖然理論框架允許在生成器的中間層使用dropout和其它噪聲,但是噪聲僅僅作為生成器最低層的輸入。

表1:基於Parzen窗口的log似然估計。在MNIST上報告的數字是測試上樣本的平均對數似然,和在示例中計算的平均值的標准差。

  通過擬合一個高斯Prazen窗口到由$G$生成樣本和報告在這個分布下的似然概率,來估計測試集的概率。通過驗證集上的交叉驗證獲得$\sigma$參數。結果如表1所示。這個估計似然的方法有點高方差,並且在高維空間性能不好,但是就我們所知它仍然是最好的方法。可以采樣但不能直接估計似然的生成模型的進步直接激發了如何評估此類模型的進一步研究。圖2和3展示了訓練之后生成器畫出的樣本。盡管沒有宣稱這些樣本比其它現有模型生成的更好,但是相信這些樣本至少與文獻中最好的生成模型相當,並且對抗模型更具有潛力。

圖2:模型中樣本的可視化。最右邊的列顯示了最近的相鄰樣本的訓練示例,以證明沒有記住訓練集。樣本是隨機生成,沒有挑選。不想大多數其它深度生成模型的可視化,這些圖像展示了模型分布真是樣本 ,非條件意味着給定的隱藏單元樣本。此外,這些樣本是不相關的,因為采樣過程不要求馬爾科夫鏈。a)MNIST b)CIFAR-10(全連接模型) d)CIFAR-10(卷積判別器和解卷積生成器) 

圖3:通過在完整模型的$z$空間的坐標之間線性插值獲得的數字

6 優點和缺點

  這個框架和先前的模型相比有優點也有缺點。缺點主要在於$p_{g}(x)$沒有明確表示,並且在$G$訓練期間$D$必須很好地同步(尤其,沒有更新$D$的時候,$G$一定不能訓練的太多,防止“the Helvetica scenario”即$G$將太多的z值折疊到x來有足夠的多樣性來模擬$p_{data}$),正如一個玻爾茲曼機的負鏈必須在學習步驟之間保持最新。優點是不需要馬爾科夫鏈,僅僅使用反向傳播獲得梯度,在學習期間也不需要推理,並且將多種函數合並到模型。表2總結了生成對抗網絡和其它生成模型的比較。 

  上述優點主要是計算。對抗模型也從生成網絡獲得一些統計優勢,不是直接使用數據示例更新, 而是流經判別器的梯度。這意味着輸入的組件不是直接復制到生成器的參數。另一個對抗網路的優點是它們可以表示非常清晰甚至退化的分布,而基於馬爾科夫鏈的方法要求分布有點模糊以便鏈能夠在模式之間混合。            

表2:生成建模中的挑戰:總結了涉及模型每個主要操作的深度生成建模的不同方法遇到的困難。

7 總結和未來的工作

  這個框架允許許多直接的擴展:

  1. 通過將$c$添加到$C$和$D$的輸入獲得一個條件生成模型$p(x|c)$

  2. 可以通過訓練一個輔助網絡來預測給定$x$的$z$,來進行可學習的近似推斷。這類似於由wake-sleep算法訓練的推理網絡,但具有以下優點:在生成器網絡完成訓練之后,針對固定的生成器可以訓練一個推理網絡。

  3. 通過訓練一組共享參數的條件模型,可以近似地共享所有條件$p(x_{s}|x_{slashed{D}})$,其中$S$是$x$索引的子集。從本質上說,可以使用對抗網絡來實現確定性MP-DBM的隨機擴展。

  4. 半監督學習:當有限的標簽可用時,判別器的特征或者推理網絡可以改善分類器的性能。

  5. 效率改善:通過設計更好的方法來協調$G$和$D$或者在訓練期間更好地分配樣本$z$可以加速訓練。     

二元博弈的特點是什么?

  兩個具有互斥性的優化目標或任務,在博弈的過程中,保持一方不變優化另一方,如此交替,動態優化自身共同進步。兩個目標分別給對方提供一把“尺”作為衡量,博弈過程中,“尺”會越來越嚴格,以此形成反饋,最終實現兩者最優。

互斥性體現在哪?

  兩個目標相反,必定是若一方強,則另一方弱。不可能在優化過程中始終保持一強一弱,這樣強的一方就無法得到反饋,從而優化自己,所以是交替強弱。若一方強一方弱,則是一方始終在追趕另一方。

極限/最優的判斷?

  生成對抗網絡的極限在於,生成器生成了和真圖一樣的假圖,使得判別器對於無論來自自然圖像還是生成圖像的輸出都為1/2。?                                                             


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM