生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

引言

近年來,人工智能與深度學習已經成為耳熟能詳的名詞。一般而言,深度學習模型可以分為判別式模型與生成式模型。由於反向傳播(Back propagation, BP)、Dropout等算法的發明,判別式模型得到了迅速發展。然而,由於生成式模型建模較為困難,因此發展緩慢,直到近年來最成功的生成模型——生成式對抗網絡的發明,這一領域才煥發新的生機。

生成式對抗網絡(Generative adversarial network, GAN)自Ian Goodfellow[1]等人提出後,就越來越受到學術界和工業界的重視。而隨著GAN在理論與模型上的高速發展,它在計算機視覺、自然語言處理、人機交互等領域有著越來越深入的應用,並不斷向著其它領域繼續延伸。因此,本文將對GAN的理論與其應用做一個總結與介紹。

GAN的基本思想

GAN受博弈論中的零和博弈啟發,將生成問題視作判別器和生成器這兩個網絡的對抗和博弈:生成器從給定噪聲中(一般是指均勻分佈或者正態分佈)產生合成數據,判別器分辨生成器的的輸出和真實數據。前者試圖產生更接近真實的數據,相應地,後者試圖更完美地分辨真實數據與生成數據。由此,兩個網絡在對抗中進步,在進步後繼續對抗,由生成式網絡得的數據也就越來越完美,逼近真實數據,從而可以生成想要得到的數據(圖片、序列、視頻等)。

如果將真實數據和生成數據服從兩個分佈,那麼如圖所示

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖1 GAN的基本思想

藍色分佈為生成分佈,綠色分佈為真實分佈,D為判別器,GAN從概率分佈的角度來看,就是通過D來將生成分佈推向真實分佈,緊接著再優化D,直至到達圖1(d)所示,到達Nash均衡點,從而生成分佈與真實分佈重疊,生成極為接近真實分佈的數據。

GAN的基本模型

設z為隨機噪聲,x為真實數據,生成式網絡和判別式網絡可以分別用G和D表示,其中D可以看作一個二分類器,那麼採用交叉熵表示,可以寫作:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中第一項的logD(x)表示判別器對真實數據的判斷,第二項log(1 − D(G(z)))表示則對數據的合成與判斷。通過這樣一個極大極小(Max-min)博弈,循環交替地分別優化G和D來訓練所需要的生成式網絡與判別式網絡,直到到達Nash均衡點。

GAN與Jensen-Shannon散度

對於原目標函數,在生成器G固定參數時,可以得到最優的判別器D。對於一個具體的樣本,它可能來自真實分佈也可能來自生成分佈,因此它對判別器損失函數的貢獻是:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中pr為真實分佈,pg為生成分佈。令上式關於D(x)的導數為0,可以得到D(x)的全局最優解為:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

對於gan 的生成器的優化函數可以寫成:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

將最優判別器代入,可以得到生成器的優化函數為:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

此處簡單回顧一下JS散度與KL散度:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

顯然,(1)式與JS散度形式相似,可以轉換成:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

綜上,可以認為,當判別器過優時,生成器的loss可以近似等價於優化真實分佈與生成器產生數據分佈的JS散度。

生成器與判別器的網絡

Ian在2014年提出的樸素GAN在生成器和判別器在結構上是通過以多層全連接網絡為主體的多層感知機(Multi-layer Perceptron, MLP) 實現的,然而其調參難度較大,訓練失敗相當常見,生成圖片質量也相當不佳,尤其是對較複雜的數據集而言。

由於卷積神經網絡(Convolutional neural network, CNN)比MLP有更強的擬合與表達能力,並在判別式模型中取得了很大的成果。因此,Alec等人[2]將CNN引入生成器和判別器,稱作深度卷積對抗神經網絡(Deep Convolutional GAN, DCGAN)。圖2為DCGAN生成器結構圖。本質上,DCGAN是在GAN的基礎上提出了一種訓練架構,並對其做了訓練指導,比如幾乎完全用卷積層取代了全連接層,去掉池化層,採用批標準化(Batch Normalization, BN)等技術,將判別模型的發展成果引入到了生成模型中。此外,[2]還並強調了隱藏層分析和可視化計數對GAN訓練的重要性和指導作用。

