GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

近期,澳大利亞迪肯大學圖像識別和數據分析中心發表了一篇新的論文,由Tu Dinh Nguyen, Trung Le, Hung Vu, Dinh Phung編寫,該論文就生成對抗網絡(GAN)的模式崩潰問題進行了討論並給出了一種新的有效的解決方案 D2GAN,論文譯稿由雷鋒網 AI 科技評論編輯,原文連接請點擊。html

這篇文章介紹了一種解決生成對抗網絡(GAN)模式崩潰問題的方法。這種方法很直觀可是證明有效,特別是當對GAN預先設置一些限制時。在本質上,它結合了Kullback-Leibler(KL)和反向KL散度的差別,生成一個目標函數,從而利用這些分支的互補統計特性捕捉多模式下分散預估密度。這種方法稱爲雙鑑別器生成對抗網絡(Dual discriminator generative adversarial nets, D2GAN),顧名思義,與GAN不一樣的是,D2GAN有兩個鑑別器。這兩個鑑別器仍然與一個生成器一塊兒進行極大極小的博弈,一個鑑別器會給符合分佈的數據樣本給與高獎勵,而另一個鑑別器卻更喜歡生成器生成的數據。生成器就要嘗試同時欺騙兩個鑑別器。理論分析代表,假設使用最強的鑑別器,優化D2GAN的生成器可讓原始數據庫和生成器產生的數據間的KL和反向KL散度最小化,從而有效地避免模式崩潰的問題。做者進行了大量的合成和真實數據庫的實驗(MNIST,CIFAR-10,STL-10,ImageNet),對比D2GAN和最新的GAN變種的方法,並進行定性定量評估。實驗結果有效地驗證了D2GAN的競爭力和優越的性能,D2GAN生成樣本的質量和多樣性要比基準模型高得多,並可擴展到ImageNet數據庫。數據庫

簡介

生成式模型是研究領域的一大分支而且在最近幾年獲得了飛速的成長,成功地部署到不少現代的應用中。通常的方法是經過解決密度預測問題,即學習模型分佈Pmodel來預測置信度,在數據分佈Pdata未知的狀況下。這種方法的實現須要解決兩個基本問題。markdown

首先,生成模型的學習表現基於訓練這些模型的目標函數的選擇。最爲普遍使用的目標,即事實標準目標,是遵循遵循最大似然估計原理,尋求模型參數以最大限度地提升訓練數據的似然性。這與最小化KL散度數據分佈和模型分佈上的差別的方法類似GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!。這種最小化會致使Pmodel覆蓋Pdata的多種模式,可是可能會引發一些徹底看不到的和潛在的不但願的樣本。相反地,另一種方法經過交換參數,最小化:GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!,通常稱其爲反KL散度。觀察發現,對反KL散度準則優化模擬了模式搜索的過程,Pmodel集中在Pdata的單一模式,而忽略了其餘模式,稱這種問題爲模式崩潰。網絡

第二個問題是密度函數Pmodel公式的選擇問題。一種方法是定義一個明確的密度函數,而後直接的根據最大似然框架進行參數估計。另一種方法是使用一個不明確的密度函數記性數據分佈估計,不須要使用Pmodel的解析形式。還有一些想法是借用最小包圍球的原理來訓練生成器,訓練和生成的數據,在被映射到特徵空間後,被封閉在同一個球體中。這種方法最爲著名的先驅應用是生成對抗網絡(GAN),它是一種表達生成模型,具有生成天然場景的尖銳和真實圖像的能力。與大多數生成模型不一樣的是,GAN使用了一種激進的方法,模擬了遊戲中兩個玩家對抗的方法:一個生成器G經過從噪聲空間映射輸入空間來生成數據;鑑別器D則表現得像一個分類器,區分真實的樣本和生成器生成的僞圖像。生成器G和鑑別器D都是經過神經網絡參數化得來的,所以,這種方法能夠歸類爲深度生成模型或者生成神經模型。架構

GAN的優化其實是一個極大極小問題,即給定一個最優的D,學習的目標變成尋找能夠最小化Jensen-Shannon散度(JSD)的G:GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!。JSD最小化的行爲已經被實踐證明相較於KL散度更近似於反KL散度。這,另外一方面,也致使了以前提到的模式崩潰問題,在GAN的應用領域臭名昭著,即生成器只能生成類似的圖片,低熵分佈,樣本種類匱乏。框架

