GAN綜述

生成式對抗模型GAN (Generativeadversarial networks) 是Goodfellow等[1]在 2014年提出的一種生成式模型,目前已經成爲人工智能學界一個熱門的研究方向,著名學者Yann Lecun甚至將其稱爲「過去十年間機器學習領域最讓人激動的點子"。GAN的基本思想源自博弈論的二人零和博弈,由一個生成器和一個判別器構成,經過對抗學習的方式來訓練,目的是估測數據樣本的潛在分佈並生成新的數據樣本。在圖像和視覺計算、語音和語言處理、信息安全、棋類比賽等領域,GAN正在被普遍研究,具備巨大的應用前景。html

1 GAN的理論和實現模型

1.1 GAN的基本原理

GAN在結構上受博弈論中的二人零和博弈 (即二人的利益之和爲零,一方的所得正是另外一方的所失)的啓發,它設定參與遊戲雙方分別爲一個生成器 (Generator)和一個判別器 (Discriminator),生成器的目的是儘可能去學習和捕捉真實數據樣本的潛在分佈,並生成新的數據樣本;判別器是一個二分類器,目的是儘可能正確判別輸入數據是來自真實數據仍是來自生成器,爲了取得遊戲勝利,這兩個遊戲參與者須要不斷優化,各自提升本身的生成能力和判別能力,這個學習優化過程就是一個極小極大博弈(Minimax game)問題,目的是尋找兩者之間的一個納什均衡,使生成器估測到數據樣本的分佈。GAN的計算流程與結構如圖1所示。算法

圖1 GAN的計算流程與結構安全

任意可微分的函數均可以用來表示GAN的生成器和判別器,即生成器和判別器都可以採用目前研究火熱的深度神經網絡。若用可微分函數DG來分別表示判別器和生成器,它們的輸入分別爲真實數據x和隨機變量zG(z)則爲由G生成的儘可能服從真實數據分佈pdata的樣本。若是判別器的輸入來自真實數據,標註爲1,若是輸入樣本爲G(z),標註爲0。D的目標是實現對數據來源的正確二分類判別:真(來源於真實數據x的分佈)或者僞(來源於生成器的僞數據G(z)),而G的目標是使本身生成的僞數據G(z)在D上的表現D(G(z))和真實數據xD上的表現D(x)一致,這兩個相互對抗並迭代優化的過程使得D和G的性能不斷提高,當最終D的判別能力提高到必定程度,而且沒法正確判別數據來源時,能夠認爲這個生成器G已經學到了真實數據的分佈[2]網絡

1.2 GAN的數學模型

GAN 的優化問題是一個極小極大化問題GAN的目標函數能夠描述以下:架構

現證實以下。app

首先,瞭解一個統計學概念KL divergence,即KL散度,在機率論或信息論中,KL散度又稱相對熵(relative entropy),信息散度(informationdivergence),信息增益(information gain),是描述兩個機率分佈P和Q差別的一種方法,其越小,表示兩種機率分佈越接近。它是非對稱的,這意味着D(P||Q) ≠ D(Q||P)。特別的,在信息論中,D(P||Q)表示當用機率分佈Q來擬合真實分佈P時,產生的信息損耗,其中P表示真實分佈,Q表示P的擬合分佈。框架

對於離散的機率分佈,定義以下:iphone

對於連續的機率分佈,定義以下:機器學習

定義函數

則最優模型

首先看,即生成最優判別器得過程:

若上式取最大值,對給定的x積分項需最大,在數據給定,G給定的前提下,Pdata(x)與PG(x)均可以看做是常數,咱們能夠分別用a,b來表示他們,則:

得極大值點爲:

此即爲判別器的最優解,即在給定G的前提下,可以使得V(D)取得最大值的D,由此可知, GAN 估計的是兩個機率分佈密度的比值,這也是和其餘基於下界優化或者馬爾科夫鏈方法的關鍵不一樣之處。將D代回原來的V(G,D),獲得以下的結果:

由上式可知,取 即爲使兩個KL散度最大,即便PG(x)與Pdata(x)的差別最大,而取,即便PG(x)與Pdata(x)的差別最小,從而造成對抗博弈效果,實現GAN原理。

實際訓練時能夠採用交替優化的方法:先固定生成器G,優化判別器D,使得D的判別準確率最大化;而後固定判別器D,優化生成器G,使得D的判別準確率最小化。當且僅當pdata = pG時達到全局最優解。訓練GAN時,同一輪參數更新中,通常對D的參數更新k次再對 G的參數更新1次。

2 GAN的優勢與缺陷

GAN是一種以半監督方式訓練分類器的方法,能夠幫助解決帶標籤訓練集樣本少的問題,模型訓練時不須要對隱變量作推斷, G的參數更新不是直接來自數據樣本,而是來自D的反向傳播。理論上,只要是可微分函數均可以用於構建D和G(雖然在實踐中,很難使用加強學習去訓練有離散輸出的生成器),從而可以與深度神經網絡結合作深度生成式模型。

從實際結果來看,GAN看起來能產生更好的生成樣:相比徹底明顯的信念網絡(NADE, Pixel RNN, WaveNet等),GAN由於不須要在採樣序列生成不一樣的數據能更快的產生樣本;相比依賴於蒙特卡洛估計和對數配分函數的玻爾茲曼,GAN不須要蒙特卡洛估計訓練網絡,更簡單(蒙特卡洛方法在高維空間中效果很差,玻爾茲曼機歷來沒有拓展到像ImgeNet任務中,而GAN在ImageNet上訓練後能夠學習去畫一些以假亂真的狗);相比於變分自編碼器, GAN沒有引入任何決定性偏置( deterministicbias)是漸進一致的,變分方法引入了決定性偏置是有誤差的,他們優化的是對數似然的下界,而不是似然度自己,從而致使VAE生成的實例比GAN更模糊;相比非線性ICA(NICE, Real NVE等),GAN不要求生成器輸入的潛在變量有任何特定的維度或者要求生成器是可逆的;相比深度玻爾茲曼機和GSNs, GAN沒有變分下界,也沒有棘手的配分函數,樣本是一次生成的,而不是重複的應用馬爾科夫鏈來生成[3] [4]

GAN雖然解決了生成式模型的一些問題,而且對其餘方法的發展具備必定的啓發意義,可是 GAN並不完美,它在解決已有問題的同時也引入了一些新的問題。 GAN 最突出的優勢同時也是它最大的問題根源。GAN採用對抗學習的準則,理論上還不能判斷模型的收斂性和均衡點的存在性。訓練過程須要保證兩個對抗網絡的平衡和同步,不然難以獲得很好的訓練效果。而實際過程當中兩個對抗網絡的同步不易把控,訓練過程可能不穩定。同時,GAN很難學習生成如文本的離散數據,相比玻爾茲曼機,GAN只能一次產生全部像素,難以根據一個像素值猜想另外一個像素值(雖然能夠用BiGAN來修正這個特性,它能像玻爾茲曼機同樣去使用Gibb採樣來猜想缺失值)。而做爲以神經網絡爲基礎的生成式模型, GAN也存在神經網絡類模型的通常性缺陷,便可解釋性差,生成模型的分佈 PG(x)沒有顯式的表達。最後GAN生成的樣本雖然具備多樣性,可是存在崩潰模式 (Collapse mode)現象,可能生成多樣的,但對於人類來講差別不大的樣本[3] [4]

3 GAN的衍生模型

自Goodfellow等於2014年提出GAN以來,各類基於GAN的衍生模型被提出,以改進模型結構,進一步進行理論擴展及應用。如下重點介紹其中有表明性的幾種。

3.1 WGAN