DCGAN雖然沒有帶來理論上以及GAN上的解釋性,但是其強大的圖片生成效果吸引了更多的研究者關注GAN,證明了其可行性並提供了經驗,給後來的研究者提供了神經網絡結構的參考。此外,DCGAN的網絡結構也可以作為基礎架構,用以評價不同目標函數的GAN,讓不同的GAN得以進行優劣比較。DCGAN的出現極大增強了GAN的數據生成質量。而如何提高生成數據的質量(如生成圖片的質量)也是如今GAN研究的熱門話題。

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖2 DCGAN生成器網絡結構圖

GAN的模型改進

然而,GAN自從2014年提出以來,就存在著訓練困難、不易收斂、生成器和判別器的loss無法指示訓練進程、生成樣本缺乏多樣性等問題。從那時起,很多研究人員就在嘗試解決,並提出了改進方案,切實解決了部分問題,如生成器梯度消失導致的訓練困難。當然也還有很多問題亟待解決,如生成樣本的評價指標問題。本文將簡單闡述幾個較為突出的的改進措施。

WGAN

與前文的DCGAN不同,WGAN(Wasserstein GAN)並不是從判別器與生成器的網絡構架上去進行改進,而是從目標函數的角度出發來提高模型的表現[3]。Martin Arjovsky等人先闡述了樸素GAN因生成器梯度消失而訓練失敗的原因[4]:他們認為,樸素GAN的目標函數在本質上可以等價於優化真實分佈與生成分佈的Jensen-Shannon散度。而根據Jensen-Shannon散度的特性,當兩個分佈間互不重疊時,其值會趨向於一個常數,這也就是梯度消失的原因。此外,Martin Arjovsky等人認為,當真實分佈與生成分佈是高維空間上的低維流形時,兩者重疊部分的測度為0的概率為1,這也就是樸素GAN調參困難且訓練容易失敗的原因之一。

針對這種現象,Martin Arjovsky等人利用Wasserstein-1距離(又稱Earth Mover距離)來替代樸素GAN所代表的Jensen-Shannon散度[3]。Wasserstein距離是從最優運輸理論中的Kantorovich問題衍生而來的,可以如下定義真實分佈與生成分佈的Wasserstein-1距離:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中pr,pg分別為真實分佈與生成分佈,

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

為pr,pg分的聯合分佈。相較於Jensen-Shannon散度,Wasserstein-1距離的優點在於,即使pr,pg互不重疊,Wasserstein距離依舊可以清楚地反應出兩個分佈的距離。為了與GAN相結合,將其轉換成對偶形式:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

從表示GAN的角度理解,fw表示判別器,與之前的D不同的是,WGAN不再需要將判別器當作0-1分類將其值限定在[0,1]之間,fw越大,表示其越接近真實分佈;反之,就越接近生成分佈。此外,||f||L ≤ 1表示其Lipschitz常數為1。顯然,Lipschitz連續在判別器上是難以約束的,為了更好地表達Lipschitz轉化成權重剪枝,即要求參數w ∈ [−c, c],其中為常數。因而判別器的目標函數為:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中w ∈ [−c, c],生成器的損失函數為:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

WGAN的貢獻在於,從理論上闡述了因生成器梯度消失而導致訓練不穩定的原因,並用Wasserstein距離替代了Jensen-Shannon散度,在理論上解決了梯度消失問題。此外,WGAN還從理論上給出了樸素GAN發生模式坍塌(mode collapse)的原因,並從實驗角度說明了WGAN在這一點上的優越性。最後,針對生成分佈與真實分佈的距離和相關理論以及從Wasserstein距離推導而出的Lipschitz約束,也給了後來者更深層次的啟發,如基於Lipschitz密度的 損失敏感GAN(loss sensitive GAN, LS-GAN)。

WGAN—GP

雖然WGAN在理論上解決了訓練困難的問題,但它也有各種各樣的缺點。在理論上,由於對函數(即判別器)存在Lipschitz-1約束,這個條件難以在神經網絡模型中直接體現,所以作者使用了權重剪枝(clip) 來近似替代Lipschitz-1約束。顯然在理論上,這兩個條件並不等價,而且滿足Lipschitz-1約束的情況多數不滿足權重剪枝約束。而在實驗上,很多人認為訓練失敗是由權重剪枝引起的,如圖3。對此Ishaan Gulrajani提出了梯度帶梯度懲罰的WGAN(WGAN with gradient penalty, WGAN-GP)[5],將Lipschitz-1約束正則化,通過把約束寫成目標函數的懲罰項,以近似Lipschitz-1約束條件。

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖3 WGAN與WGAN-GP的權重分佈情況

