丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能 正文
發(fā)私信給深度學(xué)習(xí)大講堂
發(fā)送

0

深度解讀:GAN模型及其在2016年度的進展

本文作者: 深度學(xué)習(xí)大講堂 2017-01-20 11:24
導(dǎo)語:GAN在2014年就被提出,為什么不是在2014年或2015年火爆?為什么是2016呢?

雷鋒網(wǎng)注:本文作者楊雙,于2016獲中國科學(xué)院自動化研究所博士學(xué)位。現(xiàn)任中國科學(xué)院計算技術(shù)研究所智能信息處理重點實驗室助理教授。主要研究方向包括深度學(xué)習(xí)、貝葉斯建模與推理、序列建模等。

GAN,全稱為Generative Adversarial Nets,直譯為生成式對抗網(wǎng)絡(luò)。它一方面將產(chǎn)生式模型拉回到了一直由判別式模型稱霸的AI競技場,引起了學(xué)者甚至大眾對產(chǎn)生式模型的研究興趣,同時也將對抗訓(xùn)練從常規(guī)的游戲競技領(lǐng)域引到了更一般領(lǐng)域,引起了從學(xué)術(shù)界到工業(yè)界的普遍關(guān)注。筆者對幾大會議等進行了不完全統(tǒng)計,其中:

ICLR-2017提交論文:45篇產(chǎn)生式模型相關(guān),37篇與對抗訓(xùn)練相關(guān);

NIPS-2016:在會議大綱中GAN被提及超過120次;同時,會議專門針對“Adversarial Training”組織了一個workshop,收錄了32篇文章,絕大多數(shù)與GAN直接相關(guān);此外,正會還收錄了17篇產(chǎn)生式模型相關(guān)文章,11篇對抗訓(xùn)練相關(guān)文章;

Arxiv:在Computer Science分類下約有500篇與對抗網(wǎng)絡(luò)相關(guān)文章,其中絕大多數(shù)為2016年的工作;

相信接下來偏重實際應(yīng)用的CVPR-2017與ICCV-2017也會有一大波視覺上應(yīng)用和改進GAN的文章來襲......

除了學(xué)術(shù)圈外,谷歌、Facebook、Twitter、蘋果、OPENAI(GAN作者所在公司)等眾多工業(yè)界AI相關(guān)的公司也都在今年發(fā)表了數(shù)量不一的基于GAN的相關(guān)研究成果。

那么問題來了,GAN在2014年就被提出,為什么不是在2014年或2015年火爆?為什么是2016呢?個人覺得GAN的對抗訓(xùn)練理論和它利用這一點來構(gòu)建產(chǎn)生式模型的概念一直都很吸引人,但它剛提出之時對模型的實際訓(xùn)練中所遇到的許多問題都還沒有得到很好的解決(當(dāng)然,現(xiàn)在也仍然有許多問題),但經(jīng)過2014和2015大半年的醞釀,到15年下半年和16年初就逐漸開始出現(xiàn)許多GAN的訓(xùn)練技巧總結(jié)分享以及對模型本身進行改進的文章,這些都極大地帶動了后續(xù)的發(fā)展,特別是在數(shù)據(jù)生成等相關(guān)問題中的應(yīng)用,造就了2016年對于產(chǎn)生式模型以及對抗訓(xùn)練的研究熱潮。

解讀GAN

一、基本的GAN模型

1、基本框架

深度解讀:GAN模型及其在2016年度的進展

原始GAN模型的基本框架如上圖所示,其主要目的是要由判別器D輔助生成器G產(chǎn)生出與真實數(shù)據(jù)分布一致的偽數(shù)據(jù)。模型的輸入為隨機噪聲信號z;該噪聲信號經(jīng)由生成器G映射到某個新的數(shù)據(jù)空間,得到生成的數(shù)據(jù)G(z);接下來,由判別器D根據(jù)真實數(shù)據(jù)x與生成數(shù)據(jù)G(z)的輸入來分別輸出一個概率值或者說一個標(biāo)量值,表示D對于輸入是真實數(shù)據(jù)還是生成數(shù)據(jù)的置信度,以此判斷G的產(chǎn)生數(shù)據(jù)的性能好壞;當(dāng)最終D不能區(qū)分真實數(shù)據(jù)x和生成數(shù)據(jù)G(z)時,就認(rèn)為生成器G達(dá)到了最優(yōu)。