近期的研究經過改進GAN的訓練方式來解決模式崩潰的問題。一個方法是使用mini-batch分辨法巧妙地讓鑑別器分辨與其餘生成樣本非正常類似的圖片。儘管這種啓發方式能夠幫助快速生成具備視覺吸引力的樣本,可是它的計算代價很高,所以,一般應用於鑑別器的最後一個隱藏層。另一個方法是把鑑別器的優化經過幾個步驟展開,在訓練中產生一個代理目標來進行生成器的更新。第三種方法是訓練多個生成器,發現不一樣的數據模式。同期的,還有一些其餘的方法,運用autoencoders進行正則化或者輔助損失來補償丟失的模式等。這些方法均可以在必定程度上改善模式崩潰的問題,可是由此帶來了更高的計算複雜度,從而沒法擴展到ImageNet這種大規模的和具備挑戰性的視覺數據庫上。
iphone

應對這些挑戰,做者們在這篇論文中提出了一種新的方法,既能夠高效地避免模式崩潰問題又能夠擴展到龐大的數據庫(好比:ImageNet等)。經過結合KL和反KL散度生成一個統一的目標函數,從而利用了兩種散度的互補統計特性,有效地在多模式下分散預估密度。使用GAN的框架,量化這種思路,便造成了一種新穎的生成對抗架構:鑑別器D1(經過鑑別數據來自於Pdata而不在生成分佈PG中獲取高分),鑑別器D2(相反地,來自於PG而不在Pdata中)和生成器G(嘗試欺騙D一、D2兩個鑑別器)。做者將這種方法命名爲雙鑑別器生成對抗網絡(D2GAN)。函數

實驗證實,訓練D2GAN與訓練GAN會遇到一樣的極大極小問題,經過交替更新生成器和鑑別器能夠獲得解決。理論分析代表,若是G、D1和D2具備足夠的容量,如非參數的限制下,在最佳點,對KL和反KL散度而言,訓練標準確實致使了數據和模型分佈之間的最小距離。這有助於模型在各類數據分佈模式下進行公平的機率分佈,使得生成器可一次完成數據分佈恢復和生成多樣樣本。另外,做者還引入了超參數實現穩定地學習和各類散度影響的控制。性能

做者進行了大量的實驗,包括一個合成數據庫和具有不一樣特徵的四個真實大規模數據庫(MNIST、CIFAR十、STL-十、ImageNet)。衆所周知,評估生成模型是很是困難的,做者花費了不少時間,使用了各類評估辦法,定量的對比D2GAN和最新的基線方法。實驗結果代表,D2GAN能夠在保持生成樣本質量的同時提升樣本的多樣性。更重要的是,這種方法能夠擴展到更大規模的數據庫(ImageNet),並保持具備競爭力的多樣性結果和生成合理的高品質樣本圖片。學習

簡而言之,這種方法具備三個重要的貢獻:(i)一種新穎的生成對抗模型,提升生成樣本的多樣性;(ii)理論分析證明這種方法的目標是優化KL和反KL散度的最小差別,並在PG=Pdata時,實現全局最優;(iii)使用大量的定量標準和大規模數據庫對這種方法進行綜合評估。

做者們的實現方法以下:

生成對抗網絡

首先介紹一下生成對抗網絡(GAN),具備兩個玩家:鑑別器D和生成器G。鑑別器D(x),在數據空間中取一個點x,而後計算x在數據分佈Pdata中而不是生成器G生成的機率。同時,生成器先向數據空間映射一個取自先導P(z)的噪聲向量z,獲取一個相似於訓練數據的樣本G(z),而後使用這個樣原本欺騙鑑別器。G(z)造成了一個在數據域的生成分佈PG,和機率密度函數PG(x)。G和D都由神經網絡構成(見圖1a),並經過以下的極大極小優化得以學習:

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

學習遵循一個迭代的過程,其中鑑別器和生成器交替地更新。假設固定G,最大化D能夠得到最優鑑別器GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!,同時,固定最優D*,最小化G能夠實現最小化Jensen-Shannon(JS)散度(數據和模型分佈:GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!)。在博弈的納什均衡下,模型分佈徹底恢復了數據分佈:PG=Pdata,從而鑑別器如今沒法分辨真假數據:GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

因爲JS散度經過大量的實驗數據證明與反KL散度的特性相同,GAN也會有模式崩潰的問題,所以,其生成的數據樣本多樣性很低。

雙鑑別器生成對抗網絡