GAN在基於梯度降低訓練時存在梯度消失的問題,由於當真實樣本和生成樣本之間具備極小重疊甚至沒有重疊時,其目標函數的Jensen-Shannon散度是一個常數(JS散度是一個對稱化的KL散度),致使優化目標不連續。爲了解決訓練梯度消失問題,Arjovsky等提出了 Wasserstein GAN (WGAN)[5]。WGAN用Earth-Mover代替Jensen-Shannon散度來度量真實樣本和生成樣本分佈之間的距離,相比KL散度、JS散度,Earth-Mover距離是平滑的,即使兩個分佈沒有重疊,仍能反映它們的遠近,從而提供有意義的梯度。WGAN用一個批評函數f來對應GAN的判別器,並且批評函數f須要創建在Lipschitz連續性假設上。WGAN開創性的作到了如下幾點[6]

(1)完全解決GAN訓練不穩定的問題,再也不須要當心平衡生成器和判別器的訓練程度

(2)基本解決了崩潰模式現象,確保了生成樣本的多樣性

(3)訓練過程當中有一個像交叉熵、準確率這樣的數值來指示訓練的進程,這個數值越小表明GAN訓練得越好,表明生成器產生的圖像質量越高。(如圖2所示)

(4)實現不須要精心設計的網絡架構,最簡單的多層全鏈接網絡就能夠作到

圖2 WGAN效果判別圖

3.2 DCGAN

2016年,Radford等人發表了一篇名爲《Unsupervised Representation Learning with DeepConvolutional Generative Adversarial Networks》的論文[7],文中提出了GAN架構的升級版,把有監督學習的CNN與無監督學習的GAN整合到一塊兒提出了DCGAN(深度卷積生成式對抗網),生成器和判別器分別學到對輸入圖像層次化的表示。

DCGAN的主要貢獻是[8][9]

(1) 爲CNN的網絡拓撲結構設置了一系列的限制來使得它能夠穩定的訓練。

(2) 使用DCGAN從大量的無標記數據(圖像、語音)學習到有用的特徵,至關於利用無標記數據初始化DCGAN生成器和判別器的參數,用於如圖像分類的有監督場景,獲得比較好的效果來驗證生成的圖像特徵表示的表達能力。

(3) 對GAN學習到的filter進行了定性的分析,嘗試理解和可視化GAN是如何工做的。

(4) 展現了生成的特徵表示的向量計算特性。

DCGAN一共作了一下幾點改造[8][9]

(1)去掉了G網絡和D網絡中的pooling layer。

(2)在G網絡和D網絡中都使用Batch Normalization

(3)去掉全鏈接的隱藏層

(4)在G網絡中除最後一層使用RELU,最後一層使用Tanh

(5)在D網絡中每一層使用LeakyRELU。

雖然缺少理論的支撐只是從工程的角度調出的不錯的效果,DCGAN架構比較穩定,開創了圖像生成的先河,是首批證實向量運算能夠做爲從生成器中學習的固有屬性表徵的論文,它和Word2Vec中的向量技巧相似,只不過是適用於圖像的。圖3爲DCGAN生成器網絡結構,四個堆疊的卷積操做來構成生成器G,沒有采用全鏈接層。

圖3 DCGAN生成器網絡結構

3.3 CGAN

2014年Mirza等[10]提出條件生成式對抗網絡CGAN嘗試在生成器G和判別器端加入額外的條件信息(additionalinformation)來指導GAN兩個模型的訓練,從而解決圖像標註、圖像分類和圖像生成過程當中,存在的輸出圖像的標籤較多,有成千上萬類別和對於一個輸入,合適輸出標籤的類別多兩類問題。

如圖4所示,CGAN直接把額外的信息y添加到生成器G和判別器D的目標函數中,與輸入Z和X中構成條件機率,訓練方式幾乎不變,可是從GAN的無監督變成了有監督。

圖4 CGAN判別器及生成器結構圖

用於指導G和D訓練的額外信息能夠是各類類型(multi-modal)的數據,以圖像分類爲例,能夠是label標籤,也能夠是關於圖像類別或其餘信息的text文本描述。

3.4 InfoGAN

GAN可以學得有效的語義特徵,可是輸入噪聲變量z的特定變量維數和特定語義之間的關係不明確,2016年Xi Che[11]等提出一種信息理論與GAN相結合的生成式對抗網絡InfoGAN,獲取輸入的隱層變量和具體語義之間的互信息,採用無監督的方式學習到輸入樣本X的可解釋且有意義的表示。