D為了能夠區(qū)分開兩者,其目標(biāo)是使D(x)與D(G(z))盡量往相反的方向跑,增加兩者的差異,比如使D(x)盡量大而同時使D(G(z))盡量小;而G的目標(biāo)是使自己產(chǎn)生的數(shù)據(jù)在D上的表現(xiàn)D(G(z))盡量與真實數(shù)據(jù)的表現(xiàn)D(x)一致,讓D不能區(qū)分生成數(shù)據(jù)與真實數(shù)據(jù)。因此,這兩個模塊的優(yōu)化過程是一個相互競爭相互對抗的過程,兩者的性能在迭代過程中不斷提高,直到最終D(G(z))與真實數(shù)據(jù)的表現(xiàn)D(x)一致,此時G和D都不能再進一步優(yōu)化。

我們?nèi)魧@個過程直接建模,應(yīng)當(dāng)是如下的minimax問題(我將其稱為樸素minimax問題):

深度解讀:GAN模型及其在2016年度的進展

但是,原文中的目標(biāo)函數(shù)卻為如下形式:

深度解讀:GAN模型及其在2016年度的進展

可以看到,GAN的目標(biāo)函數(shù)與樸素minimax問題相比,主要多了三個變化:

  • (1) 加入了求對數(shù)操作:求對數(shù)的操作在理論上并不會影響最終收斂到的最優(yōu)值,但對數(shù)算子的變換可以緩解數(shù)據(jù)分布偏差問題,比如減少數(shù)據(jù)分布的單邊效應(yīng)的影響,減少數(shù)據(jù)分布形式上的波動等,同時在實際的程序?qū)崿F(xiàn)中,對數(shù)算子也可以避免許多數(shù)值問題,因此成為統(tǒng)計學(xué)中的常用做法,比如在許多問題中我們并不直接求最大似然,而是去求最大對數(shù)似然也是類似的原因;

  • (2) 加入求期望的操作:這一點是由于我們的最終目的是希望生成數(shù)據(jù)的分布Pg(G(z))能夠與真實數(shù)據(jù)的分布Pdata(x)一致,換句話說,相當(dāng)于在數(shù)據(jù)量無限的條件下,通過擬合G(z)得到的分布與通過擬合x得到的分布盡量一致,這一點不同于要求各個G(z)本身和各個真實數(shù)據(jù)x本身相同,這樣才能保證G產(chǎn)生出的數(shù)據(jù)既與真實數(shù)據(jù)有一定相似性,同時又不同于真實數(shù)據(jù);

  • (3) -D(G(z))變成了1-D(G(z)):直觀上來說,加了對數(shù)操作以后,要求logf的f必須是正數(shù),所以不能直接用-D(G(z)),這一點并不影響最終的最優(yōu)解。

2、理論保證

GAN除了提供了一種對抗訓(xùn)練的框架外,另一個重要貢獻是其收斂性的理論證明。

作者通過將GAN的優(yōu)化過程進行分解,從數(shù)學(xué)推導(dǎo)上嚴(yán)格證明了:在假設(shè)G和D都有足夠的capacity的條件下,如果在迭代過程中的每一步,D都可以達(dá)到當(dāng)下在給定G時的最優(yōu)值,并在這之后再更新G,那么最終Pg就一定會收斂于Pdata。也正是基于上述的理論,原始文章中是每次迭代中優(yōu)先保證D在給定當(dāng)前G下達(dá)到最優(yōu),然后再去更新G到最優(yōu),如此循環(huán)迭代完成訓(xùn)練。這一證明為GAN的后續(xù)發(fā)展奠定了堅實基礎(chǔ),使其沒有像許多其它深度模型一樣只是被應(yīng)用而沒有廣而深的改進。

3、改進方向

原文只針對框架本身進行了理論證明和實驗驗證,表明了GAN的理論基礎(chǔ)及其有效性,而對于其中的許多細(xì)節(jié)并沒深究(相當(dāng)于開采了一個大坑等人來填),比如文章中的輸入信號只是隨機噪聲,比如原文中的G和D都只是以最簡單的MLP來建模;另外,作者在文章結(jié)尾還列出了該模型可以改進的5個參考方向,進一步為后來逐漸廣泛的研究做了鋪墊。作者給出的參考方向主要包括:

  • (1) 將GAN改進為條件產(chǎn)生式模型:這一點最早在GAN公開后的半年就得到了部分解決,即conditional GAN(ARXIV-2014)的工作,該模型實現(xiàn)了給定條件的數(shù)據(jù)生成,但現(xiàn)在在各個領(lǐng)域特別是圖像和視頻相關(guān)的生成工作中,也依然有許多對于給定條件生成數(shù)據(jù)的任務(wù)的相關(guān)改進與研究;

  • (2) 改進輸入z:不直接用隨機噪聲信號,而是可以用其它網(wǎng)絡(luò)根據(jù)真實數(shù)據(jù)x學(xué)習(xí)一個z,然后再輸入G,相當(dāng)于是對數(shù)據(jù)x做了一個編碼;這一點目前基本上在多數(shù)基于GAN的應(yīng)用中都被采納;

  • (3) 對條件分布建模,由已有數(shù)據(jù)預(yù)測未出現(xiàn)的數(shù)據(jù):往這個方向改進的相關(guān)工作相對出現(xiàn)較晚,直到2016年才逐步開始有相關(guān)工作出現(xiàn);

  • (4) 半監(jiān)督學(xué)習(xí):在2015年年底出現(xiàn)了將GAN用于半監(jiān)督問題的工作;另外,現(xiàn)有的許多GAN工作也都表明通過加入少量類別標(biāo)簽,引入有標(biāo)簽數(shù)據(jù)的類別損失度量,不僅功能上實現(xiàn)了半監(jiān)督學(xué)習(xí),同時也有助于GAN的穩(wěn)定訓(xùn)練;

  • (5) 提升GAN的訓(xùn)練效率:目前比GAN的訓(xùn)練效率更加要緊的訓(xùn)練穩(wěn)定性問題還沒有得到很好的解決,因此相對來說,目前這一點的研究并不廣泛,而且相比較其它的產(chǎn)生式模型而言,GAN的速度也不算是一個非?!巴虾笸取钡狞c。