因而,WGAN的目標函數可以寫作

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

是pr與pg之間的線性採樣,即滿足

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

。此外,生成器的目標函數與WGAN相同,取第二項進行優化即可。

WGAN-GP的貢獻在於,它用正則化的形式表達了對判別器的約束,也為後來GAN的正則化模型做了啟示。此外WGAN-GP基本從理論和實驗上解決了梯度消失的問題,並且具有強大的穩定性,幾乎不需要調參,即在大多數網絡框架下訓練成功率極高。

LSGAN

雖然WGAN和WGAN-GP已經基本解決了訓練失敗的問題,但是無論是訓練過程還是是收斂速度都要比常規 GAN 更慢。受WGAN理論的啟發,Mao 等人提出了最小二乘GAN (least square GAN, LSGAN)[6]。LSGAN的一個出發點是提高圖片質量。它的主要想法是為判別器D提供平滑且非飽和梯度的損失函數。這裡的非飽和梯度針對的是樸素GAN的對數損失函數。顯然,x越大,對數損失函數越平滑,即梯度越小,這就導致對判別為真實數據的生成數據幾乎不會有任何提高。針對於此,LSGAN的判別器目標函數如下:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

生成器的目標函數如下:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

這裡a, b, c滿足b − c = 1和b − a = 2。根據[6],它等價於f散度中的散度

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

,也即是說,LSGAN用

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

散度取代了樸素GAN的Jensen-Shannon散度。

最後,LSGAN的優越性在於,它緩解了GAN訓練時的不穩定,提高了生成數據的質量和多樣性,也為後面的泛化模型f-GAN提供了思路。

f-GAN

由於樸素GAN所代表的Jensen-Shannon散度和前文提到的LSGAN所代表的

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

散度都屬於散度的特例,那麼自然而然地想到,其它f散度所代表的GAN是否能取得更好的效果。實際上,這些工作早已完成[7],時間更是早過WGAN與LSGAN。甚至可以認為,是f-GAN開始了藉由不同散度來代替Jensen-Shannon散度,從而啟示了研究者藉由不同的距離或散度來衡量真實分佈與生成分佈。首先衡量p(x), q(x)的f散度可以表示成如下形式:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中下半連續映射

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

,通過各種特定的函數f,可以得到不同的散度。其結果如表1所示:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

表1 f-GAN中基於不同散度的結果

此外,f-GAN還可以得到如下的泛化模型,其目標函數如下:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中vw是判別器的輸出函數,gf是最後一層的激活函數,

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

是f的共軛凸函數,以樸素GAN為例,當

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

,時,上式即為樸素GAN的目標函數。

LS-GAN(損失敏感GAN)與GLS-GAN

與前文提到的LSGAN (least square GAN)不同,這裡的LS-GAN是指Loss-Sensitive GAN,即損失敏感GAN。一般認為,GAN可以分為生成器G和判別器D。與之不同的是,針對判別器D,LS-GAN想要學習的是損失函數

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

,要求

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

在真實樣本上儘可能小,在生成樣本上儘可能大。由此,LS-GAN基於損失函數的目標函數為:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

生成器的目標函數為:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

此處∆(x, zG )是來自約束假設

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

(x) ≤

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

( zG) − ∆(x, zG),表示真實的樣本要與生成樣本間隔∆(x,zG)的長度,如此LS-GAN就可以將

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

用於提高距離真實樣本較遠的樣本上,可以更合理的發揮LS-GAN的建模能力。

此外,為了證明LS-GAN的收斂性,還做了一個基本的假設:要求真實分佈限定在Lipschitz 密度上,即真實分佈的概率密度函數建立在緊集上,並且它是Lipschitz連續的。通俗地說,就是要求真實分佈的概率密度函數不能變化的太快,概率密度的變化不能隨著樣本的變化而無限地增大。

最後,Qi等人還對LS-GAN做了推廣,將其擴展為GLS-GAN(Generalized LS-GAN)。所謂的GLS-GAN,就是將損失函數

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