InfoGAN引入了信息論中的互信息(mutualinformation)概念,來表徵兩個數據的相關程度。具體實現如圖5,生成器G的輸入分爲兩部分z和c,這裏z和GAN的輸入一致,而c被稱爲隱碼,這個隱碼用於表徵結構化隱層隨機變量和具體特定語義之間的隱含關係。GAN設定了pG(x)= pG(x|c),而實際上c與G的輸出具備較強的相關性。用G(z,c)來表示生成器的輸出,做者提出利用互信息I(c;G(z,c))來表徵兩個數據的相關程度,用目標函數

來建模求解,這裏因爲後驗機率p(c|x)不能直接獲取,須要引入變分分佈來近似後驗的下界來求得最優解。

圖5 InfoGAN的計算流程與結構

3.5 SeqGAN

GAN的輸出爲連續實數分佈而沒法產生離散空間的分佈:GAN的生成器G須要利用從判別器D獲得的梯度進行訓練,G和D都須要徹底可微,當處理離散變量時會出現不能爲G提供訓練的梯度的狀況,同時GAN只能夠對已經生成的完整序列進行打分,而對一部分生成的序列,難以判斷如今生成的一部分的質量和以後生成整個序列的質量[9]。爲解決上述問題,將GAN成功運用到天然語言處理鄰域,2016年Yu等[12]借鑑強化學習中reward思想,提出了一種可以生成離散序列的生成式模型SeqGAN,如圖6所示,他們用RNN實現生成器G,用CNN實現判別器D,用D的輸出判別機率經過加強學習來更新G。加強學習中的獎勵經過D來計算,對於後面可能的行爲採用了蒙特卡洛搜索實現,計算D的輸出平均做爲獎勵值反饋。實驗代表SeqGAN在語音、詩詞和音樂生成方面能夠超過傳統方法。

圖6 SeqGAN結構示意圖

4 GAN的應用方向

做爲一個具備「無限"生成能力的模型,GAN的直接應用就是建模,生成與真實數據分佈一致的數據樣本,例如能夠生成圖像、視頻等。GAN能夠用於解決一些傳統的機器學習中所面臨的標註數據不足時的學習問題,例如無監督學習、半監督學習、多視角、多任務學習等。最近有一些工做已經將進行成功應用在強化學習中,來提升強化學習的學習效率,GAN還能夠用於語音和語言處理,例如生成對話、由文本生成圖像、天然語句和音樂等。所以GAN有着很是普遍的應用[2]

4.1 圖像和視覺領域

從目前的文獻來看,GAN在圖像上的應用主要用於圖像修改包括:單圖像超分辨率、交互式圖像生成、圖像編輯、圖像到圖像的翻譯等。

4.1.1 單圖像超分辨率

GAN可以生成與真實數據分佈一致的圖像。一個典型應用來自Twitter公司, Ledig等[13]提出利用GAN來將一個低清模糊圖像變換爲具備豐富細節的高清圖像。做者用 VGG 網絡做爲判別器,用參數化的殘差網絡表示生成器,其算法思路如圖7所示,實驗結果如圖8所示,能夠看到GAN生成了細節豐富的圖像。

圖7 Twitter圖像超分辨率算法示意圖

圖8 Twitter圖像超分辨率效果

4.1.2 交互式圖像生成

Adobe公司構建了一套圖像編輯操做[14],如圖9,能使得通過這些操做之後,圖像依舊在「真實圖像流形」上,所以編輯後的圖像更接近真實圖像。

具體來講,iGAN的流程包括如下幾個步驟:

1.    將原始圖像投影到低維的隱向量空間

2.    將隱向量做爲輸入,利用GAN重構圖像

3.    利用畫筆工具對重構的圖像進行修改(顏色、形狀等)

4.    將等量的結構、色彩等修改應用到原始圖像上。

值得一提的是,做者提出G需爲保距映射的限制,這使得整個過程的大部分操做能夠轉換爲求解優化問題,整個修改過程近乎實時。