除了作者給出的以上幾個參考方向外,目前GAN在計算機視覺中的超分辨率圖像生成、視頻幀的生成、藝術(shù)風(fēng)格遷移等問題中都得到了廣泛關(guān)注。

二、GAN相關(guān)工作對比

我們這里主要對比兩類工作,一類是像GAN一樣將產(chǎn)生器與判別器聯(lián)合學(xué)習(xí)的工作,另一類是深度學(xué)習(xí)領(lǐng)域中當(dāng)前應(yīng)用比較多的深度產(chǎn)生式模型:

對比1:產(chǎn)生器與判別器聯(lián)合學(xué)習(xí)的相關(guān)工作

在傳統(tǒng)的機器學(xué)習(xí)領(lǐng)域,很早就引入了將判別式模型與產(chǎn)生式模型進行聯(lián)合學(xué)習(xí)的想法,比如Tony Jebara早在2001年的畢業(yè)論文中就以最大熵的形式將判別式模型與產(chǎn)生式模型結(jié)合起來聯(lián)合學(xué)習(xí);2007年UC的Zhuowen Tu也提出將基于boosting分類器的判別器與基于采樣的產(chǎn)生式模型相結(jié)合,來產(chǎn)生出服從真實分布的樣本;2012年清華的Jun Zhu老師發(fā)表在JMLR上的工作,則是將最大間隔機制與貝葉斯模型相結(jié)合進行產(chǎn)生式模型的學(xué)習(xí)。與這些模型相比,GAN更加迎合了當(dāng)下大數(shù)據(jù)的需求和深度學(xué)習(xí)的熱潮,并且更重要的是它給出了一個大的框架而不是一個具體的模型;

對比2:其它同類深度產(chǎn)生式模型工作

  • GAN與VAE:VAE中模型性能的好壞直接依賴于其假設(shè)的近似分布q的好壞,對于q的選擇需要一定的經(jīng)驗信息;并且受變分方法本身的限制,其最終模擬出的概率分布一定會存在有偏置,而GAN本身則不存在這個問題,且其原則上可以漸進的逼近任意概率分布,可以認(rèn)為是一種非參數(shù)的產(chǎn)生式建模方法;

  • GAN與pixel RNN/CNN:pixel RNN中是將圖像的生成問題轉(zhuǎn)化為像素序列的預(yù)測和生成問題,因此需要對每個像素逐個操作,而GAN是直接對整幅圖像進行衡量、評價和生成,因此相對來說考慮了整體信息且速度相對較快。

這里主要是從GAN的優(yōu)點的角度來進行對比的,但GAN模型也存在有不如其它模型的地方,比如目前的最大缺陷是其訓(xùn)練過程中的穩(wěn)定性和收斂性難以保證,在2016年有許多相關(guān)工作都在嘗試解決其訓(xùn)練穩(wěn)定性問題。

GAN在2016年的部分進展

GAN在2016年得到了幾乎全方位的研究,包括其訓(xùn)練技巧與模型架構(gòu)改進,理論擴展與實際應(yīng)用問題等多個角度,都有大量成果出現(xiàn),難以全部一一列出。下面僅選取其中較為突出的或者被廣泛關(guān)注和研究的部分工作進行介紹。

一、理論框架層面擴展與改進

對GAN模型的理論框架層面的改進工作主要可以歸納為兩類:一類是從第三方的角度,而不是從GAN模型本身,來看待GAN并進行改進和擴展的方法;第二類是從GAN模型框架的穩(wěn)定性、實用性等角度出發(fā)對模型本身進行改進的工作。

1、以第三方角度看待GAN的兩個典型工作:

f-GAN與EBGAN,一個從距離度量的角度出發(fā),一個從能量模型的角度出發(fā),分別對GAN進行闡釋和改進,非常有助于我們對GAN做出新的理解:

  • (1) f-GAN (NIPS-2016):該文提出了一種f-divergence,并證明了GAN只是在f-divergence取某種特定度量時的特殊情況。這個f-divergence包括了常見的多種概率分布的距離度量,比如KL散度、Pearson散度等。具體來說,作者將GAN的優(yōu)化問題求解中的步驟進行分解,將真實數(shù)據(jù)分布的估計問題轉(zhuǎn)化為某種divergence的最小化問題,而這個divergence就正是作者定義的f-divergence的一種特例。最后,作者利用GAN模型框架結(jié)合不同度量條件,即不同divergence進行圖像生成。其中,在選擇KL散度的度量方式時,對比結(jié)果如下圖所示,可以看出兩者的效果其實相差不大。

深度解讀:GAN模型及其在2016年度的進展

  • (2) EBGAN (ICLR-2017,submitted) : EBGAN [6]是Yann LeCun課題組提交到ICLR2017的一個工作,從能量模型的角度對GAN進行了擴展。EBGAN將判別器看做是一個能量函數(shù),這個能量函數(shù)在真實數(shù)據(jù)域附近的區(qū)域中能量值會比較小,而在其他區(qū)域(即非真實數(shù)據(jù)域區(qū)域)都擁有較高能量值。因此,EBGAN中給予GAN一種能量模型的解釋,即生成器是以產(chǎn)生能量最小的樣本為目的,而判別器則以對這些產(chǎn)生的樣本賦予較高的能量為目的。

從能量模型的角度來看待判別器和GAN的好處是,我們可以用更多更寬泛的結(jié)構(gòu)和損失函數(shù)來訓(xùn)練GAN結(jié)構(gòu),比如文中就用自編碼器(AE) 的結(jié)構(gòu)來作為判別器實現(xiàn)整體的GAN框架,如下圖所示:

深度解讀:GAN模型及其在2016年度的進展

在訓(xùn)練過程中,EBGAN比GAN展示出了更穩(wěn)定的性能,也產(chǎn)生出了更加清晰的圖像,如下圖所示。

深度解讀:GAN模型及其在2016年度的進展

2、Info GAN模型

接下來,從GAN網(wǎng)絡(luò)本身出發(fā)而對GAN進行改進并且取得了良好效果的一個重要工作,就是大名鼎鼎的Info GAN模型。它以成功習(xí)得數(shù)據(jù)的disentangled的表示和擁有穩(wěn)定的訓(xùn)練效果而受到廣泛關(guān)注:

Info GAN (NIPS-2016)是OPENAI對GAN的一個重要擴展,被認(rèn)為是OPENAI去年的五大突破之一。原始的GAN模型通過對抗學(xué)習(xí)最終可以得到一個能夠與真實數(shù)據(jù)分布一致的模型分布,此時雖然模型相當(dāng)于已經(jīng)學(xué)到了數(shù)據(jù)的有效語義特征,但輸入信號z中的具體維度與數(shù)據(jù)的語義特征之間的對應(yīng)關(guān)系并不清楚,比如z中的哪些維度對應(yīng)于光照變化或哪些維度對應(yīng)于pose變化是不明確的。而infoGAN不僅能對這些對應(yīng)關(guān)系建模,同時可以通過控制相應(yīng)維度的變量來達(dá)到相應(yīng)的變化,比如光照的變化或pose的變化。

其思想是把輸入噪聲z分成兩個部分:不可壓縮的噪聲信號z和可解釋的有隱含意義的c。比如對于mnist手寫數(shù)字來說,c可以對應(yīng)于筆畫粗細(xì)、圖像光照、字體傾斜度等,用C1,C2,…,CL表示,我們稱之為latent code,而z則可以認(rèn)為是剩下的不知道怎么描述的或者說不能明確描述的信息。此時生成器的輸出就從原來的G(z)變成了G(z,c);在學(xué)習(xí)過程中,為了避免學(xué)到一些trivial的latent code而忽略了重要的code,文章對原始的GAN目標(biāo)函數(shù)加了一個約束,即約束latent code c和生成器的輸出G(z,c)之間的互信息I(c;G(z,c))越高越好,以此希望能學(xué)到比較重要的有意義的codes c,從而此時的目標(biāo)函數(shù)即為:

深度解讀:GAN模型及其在2016年度的進展

在具體的優(yōu)化過程中,作者采用變分推斷的思想,引入變分分布來逼近真實分布,并與最優(yōu)互信息下界的步驟輪流迭代進行,實現(xiàn)最終的求解。

在實驗中,作者通過只改變latent code c中的某一個維度,來觀察生成數(shù)據(jù)的變化。其實驗確實證明:latent code確實學(xué)到了一些維度,如對應(yīng)于圖像的角度或光照的因素,也即說明InfoGAN確實學(xué)習(xí)到了數(shù)據(jù)中的disentangled的可解釋部分的表示。其效果參考下圖。

深度解讀:GAN模型及其在2016年度的進展

3、改進方向

  • 另外一種從GAN模型本身出發(fā)進行改進的工作是將GAN與其它模型結(jié)合,綜合利用GAN模型與其它模型的優(yōu)點來完成數(shù)據(jù)生成任務(wù)。

比如ARXIV-2016上將GAN與RNN進行結(jié)合,ICML-2016上的提出的將GAN與VAE的思想相結(jié)合的工作等,這里以GAN+VAE (ICML-2016) 為例進行介紹:

雖然在第一個部分我們強調(diào)了GAN與VAE的不同,但這兩者并不是完全沖突的,工作從另一個角度將兩者結(jié)合到了一起。主要是作者利用GAN中的判別器學(xué)習(xí)到的特征來構(gòu)建VAE的重構(gòu)誤差,而不采用常規(guī)的VAE中的像素級的誤差,其結(jié)構(gòu)如下圖所示。

深度解讀:GAN模型及其在2016年度的進展

在上面的框架中,我們可以把前兩個部分 (encoder + decoder/generator) 看做一個產(chǎn)生式模型的整體,從而和最后一個部分 (discriminator) 構(gòu)成了擴展的GAN模型;也可以將最后兩個部分 (decoder + discriminator) 看做是一個整體,其中discriminator的存在看做是用于替換原來的element-wise的重構(gòu)誤差的計算,相當(dāng)于對decoder的一個輔助,從而此時整個模型架構(gòu)可以看做是一個自編碼器。因此整體上來說,該模型綜合了VAE與GAN兩種模型的優(yōu)點,屬于將GAN與其他方法結(jié)合的一個代表性工作。

  • 最后一種改進,是從GAN本源出發(fā),對GAN進行半監(jiān)督形式的擴展,這類工作目前的做法都大同小異,通過引入類別損失來進行GAN的學(xué)習(xí)。

這里以CatGAN (ICLR-2016) 為例進行說明:通常無監(jiān)督的分類方法會被轉(zhuǎn)化為一個聚類問題,在判別式的聚類方法中通常是以某種距離作為度量準(zhǔn)則,從而將數(shù)據(jù)劃分為多個類別,而本文則是采用數(shù)據(jù)的熵來作為衡量標(biāo)準(zhǔn)構(gòu)建來CatGAN (ICLR-2016) 。具體來說,對于真實的數(shù)據(jù),模型希望判別器不僅能具有較大的確信度將其劃分為真實樣本,同時還有較大的確信度將數(shù)據(jù)劃分到某一個現(xiàn)有的類別中去;而對于生成數(shù)據(jù)卻不是十分確定要將其劃分到哪一個現(xiàn)有的類別,也就是這個不確信度比較大,從而生成器的目標(biāo)即為產(chǎn)生出那些“將其劃分到某一類別中去”的確信度較高的樣本,嘗試騙過判別器。接下來,為了衡量這個確信程度,作者用熵來表示,熵值越大,即為越不確定;而熵值越小,則表示越確定。然后,將該確信度目標(biāo)與原始GAN的真?zhèn)舞b別的優(yōu)化目標(biāo)結(jié)合,即得到了CatGAN的最終優(yōu)化目標(biāo)。

深度解讀:GAN模型及其在2016年度的進展

對于半監(jiān)督的情況,即當(dāng)部分?jǐn)?shù)據(jù)有標(biāo)簽時,那么對有標(biāo)簽數(shù)據(jù)計算交叉熵?fù)p失,而對其他數(shù)據(jù)計算上面的基于熵的損失,然后在原來的目標(biāo)函數(shù)的基礎(chǔ)上進行疊加即得,當(dāng)用該半監(jiān)督方法進行目標(biāo)識別與分類時,其效果雖然相對較優(yōu),但相對當(dāng)下state-of-the-art的方法并沒有比較明顯的提升。但其基于熵?fù)p失的無監(jiān)督訓(xùn)練方法卻表現(xiàn)較好,其實驗效果如下圖所示,可以看到,對于如下的典型環(huán)形數(shù)據(jù),CatGAN可以較好地找到兩者的分類面,實現(xiàn)無監(jiān)督聚類的功能。

二、模型改進(偏應(yīng)用層面)

1、提到GAN在應(yīng)用層面的改進,就不得不說perceptual similarity,該度量改變了以往的按照圖像的像素級差異來衡量損失的情況,使模型更加魯棒。在當(dāng)下的多數(shù)圖像生成以及視頻數(shù)據(jù)處理等模型中都有將perceptual similarity加入考慮。

(1) Perceptual Similarity Metrics (NIPS-2016)

Perceptual Similarity Metrics 的主要貢獻在于提出了一種新的度量,有助于使GAN產(chǎn)生清晰圖像。其方法是將通常在原始圖像空間的損失度量替換為在特征空間的損失度量。具體來說,在訓(xùn)練GAN時,除了原始GAN中的對抗訓(xùn)練損失,額外加入了兩個損失項,共計三個損失項,分別為:

  • 特征空間損失Lfeat:文章構(gòu)建了一個比較器網(wǎng)絡(luò)C,然后比較真實樣本和產(chǎn)生的樣本分別作為輸入時,網(wǎng)絡(luò)的特征圖(feature map)的差異性,即

深度解讀:GAN模型及其在2016年度的進展

這里的一個問題是網(wǎng)絡(luò)中間層的特征圖的相似性,只能代表高層的相似性,會使產(chǎn)生出的相對低層的像素級數(shù)據(jù)出現(xiàn)畸形,因此需要加入圖像的一些先驗信息進行約束。而這個先驗信息就通過對抗損失來體現(xiàn),從而有了下面的對抗損失;

  • 對抗損失:這里的對抗損失,即與生成器一起訓(xùn)練一個判別器,其中判別模塊的目的是為了區(qū)分開產(chǎn)生數(shù)據(jù)與真實數(shù)據(jù),而生成器的目的則是為了盡量的迷惑判別器,其數(shù)學(xué)形式與原始GAN損失相似,即

判別器D以最小化如下?lián)p失為目標(biāo):

深度解讀:GAN模型及其在2016年度的進展

生成器G以最小化如下?lián)p失為目標(biāo):

深度解讀:GAN模型及其在2016年度的進展

  • 圖像空間損失:用生成數(shù)據(jù)與真實數(shù)據(jù)的L2損失來表示,對像素層面的相似性進行約束,即為

深度解讀:GAN模型及其在2016年度的進展

最終的目標(biāo)函數(shù)為三個loss項的加權(quán)和。

其實驗結(jié)果非常值得關(guān)注,因其清晰的表明了各個loss的作用,如下圖所示??梢钥闯?,如果沒有對抗損失Ladv,產(chǎn)生的結(jié)果非常差;如果沒有特征空間的損失項Lfeat,會使產(chǎn)生的圖像只有大概的輪廓信息,但會丟失許多細(xì)節(jié)信息;如果沒有圖像空間損失Limg,最終產(chǎn)生的結(jié)果跟有Limg差不多,但在訓(xùn)練的時候沒有這一項的話會使網(wǎng)絡(luò)更容易不穩(wěn)定;而同時利用三項loss的結(jié)果則可以相對穩(wěn)定的產(chǎn)生出較為清晰的圖像。目前該度量在許多基于GAN的模型中都得到了應(yīng)用。

深度解讀:GAN模型及其在2016年度的進展

(2) 超分圖像生成 (ECCV-2016; ARXIV-2016):

在與上述工作的幾乎同時期(相差僅一個月),Li Fei-Fei團隊也提出了類似的perceptual loss (ECCV-2016),通過網(wǎng)絡(luò)中間層的特征圖的差異來作為代價函數(shù),利用GAN的框架,進行風(fēng)格遷移和超分圖像的生成任務(wù);

時隔約半年后,2016年9月Twitter的SRGAN基于上述損失,提出一種新的損失函數(shù)與GAN本身的loss結(jié)合,實現(xiàn)了從低分辨率圖像到超分辨率圖像的生成。SRGAN與上述NIPS-2016工作的主要不同是:(1) 將圖像空間的損失替換成了一個對生成圖像整體方差的約束項,以保證圖像的平滑性;(2) 采用了某種規(guī)則化的特征圖差異損失,而不是直接累加求和:SRGAN將生成數(shù)據(jù)和真實數(shù)據(jù)分別輸入VGG-19網(wǎng)絡(luò),根據(jù)得到的feature map的差異來定義損失項,其形式與NIPS-2016的主要不同在于加入了規(guī)則化的處理 (normalization),從而變成:

深度解讀:GAN模型及其在2016年度的進展

其中Wij, Hij為feature map的寬和高,?(i,j)表示在VGG-19的網(wǎng)絡(luò)中第i個max pooling層前的第j個卷積層。最后,結(jié)合這三個損失項:對抗損失、圖像平滑項、特征圖差異,送入GAN框架,可以生成相對其它方法明顯效果好的超分辨率圖像,其對比如下圖所示:

深度解讀:GAN模型及其在2016年度的進展

2、常規(guī)的從噪聲數(shù)據(jù)生成圖像和給定屬性產(chǎn)生圖像的任務(wù)可以看做是從噪聲到圖(輸入為噪聲,輸出為圖像)和從圖到圖(輸入為圖像,輸出為圖像)的問題,而ICML-2016上的工作另辟蹊徑,實現(xiàn)Image Captioning的反任務(wù),即從文本描述生成圖像。該文也是第一個提出用GAN的框架來實現(xiàn)從文本生成圖像的工作,對于推動GAN以及產(chǎn)生式模型在實際中的進一步應(yīng)用具有一定意義:

該文實現(xiàn)的任務(wù)是產(chǎn)生滿足文本描述的圖像,相當(dāng)于是以文本描述為條件來產(chǎn)生圖像,因此可以在某種程度上看做是對原始的conditional GAN模型(ARXIV-2014) 的一種擴展和應(yīng)用。其模型架構(gòu)如下圖所示,將文本進行編碼后的特征與隨機噪聲信息串接輸入產(chǎn)生器產(chǎn)生圖像;而編碼后的文本特征也同時作為監(jiān)督信號輸入判別器以構(gòu)建目標(biāo)函數(shù)。

深度解讀:GAN模型及其在2016年度的進展

其效果也非??捎^,如下圖所示,可以看出,大部分時候都能產(chǎn)生出與文本意義相對應(yīng)的圖像。

深度解讀:GAN模型及其在2016年度的進展

3、在處理靜態(tài)圖像的生成任務(wù)的同時,GAN也逐漸被擴展到了視頻處理領(lǐng)域,NIPS-2016上的[14]即為一個代表性工作,該工作可以同時生成和預(yù)測下一視頻幀:

為了產(chǎn)生出具有時域變化的視頻幀,該模型在生成器部分將動態(tài)前景部分和靜態(tài)背景部分分開建模和生成,構(gòu)建two-stream的樣本生成器,然后將產(chǎn)生的前景和背景進行組合得到產(chǎn)生出的video;對于判別器,主要完成兩個任務(wù):區(qū)分出產(chǎn)生數(shù)據(jù)與真實數(shù)據(jù),同時要識別出視頻幀間進行的行為,從而指導(dǎo)生成器去產(chǎn)生數(shù)據(jù)。其結(jié)構(gòu)如下圖所示。

深度解讀:GAN模型及其在2016年度的進展

三、訓(xùn)練技巧

由于GAN的模型不穩(wěn)定性問題比較突出,因而在2016年出現(xiàn)的關(guān)于GAN訓(xùn)練技巧的成果有許多,目前被廣泛應(yīng)用的主要包括:DCGAN (ICLR-2016) 和Improved GAN (NIPS-2016 workshop),特別是DCGAN,幾乎在各大GAN模型中都能看到它的身影。

深度解讀:GAN模型及其在2016年度的進展

1、DCGAN (ICLR-2016):

DCGAN 的模型結(jié)構(gòu)如上圖所示,其輸入為100維的噪聲向量,經(jīng)過一系列的strided conv操作,形成64x64的圖像,即為G(z),而判別器結(jié)構(gòu)與之類似,只是是由一系列的卷積操作構(gòu)成 (而非strided conv),最后由average pooling形成判別器的標(biāo)量輸出。在本文中,最主要的是提出了以下三條有助于穩(wěn)定訓(xùn)練GAN的方法:

  • (1) 去掉max pooling操作:用strided conv代替原來的pooling操作,使網(wǎng)絡(luò)自動學(xué)習(xí)合適的采樣核函數(shù);

  • (2) 去掉全連接層:用global average pooling代替全連接層;雖然該操作可能會導(dǎo)致收斂速度變慢,但有助于整體訓(xùn)練的穩(wěn)定性;

  • (3) 加入BN層:之前的LAPGAN (NIPS-2015) 指出如果像常規(guī)模型一樣對所有層都施加BN,則會引起GAN的模型崩潰,而DCGAN通過對generator的輸出層和discriminator的輸入層不用BN,而其他層都用BN,則緩解了模型崩潰問題,并且有效避免了模型的振蕩和不穩(wěn)定問題。

  • (4) 激活函數(shù)的選擇:在generator中除了輸出層用tanh外,其余都用RELU函數(shù);而在discriminator中采用leaky ReLU函數(shù)。

目前前三點已幾乎成為當(dāng)下諸多GAN模型實現(xiàn)的標(biāo)配;而許多基于GAN模型的實驗設(shè)計也都是基于DCGAN的結(jié)構(gòu)或總結(jié)的上述原則而進行的,包括前面OpenAI的Info-GAN、NIPS-2016的視頻生成模型、Twitter的超分辨率的圖像生成模型等等。

2、Improved GAN (NIPS-2016 workshop):

該工作主要給出了5條有助于GAN穩(wěn)定訓(xùn)練的經(jīng)驗:

  • (1) 特征匹配:讓生成器產(chǎn)生的樣本與真實樣本在判別器中間層的響應(yīng)一致,即使判別器從真實數(shù)據(jù)和生成數(shù)據(jù)中提取的特征一致,而不是在判別器網(wǎng)絡(luò)的最后一層才做判斷,有助于提高模型的穩(wěn)定性;其實驗也表明在一些常規(guī)方法訓(xùn)練GAN不穩(wěn)定的情況中,若用特征匹配則可以有效避免這種不穩(wěn)定;

  • (2) Minibatch Discrimination:在判別器中,不再每次對每一個生成數(shù)據(jù)與真實數(shù)據(jù)的差異性進行比較,而是一次比較一批生成數(shù)據(jù)與真實數(shù)據(jù)的差異性。這種做法提高了模型的魯棒性,可以緩解生成器輸出全部相似或相同的問題;

  • (3) Historical Averaging:受fictitious play的游戲算法啟發(fā),作者提出在生成器和判別器的目標(biāo)函數(shù)中各加一個對參數(shù)的約束項

深度解讀:GAN模型及其在2016年度的進展

其中θ[i]表示在時刻i的模型參數(shù),該操作可以在一些情況下幫助模型達(dá)到模型的平衡點;

  • (4) 單邊標(biāo)簽平滑 (One-sided Label Smoothing):當(dāng)向GAN中引入標(biāo)簽數(shù)據(jù)時,最好是將常規(guī)的0、1取值的二值標(biāo)簽替換為如0.1,0.9之類的平滑標(biāo)簽,可以增加網(wǎng)絡(luò)的抗干擾能力;但這里之所以說單邊平滑,是因為假設(shè)生成數(shù)據(jù)為0.1而非0的話會使判別器的最優(yōu)判別函數(shù)的形狀發(fā)生變化,會使生成器偏向于產(chǎn)生相似的輸出,因此對于取值0的標(biāo)簽保持不變,不用0.1一類的小數(shù)據(jù)替換,即為單邊標(biāo)簽平滑;

  • (5) Virtual Batch Normalization:VBN相當(dāng)于是BN的進階版,BN是一次對一批數(shù)據(jù)進行歸一化,這樣的一個副作用是當(dāng)“批”的大小不同時,BN操作之后的歸一化常量會引起訓(xùn)練過程的波動,甚至超過輸入信號z的影響(因z是隨機噪聲);而VBN通過引入一個參考集合,每次將當(dāng)下的數(shù)據(jù)x加入?yún)⒖技蠘?gòu)建一個新的虛擬的batch,然后在這個虛擬的batch上進行歸一化,如此可以緩解原始BN操作所引起的波動問題。

3、Github資源:

針對GAN訓(xùn)練過程的不穩(wěn)定問題, Soumith等人在github上專門總結(jié)了一個文檔(點擊可看),總結(jié)了17種可以嘗試的方法,可以為多數(shù)訓(xùn)練過程提供參考。

總結(jié)

本文主要列出了2016年中部分較有代表性或應(yīng)用較為廣泛的工作,而實際上,在過去一年里對于GAN的擴展和改進工作還有許多,包括GAN與其他方法如強化學(xué)習(xí)的融合、GAN在半監(jiān)督學(xué)習(xí)領(lǐng)域的擴展等都值得關(guān)注。

GAN提供的不僅僅是單一的某個模型,而是一種框架,從這個角度來說,GAN可以與許多其它方法進行融合,在GAN的框架下進行融合;但目前GAN的訓(xùn)練穩(wěn)定性問題仍未能很好地解決,甚至Ian J. Goodfellow自己也認(rèn)為相對于GAN的穩(wěn)定性問題而言,GAN新架構(gòu)的開發(fā)反而顯得關(guān)系不大;同時GAN也面臨著一個稍許尷尬的問題,即缺乏客觀評估,其產(chǎn)生樣本的質(zhì)量好壞仍然依賴人眼去判斷。另外,從應(yīng)用的角度來說,目前多數(shù)方法都是在GAN原始框架的基礎(chǔ)上稍作修改,比如修改損失函數(shù),或者在條件GAN或LAPGAN的基礎(chǔ)上改進,但目前并沒有一個具有突破性壓倒性的圖像生成模型,可能這也和GAN缺乏客觀的評估指標(biāo)有關(guān);綜合這些問題,GAN還有很長的路可以走......

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

深度解讀:GAN模型及其在2016年度的進展

分享:
相關(guān)文章

專欄作者

高質(zhì)量原創(chuàng)內(nèi)容平臺,學(xué)術(shù)界、工業(yè)界一線專家撰稿,致力于推送人工智能與深度學(xué)習(xí)最新技術(shù)、產(chǎn)品和活動。
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說