的目標函數擴展為:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

此處Cv (a) = max{a, va},其中v∈ [−∞, 1]。可以證明,當v = 0時,GLS-GAN就是前文的LS-GAN。另外,當v = 1時,可以證明,GLS-GAN就是WGAN。所以,Qi認為,LS-GAN與WGAN都是GLS-GAN的一種特例。

EBGAN

樸素GAN提出將二分類器作為判別器以判別真實數據和生成數據,並將生成數據“拉向”生成數據。然而自從WGAN拋棄了二分類器這個觀點,取以函數fw代替,並不將之侷限在[0,1]之後,很多改進模型也採取了類似的方法,並將之擴展開來。例如LS-GAN以損失函數

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

(x)作為目標,要求

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

(x)在真實樣本上儘可能小,在生成樣本儘可能大。

基於能量的GAN(Energy-based GAN, EBGAN)則將之具體化了。它將能量模型以及其相關理論引入GAN,以“能量”函數在概念上取代了二分類器,表示對真實數據賦予低能量,對生成數據賦予高能量。

首先,EBGAN給出了它的目標函數

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中[∙]+ = max{0,∙},極大化LD的同時極小化LG。EBGAN的設計思想是,一方面減少真實數據的重構誤差,另一方面,使得生成數據的重構誤差趨近於m,即當D(G(z)) < m時,改下為正,對LD的極小化產生貢獻,反之D(G(z)) ≥ m,LD為0,會通過極小化LG,將D(G(z))拉向m。可以證明,當

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

到達Nash均衡時,生成數據分佈等於真實數據分佈,並且此時LD的期望即

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

。此外在EBGAN中,對D的結構也做了改進。不再採用DCGAN對D的網絡框架或者其相似結構,EBGAN對D的架構採用自動編碼器的模式,模型架構如圖所示

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖4 EBGAN模型架構

可以發現,其判別器或者說能量函數D可以寫作

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中Enc,Dec是自編碼器中的編碼與解碼操作。

最後,由於自編碼器的特殊構造,EBGAN還針對LG做了特殊設計,即增加一個正則項fPT來避免模式崩潰(mode collapse)問題。設

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

是一個batch的編碼器(encoder)輸出結果,fPT可以定義為

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其思想很簡單,利用一個批次的編碼器輸出結果計算餘弦距離並求和取均值,若這一項越小,則兩兩向量越接近正交。從而解決模式崩潰問題,不會出現一樣或者極其相似的圖片數據。

BEGAN

以上的GAN在本質上的目標是讓真實分佈pr與生成分佈pg儘量接近,大多數GAN之間可以解釋成其區別在於衡量方式不同,比如樸素GAN的Jensen-Shannon散度,WGAN的Wasserstein距離,f-GANs的f散度等等。

特殊的是,邊界平衡GAN(Boundary Equilibrium Generative Adversarial Networks, BEGAN)顛覆了這種思路,雖然它是基於WGAN與EBGAN上發展而來的。

首先,設D為判別函數,其結構採用上一節中EBGAN上的自編碼器的模式,即

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

另外,設

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

為D(x)與D(G(z))的分佈,其中x即為輸入的樣本圖片,G(z)為生成圖片,那麼真實分佈pr與生成分佈pg之間的Wasserstein距離如下

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

設m1,m2為

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

的期望,根據Jensen不等式,有

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

由此,BEGAN的特殊性在於,它優化的不是真實分佈pr與生成分佈pg之間的距離,而是樣本圖片和生成圖片下的判別函數的分佈之間的Wasserstein下界。

要計算Wasserstein下界,就要最大化|m1 − m2|,顯然它至少有兩個解,極大化m1,極小化m2或者極大化m2,極小化m1,此處取後一種,即可從優化

Wasserstein下界的角度看待GAN下的優化,即

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

上式均取極小值,前者LD優化

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

,極大化m2,極小化m1,由此計算Wasserstein下界;後者LG優化

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

,極小化m2,由此優化Wasserstein下界。

當上述的GAN成功訓練到達均衡點,顯然有:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

當真實分佈pr與生成分佈pg相等時,顯然滿足上式。但是在訓練時,並不是兩者完全重疊最佳,LS-GAN在設計時就有這種思想。同樣,BEGAN在設計時選擇通過超參

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

