GAN學習筆記(1):GAN綜述

GAN學習筆記(1):GAN綜述

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

1 GAN的理論和實現模型

1.1 GAN的基本原理

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

 


1 GAN的計算流程與結構

 

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

 

1.2 GAN的數學模型

GAN 的優化問題是一個極小極大化問題GAN的目標函數可以描述如下:



現證明如下。


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


對於離散的概率分佈,定義如下:


對於連續的概率分佈,定義如下:


定義



則最優模型



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



若上式取最大值,對給定的x積分項需最大,在數據給定,G給定的前提下,Pdata(x)PG(x)都可以看作是常數,我們可以分別用ab來表示他們,則:



得極大值點爲:



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


由上式可知,取 即爲使兩個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的反向傳播。理論上,只要是可微分函數都可以用於構建DG(雖然在實踐中,很難使用增強學習去訓練有離散輸出的生成器),從而能夠與深度神經網絡結合做深度生成式模型。


從實際結果來看,GAN看起來能產生更好的生成樣:相比完全明顯的信念網絡(NADE Pixel RNN WaveNet)GAN因爲不需要在採樣序列生成不同的數據能更快的產生樣本;相比依賴於蒙特卡洛估計和對數配分函數的玻爾茲曼,GAN不需要蒙特卡洛估計訓練網絡,更簡單(蒙特卡洛方法在高維空間中效果不好,玻爾茲曼機從來沒有拓展到像ImgeNet任務中,而GANImageNet上訓練後可以學習去畫一些以假亂真的狗);相比於變分自編碼器, 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]WGANEarth-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中的向量技巧類似,只不過是適用於圖像的。圖3DCGAN生成器網絡結構,四個堆疊的卷積操作來構成生成器G,沒有采用全連接層。



3 DCGAN生成器網絡結構


3.3 CGAN

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


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


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

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

 

3.4 InfoGAN

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


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




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



5 InfoGAN的計算流程與結構

3.5 SeqGAN

GAN的輸出爲連續實數分佈而無法產生離散空間的分佈:GAN的生成器G需要利用從判別器D得到的梯度進行訓練,GD都需要完全可微,當處理離散變量時會出現不能爲G提供訓練的梯度的情況,同時GAN只可以對已經生成的完整序列進行打分,而對一部分生成的序列,難以判斷現在生成的一部分的質量和之後生成整個序列的質量[9]。爲解決上述問題,將GAN成功運用到自然語言處理鄰域,2016Yu[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 J2017年發表的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的一種解決方案將文本編碼作爲generatorcondition輸入;對於discriminator,文本編碼在特定層作爲condition信息引入,以輔助判斷輸入圖像是否滿足文本描述。作者提出了兩種基於GAN的算法,GAN-CLSGAN-INT


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


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




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

 

4.3 GAN與增強學習的結合

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

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

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

 

5 GAN的未來發展方向

1.針對GAN可解釋性差進行改進。包括最近剛提出的InfoGANsInfoGANs通過最大化隱變量與觀測數據的互信息,來改進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

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章