生成式模型之 GAN


生成對抗網絡(Generative Adversarial Networks,GANs),由2014年還在蒙特利爾讀博士的Ian Goodfellow引入深度學習領域。2016年,GANs熱潮席卷AI領域頂級會議,從ICLR到NIPS,大量高質量論文被發表和探討。Yann LeCun曾評價GANs是“20年來機器學習領域最酷的想法”。

Generative Adversarial Nets(GAN)

Generative Adversarial Networks論文提出了一種通過對抗過程來評估生成模型。其訓練兩個模型:仿照原始數據分布生成數據的模型G和評估數據來源(原始數據/生成數據)的模型D。訓練G的目標是最大化D犯錯的概率,訓練D的目標是最大化區分真實訓練樣本與G生成的樣本的能力。

如果能夠知道訓練樣本的分布\(p(x)\),那么就可以在分布中隨機采樣得到新樣本,大部分的生成式模型都采用這種思路,GAN則是在學習從隨機變量z到訓練樣本x的映射關系,其中隨機變量可以選擇服從正太分布,那么就能得到一個由多層感知機組成的生成網絡\(G(z;\theta_g)\),網絡的輸入是一個一維的隨機變量,輸出是一張圖片。

GAN的優化是一個極小極大博弈問題,公式如下:

\[\underset{G}{\min} \: \underset{D}{\max}V(D,G) =\mathbb E_{x\sim p_{data}(x)}[logD(x)]+\mathbb E_{z\sim p_{z}(z)}[log(1-D(G(z)))] \]

優化這個函數,使\(p_z(x)\)接近\(p_{data}\).下面首先去掉期望符號:

\[\begin{align} V(G,D)&=\int_x p_{data}(x)\log(D(x))dx+\int_zp_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{align} \]

先固定G,求\(\underset{D}{\max}V(D,G)\),令其導數等於0,求得D的最優解

\[D^*_G(x)={p_{data}(x)\over p_{data}(x)+p_g(x)} \]

現在固定D,優化G:將\(D^*_G\)帶入目標函數。

\[\begin{align} \underset{G}\min V(G,D^*_G) &= \int_x [p_{data}(x)\log{p_{data}(x)\over p_{data}(x)+p_g(x)}+p_g(x)\log{p_g(x)\over p_{data}(x)+p_g(x)}]dx \\ &= \mathbb E_{x\sim p_{data}}[\log{p_{data}(x)\over p_{data}(x)+p_g(x)}]+\mathbb E_{x\sim p_g}[\log{p_g(x)\over p_{data}(x)+p_g(x)}] \\ &= -\log 4+KL(p_{data}\|{p_{data}+p_g\over 2})+KL(p_g\|{p_{data}+p_g\over 2}) \\ &= -\log 4+2JS(p_{data}\|p_g) \end{align} \]

其中KL散度:\(KL(P\|Q)=\mathbb E_{x\sim P}\log{P\over Q}=\int_xP(x)\log{P(x)\over Q(x)}dx\)

JS散度:\(JS(P\|Q)={1\over 2}KL(P\|{P+Q\over 2})+{1\over 2}KL(Q\|{P+Q\over 2})\)

JS散度具有對稱性,而KL沒有。

只要P和Q沒有一點重疊或者重疊部分可忽略,JS散度就固定是常數,而這對於梯度下降方法意味着——梯度為0!此時對於最優判別器來說,生成器得不到梯度信息;即使對於接近最優的判別器來說,生成器也有很大機會面臨梯度消失的問題。

參考 WGAN的介紹

f-GAN

在GAN中可以使用任意的f-divergency,相關論文f-GAN(Sebastian Nowozin, Botond Cseke, Ryota Tomioka, “f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization”, NIPS, 2016)

f-divergence

P和Q是兩個分布,p(x),q(x)是x的分布概率

\[D_f(P||Q)=\int_x q(x)f({p(x)\over q(x)})dx \]

其中f是凸函數且f(1)=0,\(D_f(P||Q)\)衡量了P和Q之間的距離.