∈ [0,1]來放寬均衡點

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

即生成樣本判別損失的期望與真實樣本判別損失的期望值之比。而此處之所以讓判別器設計成自編碼其的模式,是因為判別器有兩個作用:1.對真實圖片自編碼;2. 區分生成圖片與真實圖片。超參

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

的特殊之處在於,它能平衡這兩個目標:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

值過低會導致圖片多樣性較差,因為判別器太過關注對真實圖片自編碼;反之,圖片視覺質量則會不佳。

由此,可以BEGAN的目標函數如下

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

初始化為0,

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

為學習率(learning rate)。

此外,BEGAN的另一個卓越效果是,它的網絡結構極為簡單,不需要ReLU,minbatch,Batch Normalization等非線性操作,但其圖片質量遠遠超過與其結構相近的EBGAN。

改進模型的總結

前文除了DCGAN,其餘的改進都是基於目標函數。如果不考慮InfoGAN,CGAN和Auto-GAN等當下流行的GAN模型,可以將針對目標函數的改進分為兩種,正則化與非正則化。如圖所示:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖5 基於loss改進的GAN的分類

一般認為,到目前為止,GLS-GAN有更好的建模能力。而GLS-GAN的兩種特例LS-GAN和WGAN都是建立在Lipschitz連續函數空間中進行訓練。而對判別器或損失函數而言,至今也尚未發現比Lipschitz約束更好的限制判別能力的條件,這也可能是今後研究的難點。

GAN的應用模型改進

以上對GAN的改進可以說是對GAN基礎的改進。然而基礎的GAN有時在實際中是不足以滿足我們對生成數據的要求。例如,有時侯我們會要求生成指定的某類圖像,而不是隨意模擬樣本數據,比如生成某個文字;有時我們要求對圖像某些部分做生成替換,而不是生成全部的圖像,比如消除馬賽克。基於這些實際生活上的要求,GAN也需要對模型的結構做出調整,以滿足生成我們需要的數據。

cGAN

如今在應用領域,絕大多數的數據是多標籤的數據,而如何生成指定標籤的數據就是條件GAN(conditional GAN,cGAN)在GAN模型上做的貢獻。在基本的GAN模型中,生成器是通過輸入一串滿足某個分佈的隨機數來實現的(一般以均勻分佈和高斯分佈為主下,當然,改進後的GAN也有不以隨機數作為生成器的輸入值的,如CycleGAN等,此處暫不討論),而在CGAN中,不僅要輸入隨機數,還需要將之與標籤類別做拼接(concat,一般要將標籤轉換成如one-hot或其它的tensor),再將其輸入生成器生成所需要的數據。此外,對判別器,也需要將真實數據或生成數據與對應的標籤類別做拼接,再輸入判別器的神經網絡進行識別和判斷,其目標函數如下:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其模型結構圖如下:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖6 CGAN的結構圖

InfoGAN

自cGAN被提出後,針對cGAN的後續工作,也有很多學者利用cGAN做了應用或者改進。如拉普拉斯GAN (Laplacian Generative Adversarial Networks, LAPGAN)結合了GAN與cGAN的原理,利用一個串聯的網絡,以上一級生成的圖片作為條件變量,構成拉普拉斯金字塔(laplacian pyramid),從而生成從粗糙到精密的圖片。

InfoGAN(MutualInformation)本質上也可以看作是一種cGAN。從出發點看,InfoGAN是基於樸素GAN改進的。它將原先生成器上輸入的z進行分解,除了原先的噪聲z以外,還分解出一個隱含編碼c。其中c除了可以表示類別以外,還可以包含多種變量。以MNIST數據集為例,還可以表示諸如光照方向,字體的傾斜角度,筆畫粗細等。InfoGAN的基本思想是,如果這個c能解釋生成出來的G(z,c),那麼c應該與G(z,c)由高度的相關性。在InfoGAN中,可以表示為兩者的互信息,目標函數可以寫作

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

然而在互信息I(c; G(z, c))的優化中,真實的P(c|x)很難計算,因此作者採用了變分推斷的思想,引入了變分分佈Q(c|x)來逼近P(c|x),

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

如此可以定義變分下界為

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