爲了解決GAN的模式崩潰問題,下方介紹了一種框架,尋求近似分佈來有效地涵蓋多模式下的多模態數據。這種方法也是基於GAN,可是有三個組成部分,包括兩個不一樣的鑑別器D一、D2和一個生成器G。假定一個數據空間中的樣本x,若是x是數據分佈Pdata中的,D1(x)得到高分,若是是模式分佈PG中的,則得到低分。相反地,若是x是模式分佈PG中的,D2(x)得到高分,若是是數據分佈Pdata中的,D2(x)得到低分。與GAN不一樣的是,得分的表現形式爲R+而不是[0,1]中的機率。生成器G的角色與GAN中的類似,即從噪聲空間中映射數據與真實數據進行合成後欺騙D1和D2兩個鑑別器。這三個部分都由神經網絡參數化而成,其中D1和D2不分享它們的參數。這種方法被稱爲雙鑑別器生成對抗網絡(D2GAN),見上圖1b。D一、D2和G遵循以下的極大極小公式:

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

其中超參數GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!爲了實現兩個目的。第一個是爲了穩定化模型的學習過程。兩個鑑別器的輸出結果都是正的,D1(G(z))和D2(x)可能會變得很大並比LogD1(x)和LogD2(x)有指數性的影響,最終會致使學習的不穩定。爲了克服這個問題,下降α和β的值。第二個目的是控制KL和反KL散度對優化的影響。後面介紹過優化方法後再對這個部分進行討論。

與GAN類似的是,經過交替更新D一、D2和G能夠訓練D2GAN。

理論分析

經過理論分析發現,假設G、D1和D2具有足夠的容量,如非參數的限制下,在最佳點,G能夠經過最小化模型和數據分佈的KL和反KL散度恢復數據分佈。首先,假設生成器是固定的,經過(w.r.t)鑑別器進行優化分析:

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

證實:根據誘導測度定理,兩個指望相等:

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!時,GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!。目標函數能夠推演以下:

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

考慮到裏面的函數積分,給定x,經過兩個變量D一、D2最大化函數,獲得D1*(x)和D2*(x)。將D1和D2設置爲0,能夠獲得:

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

 GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!是非正數,則證實成立並獲得了最大值。

接下來,GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!,計算生成器G的最優方案G*。

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

證實:將D1*和D2*代入極大極小方程,獲得:

 GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

 GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!分別是KL和反KL散度。這些散度一般是非負的,而且只在PG*=Pdata時等於0。換言之,生成器生成的分佈PG*與數據分佈徹底等同,這就意味着因爲兩個分佈的返回值都是1,兩個鑑別器在這種狀況下就不能分辨真假樣本了。

如上公式中生成器的偏差代表提升α能夠促進最小化KL散度(GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!)的優化,提升β可促進最小化反KL散度(GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!)的優化。經過調整α和β這兩個超參數,能夠平衡KL散度和反KL散度的影響,從而有效地避免模式崩潰的問題。

實驗

在這個部分,做者進行了普遍的實驗來驗證的提升模式覆蓋率和提出的方法應用在大規模數據庫上的能力。使用一個合成的2D數據庫進行視覺和數值驗證,並使用四個真實的數據庫(具備多樣性和大規模)進行數值驗證。同時,將D2GAN和最新的GAN的應用進行對比。

從大量的實驗得出結論:(i)鑑別器的輸出具備softplus activations:GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!,如正ReLU;(ii)Adam優化器,學習速率0.0002,一階動量0.5;(iii)64個樣本做爲訓練生成器和鑑別器的minibatch訓練單元;(iv)0.2斜率的Leaky ReLU;(v)權重從各項同性的高斯(Gaussian)分佈:GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!進行初始化,0誤差。實現的過程使用了TensorFlow,而且在文章發表後發佈出來。下文將介紹實驗過程,首先是合成數據庫,而後是4個真實數據庫。

合成數據庫

在第一個實驗中,使用已經設計好的實驗方案對D2GAN處理多模態數據的能力進行評估。特別的是,從2D混合8個高斯分佈和協方差矩陣0.02獲取訓練數據,同時中位數分佈在半徑2.0零質心的圓中。使用一個簡單的架構,包含一個生成器(兩個全鏈接隱藏層)和兩個鑑別器(一個ReLU激發層)。這個設定是相同的,所以保證了公平的對比。圖2c顯示了512個由D2GAN和基線生成的樣本。能夠看出,常規的GAN產生的數據在數據分佈的有效模式附近的一個單一模式上奔潰了。而unrolledGAN和D2GAN能夠在8個混合部分分佈數據,這就印證了可以成功地學習多模態數據的能力。最後,D2GAN所截取的數據比unrolledGAN更精確,在各類模式下,unrolledGAN只能集中在模式質心附近的幾個點,而D2GAN產生的樣本全分佈在全部模式附近,這就意味着D2GAN產生的樣本比unrolledGAN多得多。

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