\(\forall x,p(x)=q(x)\)時,\(D_f(P||Q)\)具有最小值0.

\(f(x)=x\log x\)時,\(D_f(P||Q)=\int_xp(x)\log({p(x)\over q(x)})dx\),即KL divergence.

\(f(x)=-\log x\)時,\(D_f(P||Q)=\int_xq(x)\log({q(x)\over p(x)})dx\),即reverse KL divergence.

\(f(x)=(x-1)^2\)時,\(D_f(P||Q)=\int_x{(p(x)-q(x))^2\over q(x)}dx\)為Chi Square divergence.

Fenchel Conjugate

每個凸函數f都有一個與之相對的conjugate function f*:

\(f^* (t)=\max_{x\in dom(f)}\{xt-f(x)\}\),且(f *) * = f.

\(f(x)=\max_{t\in dom(f^*)}\{xt-f^*(t)\}\),帶入\(D_f(P||Q)\)得:

\[\begin{align} D_f(P||Q) &=\int_x q(x)f({p(x)\over q(x)})dx \\ &=\int_xq(x)(\max_{t\in dom(f^*)}\{{p(x)\over q(x)}t-f^*(t)\})dx \\ &=\max_D\int_x p(x)D(x)dx-\int_x q(x)f^*(D(x))dx \\ &\text{(t=D(x))} \end{align} \]

因此GAN中

\[D_f(P_{data}\|P_G)=\max_D\{E_{x\sim P_{data}}[D(x)]-E_{x\sim P_G}[f^*(D(x))]\} \]

可以使用任何的f-divergence,如JS,Jeffrey,Pearson.

WGAN

原始版本:weight clipping,改進版本:gradient penalty.

論文:

  • Martin Arjovsky, Soumith Chintala, Léon Bottou, Wasserstein GAN, arXiv preprint, 2017
  • Ishaan Gulrajani, Faruk Ahmed, Martin Arjovsky, Vincent Dumoulin, Aaron Courville,“Improved Training of Wasserstein GANs”, arXiv preprint, 2017

主要思想:使用Earth Mover's Distance(Wasserstein Distance)來評估兩個分布之間的距離.推土機距離表示將一個分布搬運變為另一個分布的最小搬運的量.

之前GAN所采用的JS divergence的缺點是當兩個分布沒有交集時,距離是0,梯度為0,網絡很難學習.Earth Mover's Distance便可以解決這個問題.此時網絡能夠持續學習,但為了防止梯度爆炸,需要weight clipping等手段.

對抗樣本(adversarial examples)

14年的時候Szegedy在研究神經網絡的性質時,發現針對一個已經訓練好的分類模型,將訓練集中樣本做一些細微的改變會導致模型給出一個錯誤的分類結果,這種雖然發生擾動但是人眼可能識別不出來,並且會導致誤分類的樣本被稱為對抗樣本,他們利用這樣的樣本發明了對抗訓練(adversarial training),模型既訓練正常的樣本也訓練這種自己造的對抗樣本,從而改進模型的泛化能力[1]。如下圖所示,在未加擾動之前,模型認為輸入圖片有57.7%的概率為熊貓,但是加了之后,人眼看着好像沒有發生改變,但是模型卻認為有99.3%的可能是長臂猿。
7xkmdr.com1.z0.glb.clouddn.com/gan2.png

對抗樣本跟生成式對抗網絡沒有直接的關系,對抗網絡是想學樣本的內在表達從而能夠生成新的樣本,但是有對抗樣本的存在在一定程度上說明了模型並沒有學習到數據的一些內部表達或者分布,而可能是學習到一些特定的模式足夠完成分類或者回歸的目標而已。

GAN生成的圖片能否用於CNN訓練?

現在來說,應當不可以。由於GAN是從較小的分布中采樣生成的,是真實世界的極小的一部分,所以拿來訓練沒有廣泛的適用性。另外,當前的GAN生成較大的圖片比較困難(32x32以上)。

參考資料


免責聲明!

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



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