這樣InfoGAN的目標函數可以寫作

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

從模型結構上,可以表示成如下所示

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖7 InfoGAN模型結構示意圖

Q通過與D共享卷積層,計算花銷大大減少。此外,Q是一個變分分佈,在神經網絡中直接最大化,Q也可以視作一個判別器,輸出類別c。

InfoGAN的重要意義在於,它通過從噪聲z中拆分出結構化的隱含編碼c的方法,使得生成過程具有一定程度的可控性,生成結果也具備了一定的可解釋性。

Pix2Pix

圖像作為一種信息媒介,可以有很多種表達方式,比如灰度圖、彩色圖、素描圖、梯度圖等。圖像翻譯就是指這些圖像的轉換,比如已知灰度圖,進而生成一張彩色照片。多年以來,這些任務都需要用不同的模型去生成。在GAN以及CGAN出現後,這些任務成功地可以用同一種框架來解決,即基於CGAN的變體——Pix2Pix。

Pix2Pix將生成器看作是一種映射,即將圖片映射成另一張需要的圖片,所以才將該算法取名為Pix2Pix,表示map pixels to pixels,即像素到像素的映射。這種觀點也給了後來研究者改進的想法和啟發。

因此,生成器輸入除隨機數z以外,將圖片x(如灰度圖,素描圖等)作為條件進行拼接,輸出的是轉換後的圖片(如照片)。而判別器輸入的是轉換後的圖片或真實照片,特別之處在於,文章發現,判別器也將生成器輸入的圖片x作為條件進行拼接,會極大提高實驗的結果,其結構圖如下所示(此處結構圖隱去了生成器的隨機數z)

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖8 Pix2Pix模型結構示意圖

Pix2Pix的目標函數分為兩部分,首先是基於CGAN的目標函數,如下式所示,

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

此外,還有生成的圖像與原圖一致性的約束條件

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

將之作為正則化約束,所以Pix2Pix的目標函數為

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

Pix2Pix成功地將GAN應用於圖像翻譯領域,解決了圖像翻譯領域內存在的眾多問題,也為後來的研究者做了重要的啟發。

CycleGAN

然而,Pix2Pix致命的缺點在於,Pix2Pix的訓練需要相互配對的圖片x與y,然而,這類數據是極度缺乏的,也為極大限制了Pix2Pix的應用。

對此,CycleGAN提出了不需要配對的數據的圖像翻譯方法。

設X,Y為兩類圖像,px,py為兩類圖像間的相互映射。CycleGAN由兩對生成器和判別器組成,分別為

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

,若以wgan為基礎,那麼對Y類圖像,有

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

同樣,對X類圖像,有

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

此外,Cycle以及CycleGAN中較為重要的想法循環一致性(Cycle-Consistent),這也是CycleGAN中Cycle這一名稱的由來。循環一致性也可以看作是Pix2Pix一致性約束的演變進化,其基本思想是兩類圖像經過兩次相應的映射後,又會變為原來的圖像。因此,循環一致性可以寫作

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

因此,優化問題可以寫成

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

為常數。

CycleGAN的成功之處在於,他們用如此簡單的模型,成功解決了圖像翻譯領域面臨的數據缺乏問題。不需要配對的兩個場景的相互映射,實現了圖像間的相互轉換,是圖像翻譯領域的又一重大突破。

StarGAN

由上所述,Pix2Pix解決了有配對的圖像翻譯問題,CycleGAN解決了無配對的圖像翻譯問題,然而無論是Pix2Pix又或者是Cycle,他們對圖像翻譯而言,都是一對一的,也即是一類圖像對一類圖像。然而涉及多類圖像之間的轉換,就需要CycleGAN進行一對一逐個訓練,如圖6(a)所示,顯然這樣的行為是極為低效的。

針對這種困境,StarGAN解決了這類問題。如下圖所示,StarGAN希望能夠通過一個生成器解決所有跨域類別問題。

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖9 跨域模型(如CycleGAN等)與StarGAN

針對於此,StarGAN在生成器與判別器的設計以及模型結構上如下圖所示:

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

圖10 StarGAN模型結構示意圖

模型中(a)-(d)的要求如下:

  • (a)D學會區分真實圖像和生成圖像,並將真實圖像分類到其對應的域。因此,對D而言,實際上是由兩部分組成的,即