下一步,定量的進行生成數據質量的對比。由於已知真實的分佈Pdata,只需進行兩步測量,即對稱KL散度和Wasserstein距離。這些測量分別是對由D2GAN、unrolledGAN和GAN的10000個點歸一化直方與真實的Pdata之間的距離計算。圖2a/b再次清楚了代表了D2GAN相對於unrolled和GAN的優點(距離越小越好);特別是Wasserstein度量,D2GAN離真實分佈的距離基本上減少到0了。這些圖片也表達了D2GAN相對於GAN(綠色曲線)和unrolledGAN(藍色曲線)在訓練時的穩定性。

真實數據庫

下面,使用真實數據庫對D2GAN進行評估。在真實數據庫條件下,數據擁有更高的多樣性和更大的規模。對含有卷積層的網絡,根據DCGAN進行設計分析。鑑別器使用帶步長的卷積,生成器使用分步帶步長的卷積。每一個層都進行批處理標準化,除了生成器輸出層和鑑別器的輸入層。鑑別器還使用Leaky ReLU 激發層,生成器使用ReLU層,除非其輸出是tanh,緣由是各像素的強度值在反饋到D2GAN模型前已經變換到[-1,1]的區間內。惟一的區別是,在D2GAN下,當從N(0,0.01)初始化權重時,其表現比從N(0,0.02)初始化權重的效果好。架構的細節請看論文附件。

評估方式

評估生成對抗模型產生的樣本是很難的,緣由有生成機率判斷標準繁多、缺少有意義的圖像類似性度量標準。儘管生成器能夠產生看似真實的圖像,可是若是這些圖像看起來很是近似,樣本依然不可以使用。所以,爲了量化各類模式下的圖像質量,同時生產高質量的樣本圖樣,使用各類不用的ad-hoc度量進行不一樣的實驗來進行D2GAN方法與各基線方法的效果對比。

首先,使用起始分值(Inception Score),計算經過:GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!,這裏P(y|x)是經過預訓練的初始模型的圖像x的條件標籤分佈,P(y)是邊際分佈:GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!。這種度量方式會給質量高的多樣的圖片給高分,可是有時候很容易被崩潰的模式欺騙,致使產生很是低質量的圖片。所以,這種方式不能用於測量模型是否陷入了錯誤的模式。爲了解決這個問題,對有標籤的數據庫,使用MODE score:GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

這裏,GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!是訓練數據的預估標籤的經驗分佈。MODE score的值能夠充分的反應生成圖像的多樣性和視覺質量。

手寫數字圖像

這個部分使用手寫數字圖像-MNIST,數據庫包含有60,000張訓練圖像和10,000張測試灰度圖(28*28像素),數值區間從0到9。首先,假設MNIST有10個模式,表明了數據分支的鏈接部分,分爲10個數字等級。而後使用不一樣的超參數配置進行擴展的網格搜索,使用兩個正則常數α和β,數值爲{0.01,0.05,0.1,0.2}。爲了進行公平的對比,對不一樣的架構使用相同的參數和全鏈接層。

評估部分,首先訓練一個簡單的但有效的3-layer卷積網絡(MNIST測試庫實現0.65%的偏差),而後將它應用於預估標籤的機率和生成樣本的MODE score計算中。圖3左顯示了3個模式下MODE score的分佈。清晰的看到,D2GAN相對於標準GAN和Reg-GAN的巨大優越性,其分數的最大值基本落在區間【8.0-9.0】。值得注意的是,儘管提升網絡的複雜度,MODE score基本保持高水平。這幅圖片中只表現了最小網絡和最少層和隱藏單元的結果。

爲了研究α和β的影響,在不一樣的α和β的數值下進行試驗(圖3右)。結果代表,給定α值,D2GAN能夠在β達到必定數值時得到更好的MODE score,當β數值繼續增大,MODE score下降。

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

MNIST-1K.   假定10個模式的標準MNIST數據庫至關簡單。所以,基於這個數據庫,做者使用一個更具挑戰性的數據庫進行測試。沿用上述的方式,假定一個新的有1000個等級的MNIST數據庫(MNIST-1K),方法爲用3個隨機數字組成一個RGB圖像。由此,能夠組成1000個離散的模式,從000到999。

在這個實驗中,使用一個更強大的模型,鑑別器使用卷積層,生成器使用轉置卷積。經過測試模式的數量進行模型的性能評估,其中模型在25,600個樣本中至少產生一個模式,同時反KL散度分佈介於模型分佈(如從預訓練的MNIST分類器預測的標籤分佈)和指望的數據分佈之間。表1報告了D2GAN與GAN、unrolledGAN、GCGAN和Reg-GAN之間的對比。經過對比能夠看出D2GAN具備極大的優點,同時模型分佈和數據分佈之間的差距幾近爲0。

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

天然場景圖像

 下面是將D2GAN應用到更普遍的天然場景圖像上,用於驗證其在大規模數據庫上的表現。使用三個常常被使用的數據庫:CIFAR-10,STL-10和ImageNet。CIFAR-10包含50,000張32*32的訓練圖片,有10個等級:飛機,摩托車,鳥,貓,鹿,狗,青蛙,馬,船和卡車(airplane, automobile, bird, cat, deer, dog, frog, horse, ship, and truck)。STL-10,是ImageNet的子數據集,包含10,000張未被標記的96*96的圖片,相對於CIFAR-10更多樣,可是少於ImageNet。將全部的圖片向下縮小3倍至32*32分辨率後,再對網絡進行訓練。ImageNet很是龐大,擁有120百萬天然圖片,包含1000個類別,一般ImageNet是深度網絡領域訓練使用的最爲龐大和複雜的數據庫。使用這三個數據庫進行蓄念和計算,Inception score的結果以下圖和下方表格所示:

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

表格中和圖4中表示了Inception score在不一樣數據庫和不一樣模型上的不一樣值。值得注意的是,這邊的對比是在一個完美無監督的方法下,而且沒有標籤的信息。在CIFAR-10數據庫上使用的8個基線模型,而在STL-10和ImageNet數據庫上使用了DCGAN、DFM(denoising feature matching)做對比。在D2GAN的實現上使用了與DCGAN徹底一致的網絡架構,以作公平的對比。在這三個實驗結果中,能夠看出,D2GAN的表現低於DFM,可是在很大的程度高於其餘任何一個基線模型。這種遜於DFM的結果印證了對高級別的特徵進行自動解碼是提升多樣性的一種有效方法。D2GAN可與這種方式兼容,所以融合這種作法能夠爲將來的研究帶來更好的效果。

最後,在圖5中展示了使用D2GAN生成的樣本圖片。這些圖片都是隨機產生的,而不是特別挑選的。從圖片中能夠看出,D2GAN生成了能夠視覺分辨的車,卡車,船和馬(在CIFAR-10數據庫的基礎上)。在STL-10的基礎上,圖片看起來相對比較難以辨認,可是飛機,車,卡車和動物的輪廓仍是能夠識別的;同時圖片還具有了多種背景,如天空,水下,山和森林(在ImageNet的基礎上)。這印證了使用D2GAN能夠生成多樣性的圖片的結論。

GAN生成的結果多樣性不足怎麼辦?那就再添一個鑑別器!

結論

總結全文,做者介紹了一種全新的方法,結合KL(Kullback-Leibler)和反KL散度生成一個統一的目標函數來解決密度預測問題。這種方法利用了這兩種散度的互補統計特性來提升生成器產生的圖像的質量和樣本的多樣性。基於這個原理,做者引入了一種新的網絡,基於生成對抗網絡(GAN),由三方構成:兩個鑑別器和一個生成器,並命其爲雙鑑別器生成對抗網絡(dual discriminator GAN, D2GAN)。若是設定兩個鑑別器是固定的,同時優化KL和反KL散度進行生成器的學習,經過這種方法能夠幫助解決模式崩潰的問題(GAN的一大亟待突破的難點)。

做者經過大量的實驗對其提出的方法進行了驗證。這些實驗的結果證明了D2GAN的高效性和擴展性。實驗使用的數據庫包括合成數據庫和大規模真實圖片數據庫,即MNIST、CIFAR-10,STL-10和ImageNet。相較於最新的基線方法,D2GAN更具擴展性,能夠應用於業內最爲龐大和複雜的數據庫ImageNet,儘管取得了比融合DFM(denoising feature matching)和GAN的方法低的Inception score,但遠遠高於其餘GAN應用的實驗結果。最後,做者指出,將來的研究能夠借鑑融合DFM和GAN的作法,在現有的方法基礎上增長相似半監督學習、條件架構和自動編碼等的技術,更進一步的解決生成對抗網絡在應用中的問題。








本文做者:雪莉•休斯敦
本文轉自雷鋒網禁止二次轉載,原文連接