圖9 Adobe圖像編輯

4.1.3 圖像到圖像的翻譯

如圖10,「圖像到圖像的翻譯」是指將一種類型的圖像轉換爲另外一種類型的圖像,好比:將草圖具象化、根據衛星圖生成地圖等[15]

圖10 圖像到圖像的翻譯

4.2 天然語言處理領域

GAN在天然語言處理上的應用能夠分爲兩類:生成文本、根據文本生成圖像。其中,生成文本包括兩種:根據隱向量(噪聲)生成一段文本;對話生成。

4.2.1 對話生成

Li J等2017年發表的Adversarial Learning for Neural Dialogue Generation[16]顯示了GAN在對話生成領域的應用。實驗效果如圖11。能夠看出,生成的對話具備必定的相關性,可是效果並非很好,並且這隻能作單輪對話。

如圖11 Li J對話生成效果

4.2.2 文本到圖像的翻譯

GAN也能用於文本到圖像的翻譯(textto image),文本到圖像的翻譯指GAN的輸入是一個描述圖像內容的一句話,好比「一隻有着粉色的胸和冠的小鳥」,那麼所生成的圖像內容要和這句話所描述的內容相匹配。

在ICML 2016會議上,Scott Reed等[17]人提出了基於CGAN的一種解決方案將文本編碼做爲generator的condition輸入;對於discriminator,文本編碼在特定層做爲condition信息引入,以輔助判斷輸入圖像是否知足文本描述。做者提出了兩種基於GAN的算法,GAN-CLS和GAN-INT。

如圖12  ScottReed文中用到的GAN架構

實驗結果如圖13所示,實驗發現生成的圖像相關性很高。

圖13Scott Reed文本到圖像的翻譯效果

4.3 GAN與加強學習的結合

Ian Goodfellow指出,GAN很容易嵌入到加強學習(reinforcementlearning)的框架中。例如,用加強學習求解規劃問題時,能夠用GAN學習一個actions的條件機率分佈,agent能夠根據生成模型對不一樣的actions的響應,選擇合理的action。

GAN與RL結合的典型工做有:將GAN嵌入模仿學習(imitationlearning)中[18];將GAN嵌入到策略梯度算法(policy gradient)中[19],將GAN嵌入到actor-critic算法中[20]等。

GAN與加強學習結合的相關工做多數在16年纔開始出現,GAN和RL屬於近年來的研究熱點,二者結合預計在接下來的一兩年裏將獲得更多研究者的青睞。

5 GAN的將來發展方向

1.針對GAN可解釋性差進行改進。包括最近剛提出的InfoGANs。InfoGANs經過最大化隱變量與觀測數據的互信息,來改進GAN的解釋性。

2.進一步提升GAN的學習能力。包括引入「多主體的GAN」。在多主體的GAN中,有多個生成器和判別器,它們之間能夠進行交流,進行知識的共享,從而提升總體的學習能力。

3.針對GAN優化不穩定性進行改進。例如使用 F散度來做爲一個優化目標和手段,對GAN進行訓練。

4.應用在一些更普遍的領域。包括遷移學習以及領域自適應學習。創建GAN和強化學習之間的聯繫,將GAN用在了逆強化學習和模擬學習上,從而可以大幅度提升強化學習的學習效率。另外還能夠用在數據的壓縮上以及應用在除了圖像之外其餘的數據模式上,好比用於天然語句的生成,還有音樂的生成[21]

參考文獻:

[1] Goodfellow I, Pouget-Abadie J, Mirza M, Xu B,WardeFarley D, Ozair S, Courville A, Bengio Y. Generative adversarial nets. In:Proceedings of the 2014 Conference on Advances in Neural Information ProcessingSystems 27. Montreal, Canada: Curran Associates, Inc., 2014. 2672¡2680

[2] 王坤峯,苟超,段豔傑,林懿倫,鄭心湖,王飛躍.生成式對抗網絡 GAN的研究進展與展望.自動化學報, 2017, 43(3): 321¡332

[3]  Ian Goodfellow,Answer of What are the pros and cons of usinggenerative adversarial networks (a type of neural network)? Could they beapplied to things like audio waveform via RNN? Why or why not, Quora, 2016,https://www.quora.com/What-are-the-pros-and-cons-of-using-generative-adversarial-networks-a-type-of-neural-network-Could-they-be-applied-to-things-like-audio-waveform-via-RNN-Why-or-why-not

[4] 元峯,關於生成對抗網絡(GAN)相比傳統訓練方法有什麼優點的回答,知乎, 2017, https://www.zhihu.com/question/56171002?utm_medium=social&utm_source=weibo

[5] Arjovsky M, Chintala S, Bottou L. Wasserstein GAN.arXiv preprint arXiv: 1701.07875, 2017

[6] 鄭華濱,使人拍案叫絕的Wasserstein GAN,知乎,2016,https://zhuanlan.zhihu.com/p/25071913

[7] Radford A, Metz L, Chintala S. UnsupervisedRepresentation Learning with Deep Convolutional Generative AdversarialNetworks[J]. Computer Science, 2015.

[8] 張雨石,深度卷積對抗生成網絡(DCGAN), CSDN, 2016,http://blog.csdn.net/stdcoutzyx/article/details/53872121

[9] lqfarmer, <模型彙總_5>生成對抗網絡GAN及其變體SGAN_WGAN_CGAN_DCGAN_InfoGAN_StackGAN, CSDN, 2017, http://blog.csdn.net/lqfarmer/article/details/71514254

[10] Mirza M, Osindero S.Conditional generative adversarial nets. arXiv preprint arXiv: 1411.1784, 2014

[11] Chen X, Duan Y, Houthooft R, SchulmanJ, Sutskever I, Abbeel P. InfoGAN: interpretable representation learning byinformation maximizing generative adversarial nets. In: Proceedings of the 2016Neural Information Processing Systems. Barcelona, Spain: Department ofInformation Technology IMEC, 2016. 2172¡2180

[12] Yu L T, Zhang W N, Wang J, Yu Y.SeqGAN: sequence generative adversarial nets with policy gradient. arXivpreprint arXiv: 1609.05473, 2016

[13] Ledig C, Theis L, Husz¶ar F, CaballeroJ, Cunningham A, Acosta A, Aitken A, Tejani A, Totz J, Wang Z H, Shi W Z.Photo-realistic single image super-resolution using a generative adversarialnetwork. arXiv preprint arXiv: 1609.04802, 2016

[14] Zhu J Y, KrähenbühlP, Shechtman E, et al. Generative visualmanipulation on the natural imagemanifold[C]//European Conference on ComputerVision. Springer InternationalPublishing, 2016: 597-613

[15] Isola P, Zhu J Y,Zhou T, et al. Image-to-Image Translation with Conditional AdversarialNetworks[J]. 2016.

[16] Li J W, Monroe W, Shi TL, Jean S, Ritter A, Jurafsky D. Adversarial learning for neural dialoguegeneration. arXiv preprint arXiv: 1701.06547, 2017

[17] Reed S, Akata Z, Yan XC, Logeswaran L, Lee H, Schiele B. Generative adversarial text to imagesynthesis. In: Proceedings of the 33rd International Conference on MachineLearning. New York, NY, USA: ICML, 2016

[18] HoJ, Ermon S. Generative adversarial imitationlearning[C]//Advances in NeuralInformation Processing Systems. 2016:4565-4573

[19] YuL, Zhang W, Wang J, et al. Seqgan: sequence generativeadversarial nets withpolicy gradient[J]. arXiv preprint arXiv:1609.05473,2016

[20] PfauD, Vinyals O. Connecting generative adversarialnetworks and actor-criticmethods[J]. arXiv preprint arXiv:1610.01945, 2016

[21] 亞萌,深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課,雷鋒網,2017,https://www.leiphone.com/news/201701/Kq6FvnjgbKK8Lh8N.html


參考文獻:http://blog.csdn.net/scarletouyang/article/details/78876526

相關文章
相關標籤/搜索