生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

  • (b)拼接目標標籤與輸入圖片,將之輸入G,並生成相應的圖像;
  • (c)在給定原始域標籤的情況下,G要儘量能重建原始圖像。這與CycleGAN的循環一致性一脈相承;
  • (d)這一點與一般的GAN相同,G要儘量生成與真實圖像相似的圖像,但同時又儘量能被D區分出來。

從目標函數上來看,首先判別器的目標函數,要求滿足GAN的結構,即

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

此外,還要就判別器能將真實圖像分類到相應的域,

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

針對生成器,除了

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

對應的GAN的結構外,還要求判別器能將生成圖像分類到相應的域

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

此外,還要求儘量能重建原始圖像

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中,c′為原始圖像對應的類別。如此,可以得到判別器的目標函數

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

以及生成器的目標函數為

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

其中

生成式對抗網絡模型綜述:一文看懂各種GAN模型原理

均為常數。

StarGAN作為CycleGAN的推廣,將兩兩映射變成了多領域之間的映射,是圖像翻譯領域的又一重大突破。此外,StarGAN還可以通過實現多數據集之間的聯合訓練(比如將擁有膚色,年齡等標籤的CelebA數據集和擁有生氣、害怕等表情標籤的RaFD數據集),將之訓練到同一個模型,完成了模型的壓縮,是圖像翻譯領域的一大突破。

GAN 的應用

GAN最直接的應用在於數據的生成,也就是通過GAN的建模能力生成圖像、語音、文字、視頻等等。而如今,GAN最成功的應用領域主要是計算機視覺,包括圖像、視頻的生成,如圖像翻譯、圖像上色、圖像修復、視頻生成等。此外GAN在自然語言處理,人機交互領域也略有拓展和應用。本章節將從圖像領域、視頻領域以及人機交互領域分別介紹GAN的相關應用。

圖像領域

例如,CycleGAN就是GAN在圖像領域上的一種重要應用模型。CycleGAN以無需配對的兩類圖像為基礎,可以通過輸入一張哭臉將其轉變為笑臉。StarGAN是CycleGAN的進一步擴展,一個類別與一個類別對應就要訓練一次太過麻煩,我們不但需要把笑臉轉化為哭臉,還需要把它轉化為驚訝,沮喪等多種表情,而StarGAN實現了這種功能。

此外,很多的GAN技術也有將文字描述轉換成圖片,根據輪廓圖像生成接近真實的照片等等功能。

視頻領域

Mathieu[10]等人首先將GAN訓練應用於視頻預測,即生成器根據前面一系列幀生成視頻最後一幀,判別器對該幀進行判斷。除最後一幀外的所有幀都是真實的圖片,這樣的好處是判別器能有效地利用時間維度的信息,同時也有助於使生成的幀與前面的所有幀保持一致。實驗結果表明,通過對抗訓練生成的幀比其他算法更加清晰。

此外,Vondrick[11]等人在視頻領域也取得了巨大進展,他們能生成32幀分辨率為64×64 的逼真視頻,描繪的內容包括高爾夫球場、沙灘、火車站以及新生兒。經過測試,20%的標記員無法識別這些視頻的真偽。

人機交互領域

Santana等人實現了利用GAN 的輔助自動駕駛。首先,生成與真實交通場景圖像分佈一致的圖像,然後,訓練一個基於循環神經網絡的轉移模型來預測下一個交通場景。

另外,GAN還可以用於對抗神經機器翻譯,將神經機器翻譯(neural machine translation, NMT)作為GAN 的生成器,採用策略梯度方法訓練判別器,通過最小化人類翻譯和神經機器翻譯的差別生成高質量的翻譯。

總結

GAN由於其強大的生成能力,正被廣泛地研究與關注。目前,在學術領域,目前GAN訓練指標,模式坍塌以及模型的生成能力的可解釋性正受廣泛的關注。最後,在拓展應用領域,由於生成的圖片有較高的噪音,如何提高數據(圖片或視頻等)也是研究的一大熱點。此外,GAN作為一種深度模型,也是解決自然語言處理(Natural Language Processing, NLP)天然的良好模型。如何將GAN應用在NLP領域也是下一步要解決的問題。


分享到:


相關文章: