1. 程式人生 > >GAN綜述

GAN綜述

move 產生 分析 hit radi rtm earth 統計 更多

生成式對抗模型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),標註為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的目標函數可以描述如下:

技術分享圖片

現證明如下。

首先,了解一個統計學概念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的擬合分布。

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

技術分享圖片

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

技術分享圖片

定義

技術分享圖片

則最優模型

技術分享圖片

首先看技術分享圖片,即生成最優判別器得過程:

技術分享圖片

若上式取最大值,對給定的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

GAN綜述