1. 程式人生 > >解讀GAN及其 2016 年度進展

解讀GAN及其 2016 年度進展

摘要

本文主要包括兩方面內容:首先對GAN的基礎概念與理論基礎進行介紹,並分析了其模型構建原理與優勢等;其次對其在2016年度的主要進展進行梳理和概括,主要包括從模型理論框架到實際應用問題中的相關擴充套件與改進及其訓練技巧等工作。(以下僅為個人觀點,不當之處歡迎大家批評指正。)

導讀:在剛剛過去的2016,人工智慧仍然是科技領域最火爆的話題,如何依靠人工智慧改造傳統行業,提高效率、降低成本成為學界業界的共同課題。一些過去被認為只有人類能創造的影象、文字及語音等,經由GAN模型對樣本的學習,可以由AI代勞,在傳統的圖樣設計行業可以代替水平參差不齊、成本越來越高的設計師,在媒體行業可以將編輯從一些繁瑣重複的資料轉文字工作中解放出來,在創作背景音樂時可以比人類作曲家快千百倍。

(本導讀由線性資本提供)


GAN,全稱為Generative Adversarial Nets,直譯為生成式對抗網路。它一方面將產生式模型拉回到了一直由判別式模型稱霸的AI競技場,引起了學者甚至大眾對產生式模型的研究興趣,同時也將對抗訓練從常規的遊戲競技領域引到了更一般領域,引起了從學術界到工業界的普遍關注。筆者對幾大會議等進行了不完全統計,其中:

ICLR-2017提交論文:45篇產生式模型相關,37篇與對抗訓練相關;

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

Arxiv:在Computer Science分類下約有500篇與對抗網路相關文章,其中絕大多數為2016年的工作;

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

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

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

解讀GAN

一. 基本的GAN模型

1.1 基本框架:


原始GAN模型的基本框架如上圖所示,其主要目的是要由判別器D輔助生成器G產生出與真實資料分佈一致的偽資料。模型的輸入為隨機噪聲訊號z;該噪聲訊號經由生成器G對映到某個新的資料空間,得到生成的資料G(z);接下來,由判別器D根據真實資料x與生成資料G(z)的輸入來分別輸出一個概率值或者說一個標量值,表示D對於輸入是真實資料還是生成資料的置信度,以此判斷G的產生資料的效能好壞;當最終D不能區分真實資料x和生成資料G(z)時,就認為生成器G達到了最優。

D為了能夠區分開兩者,其目標是使D(x)與D(G(z))儘量往相反的方向跑,增加兩者的差異,比如使D(x)儘量大而同時使D(G(z))儘量小;而G的目標是使自己產生的資料在D上的表現D(G(z))儘量與真實資料的表現D(x)一致,讓D不能區分生成資料與真實資料。因此,這兩個模組的優化過程是一個相互競爭相互對抗的過程,兩者的效能在迭代過程中不斷提高,直到最終D(G(z))與真實資料的表現D(x)一致,此時G和D都不能再進一步優化。

我們若對這個過程直接建模,應當是如下的minimax問題(我將其稱為樸素minimax問題):

但是,原文[1]中的目標函式卻為如下形式:

可以看到,GAN的目標函式與樸素minimax問題相比,主要多了三個變化:

(1) 加入了求對數操作:求對數的操作在理論上並不會影響最終收斂到的最優值,但對數運算元的變換可以緩解資料分佈偏差問題,比如減少資料分佈的單邊效應的影響,減少資料分佈形式上的波動等,同時在實際的程式實現中,對數運算元也可以避免許多數值問題,因此成為統計學中的常用做法,比如在許多問題中我們並不直接求最大似然,而是去求最大對數似然也是類似的原因;

(2) 加入求期望的操作:這一點是由於我們的最終目的是希望生成資料的分佈Pg(G(z))能夠與真實資料的分佈Pdata(x)一致,換句話說,相當於在資料量無限的條件下,通過擬合G(z)得到的分佈與通過擬合x得到的分佈儘量一致,這一點不同於要求各個G(z)本身和各個真實資料x本身相同,這樣才能保證G產生出的資料既與真實資料有一定相似性,同時又不同於真實資料;

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

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

作者通過將GAN的優化過程進行分解,從數學推導上嚴格證明了:在假設G和D都有足夠的capacity的條件下,如果在迭代過程中的每一步,D都可以達到當下在給定G時的最優值,並在這之後再更新G,那麼最終Pg就一定會收斂於Pdata。也正是基於上述的理論,原始文章中是每次迭代中優先保證D在給定當前G下達到最優,然後再去更新G到最優,如此迴圈迭代完成訓練。這一證明為GAN的後續發展奠定了堅實基礎,使其沒有像許多其它深度模型一樣只是被應用而沒有廣而深的改進。

1.3 改進方向:

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

(1) 將GAN改進為條件產生式模型:這一點最早在GAN公開後的半年就得到了部分解決,即conditional GAN(ARXIV-2014)的工作,該模型實現了給定條件的資料生成,但現在在各個領域特別是影象和視訊相關的生成工作中,也依然有許多對於給定條件生成資料的任務的相關改進與研究;

(2) 改進輸入z:不直接用隨機噪聲訊號,而是可以用其它網路根據真實資料x學習一個z,然後再輸入G,相當於是對資料x做了一個編碼;這一點目前基本上在多數基於GAN的應用中都被採納;

(3) 對條件分佈建模,由已有資料預測未出現的資料:往這個方向改進的相關工作相對出現較晚,直到2016年才逐步開始有相關工作出現;

(4) 半監督學習:在2015年年底出現了將GAN用於半監督問題的工作;另外,現有的許多GAN工作也都表明通過加入少量類別標籤,引入有標籤資料的類別損失度量,不僅功能上實現了半監督學習,同時也有助於GAN的穩定訓練;

(5) 提升GAN的訓練效率:目前比GAN的訓練效率更加要緊的訓練穩定性問題還沒有得到很好的解決,因此相對來說,目前這一點的研究並不廣泛,而且相比較其它的產生式模型而言,GAN的速度也不算是一個非常“拖後腿”的點。

除了作者給出的以上幾個參考方向外,目前GAN在計算機視覺中的超解析度影象生成、視訊幀的生成、藝術風格遷移等問題中都得到了廣泛關注。

二. GAN相關工作對比:

我們這裡主要對比兩類工作,一類是像GAN一樣將產生器與判別器聯合學習的工作,另一類是深度學習領域中當前應用比較多的深度產生式模型:

2.1 對比1:產生器與判別器聯合學習的相關工作:

在傳統的機器學習領域,很早就引入了將判別式模型與產生式模型進行聯合學習的想法,比如Tony Jebara早在2001年的畢業論文[2]中就以最大熵的形式將判別式模型與產生式模型結合起來聯合學習;2007年UC的Zhuowen Tu也提出將基於boosting分類器的判別器與基於取樣的產生式模型相結合[3],來產生出服從真實分佈的樣本;2012年清華的Jun Zhu老師發表在JMLR上的工作[4]則是將最大間隔機制與貝葉斯模型相結合進行產生式模型的學習。與這些模型相比,GAN更加迎合了當下大資料的需求和深度學習的熱潮,並且更重要的是它給出了一個大的框架而不是一個具體的模型;

2.2 對比2:其它同類深度產生式模型工作:

1) GAN與VAE:VAE中模型效能的好壞直接依賴於其假設的近似分佈q的好壞,對於q的選擇需要一定的經驗資訊;並且受變分方法本身的限制,其最終模擬出的概率分佈一定會存在有偏置,而GAN本身則不存在這個問題,且其原則上可以漸進的逼近任意概率分佈,可以認為是一種非引數的產生式建模方法;

2) GAN與pixel RNN/CNN:pixel RNN中是將影象的生成問題轉化為畫素序列的預測和生成問題,因此需要對每個畫素逐個操作,而GAN是直接對整幅影象進行衡量、評價和生成,因此相對來說考慮了整體資訊且速度相對較快。

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

GAN在2016年的部分進展

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

一. 理論框架層面擴充套件與改進:

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

1.1 下面首先介紹以第三方角度看待GAN的兩個典型工作:f-GAN與EBGAN,一個從距離度量的角度出發,一個從能量模型的角度出發,分別對GAN進行闡釋和改進,非常有助於我們對GAN做出新的理解:

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

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

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

在訓練過程中,EBGAN比GAN展示出了更穩定的效能,也產生出了更加清晰的影象,如下圖所示。

1.2 接下來,從GAN網路本身出發而對GAN進行改進並且取得了良好效果的一個重要工作,就是大名鼎鼎的Info GAN模型。它以成功習得資料的disentangled的表示和擁有穩定的訓練效果而受到廣泛關注:

Info GAN (NIPS-2016) [7]是OPENAI對GAN的一個重要擴充套件,被認為是OPENAI去年的五大突破之一。原始的GAN模型通過對抗學習最終可以得到一個能夠與真實資料分佈一致的模型分佈,此時雖然模型相當於已經學到了資料的有效語義特徵,但輸入訊號z中的具體維度與資料的語義特徵之間的對應關係並不清楚,比如z中的哪些維度對應於光照變化或哪些維度對應於pose變化是不明確的。而infoGAN不僅能對這些對應關係建模,同時可以通過控制相應維度的變數來達到相應的變化,比如光照的變化或pose的變化。其思想是把輸入噪聲z分成兩個部分:不可壓縮的噪聲訊號z和可解釋的有隱含意義的c。比如對於mnist手寫數字來說,c可以對應於筆畫粗細、影象光照、字型傾斜度等,用C1,C2,…,CL表示,我們稱之為latent code,而z則可以認為是剩下的不知道怎麼描述的或者說不能明確描述的資訊。此時生成器的輸出就從原來的G(z)變成了G(z,c);在學習過程中,為了避免學到一些trivial的latent code而忽略了重要的code,文章對原始的GAN目標函式加了一個約束,即約束latent code c和生成器的輸出G(z,c)之間的互資訊I(c;G(z,c))越高越好,以此希望能學到比較重要的有意義的codes c,從而此時的目標函式即為:

在具體的優化過程中,作者採用變分推斷的思想,引入變分分佈來逼近真實分佈,並與最優互資訊下界的步驟輪流迭代進行,實現最終的求解。

在實驗中,作者通過只改變latent code c中的某一個維度,來觀察生成資料的變化。其實驗確實證明:latent code確實學到了一些維度,如對應於影象的角度或光照的因素,也即說明InfoGAN確實學習到了資料中的disentangled的可解釋部分的表示。其效果參考下圖。

1.3 另外一種從GAN模型本身出發進行改進的工作是將GAN與其它模型結合,綜合利用GAN模型與其它模型的優點來完成資料生成任務。

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

雖然在第一個部分我們強調了GAN與VAE的不同,但這兩者並不是完全衝突的,工作[8]從另一個角度將兩者結合到了一起。主要是作者利用GAN中的判別器學習到的特徵來構建VAE的重構誤差,而不採用常規的VAE中的畫素級的誤差,其結構如下圖所示。

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

1.4 最後一種改進,是從GAN本源出發,對GAN進行半監督形式的擴充套件,這類工作目前的做法都大同小異,通過引入類別損失來進行GAN的學習。

這裡以CatGAN (ICLR-2016) [9] 為例進行說明:通常無監督的分類方法會被轉化為一個聚類問題,在判別式的聚類方法中通常是以某種距離作為度量準則,從而將資料劃分為多個類別,而本文則是採用資料的熵來作為衡量標準構建來CatGAN (ICLR-2016) 。具體來說,對於真實的資料,模型希望判別器不僅能具有較大的確信度將其劃分為真實樣本,同時還有較大的確信度將資料劃分到某一個現有的類別中去;而對於生成資料卻不是十分確定要將其劃分到哪一個現有的類別,也就是這個不確信度比較大,從而生成器的目標即為產生出那些“將其劃分到某一類別中去”的確信度較高的樣本,嘗試騙過判別器。接下來,為了衡量這個確信程度,作者用熵來表示,熵值越大,即為越不確定;而熵值越小,則表示越確定。然後,將該確信度目標與原始GAN的真偽鑑別的優化目標結合,即得到了CatGAN的最終優化目標。

對於半監督的情況,即當部分資料有標籤時,那麼對有標籤資料計算交叉熵損失,而對其他資料計算上面的基於熵的損失,然後在原來的目標函式的基礎上進行疊加即得,當用該半監督方法進行目標識別與分類時,其效果雖然相對較優,但相對當下state-of-the-art的方法並沒有比較明顯的提升。但其基於熵損失的無監督訓練方法卻表現較好,其實驗效果如下圖所示,可以看到,對於如下的典型環形資料,CatGAN可以較好地找到兩者的分類面,實現無監督聚類的功能。

二. 模型改進(偏應用層面):

2.1 提到GAN在應用層面的改進,就不得不說perceptual similarity,該度量改變了以往的按照影象的畫素級差異來衡量損失的情況,使模型更加魯棒。在當下的多數影象生成以及視訊資料處理等模型中都有將perceptual similarity加入考慮。

(1) Perceptual Similarity Metrics (NIPS-2016)

Perceptual Similarity Metrics [10]的主要貢獻在於提出了一種新的度量,有助於使GAN產生清晰影象。其方法是將通常在原始影象空間的損失度量替換為在特徵空間的損失度量。具體來說,在訓練GAN時,除了原始GAN中的對抗訓練損失,額外加入了兩個損失項,共計三個損失項,分別為:

— 特徵空間損失Lfeat:文章構建了一個比較器網路C,然後比較真實樣本和產生的樣本分別作為輸入時,網路的特徵圖(feature map)的差異性,即

這裡的一個問題是網路中間層的特徵圖的相似性,只能代表高層的相似性,會使產生出的相對低層的畫素級資料出現畸形,因此需要加入影象的一些先驗資訊進行約束。而這個先驗資訊就通過對抗損失來體現,從而有了下面的對抗損失;

— 對抗損失:這裡的對抗損失,即與生成器一起訓練一個判別器,其中判別模組的目的是為了區分開產生資料與真實資料,而生成器的目的則是為了儘量的迷惑判別器,其數學形式與原始GAN損失相似,即

判別器D以最小化如下損失為目標:

生成器G以最小化如下損失為目標:


— 影象空間損失:用生成資料與真實資料的L2損失來表示,對畫素層面的相似性進行約束,即為

最終的目標函式為三個loss項的加權和。

其實驗結果非常值得關注,因其清晰的表明了各個loss的作用,如下圖所示。可以看出,如果沒有對抗損失Ladv,產生的結果非常差;如果沒有特徵空間的損失項Lfeat,會使產生的影象只有大概的輪廓資訊,但會丟失許多細節資訊;如果沒有影象空間損失Limg,最終產生的結果跟有Limg差不多,但在訓練的時候沒有這一項的話會使網路更容易不穩定;而同時利用三項loss的結果則可以相對穩定的產生出較為清晰的影象。目前該度量在許多基於GAN的模型中都得到了應用。

(2) 超分影象生成 (ECCV-2016; ARXIV-2016):

在與上述工作的幾乎同時期(相差僅一個月),Li Fei-Fei團隊也提出了類似的perceptual loss ([11], ECCV-2016),通過網路中間層的特徵圖的差異來作為代價函式,利用GAN的框架,進行風格遷移和超分影象的生成任務;

時隔約半年後,2016年9月Twitter的SRGAN[12]基於上述損失,提出一種新的損失函式與GAN本身的loss結合,實現了從低解析度影象到超解析度影象的生成。SRGAN與上述NIPS-2016工作的主要不同是:(1) 將影象空間的損失替換成了一個對生成影象整體方差的約束項,以保證影象的平滑性;(2) 採用了某種規則化的特徵圖差異損失,而不是直接累加求和:SRGAN將生成資料和真實資料分別輸入VGG-19網路,根據得到的feature map的差異來定義損失項,其形式與NIPS-2016的主要不同在於加入了規則化的處理 (normalization),從而變成:

其中Wij, Hij為feature map的寬和高,ϕ(i,j)表示在VGG-19的網路中第i個max pooling層前的第j個卷積層。最後,結合這三個損失項:對抗損失、影象平滑項、特徵圖差異,送入GAN框架,可以生成相對其它方法明顯效果好的超解析度影象,其對比如下圖所示:

2.2 常規的從噪聲資料生成影象和給定屬性產生影象的任務可以看做是從噪聲到圖(輸入為噪聲,輸出為影象)和從圖到圖(輸入為影象,輸出為影象)的問題,而ICML-2016上的工作[13]另闢蹊徑,實現Image Captioning的反任務,即從文字描述生成影象。該文也是第一個提出用GAN的框架來實現從文字生成影象的工作,對於推動GAN以及產生式模型在實際中的進一步應用具有一定意義:

該文實現的任務是產生滿足文字描述的影象,相當於是以文字描述為條件來產生影象,因此可以在某種程度上看做是對原始的conditional GAN模型(ARXIV-2014) 的一種擴充套件和應用。其模型架構如下圖所示,將文字進行編碼後的特徵與隨機噪聲資訊串接輸入產生器產生影象;而編碼後的文字特徵也同時作為監督訊號輸入判別器以構建目標函式。


其效果也非常可觀,如下圖所示,可以看出,大部分時候都能產生出與文字意義相對應的影象。

2.3 在處理靜態影象的生成任務的同時,GAN也逐漸被擴充套件到了視訊處理領域,NIPS-2016上的[14]即為一個代表性工作,該工作可以同時生成和預測下一視訊幀:

為了產生出具有時域變化的視訊幀,該模型在生成器部分將動態前景部分和靜態背景部分分開建模和生成,構建two-stream的樣本生成器,然後將產生的前景和背景進行組合得到產生出的video;對於判別器,主要完成兩個任務:區分出產生資料與真實資料,同時要識別出視訊幀間進行的行為,從而指導生成器去產生資料。其結構如下圖所示。

三. 訓練技巧:

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

3.1 DCGAN (ICLR-2016):

DCGAN 的模型結構如上圖所示[15],其輸入為100維的噪聲向量,經過一系列的strided conv操作,形成64x64的影象,即為G(z),而判別器結構與之類似,只是是由一系列的卷積操作構成 (而非strided conv),最後由average pooling形成判別器的標量輸出。在本文中,最主要的是提出了以下三條有助於穩定訓練GAN的方法:

(1) 去掉max pooling操作:用strided conv代替原來的pooling操作,使網路自動學習合適的取樣核函式;

(2) 去掉全連線層:用global average pooling代替全連線層;雖然該操作可能會導致收斂速度變慢,但有助於整體訓練的穩定性;

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

(4) 啟用函式的選擇:在generator中除了輸出層用tanh外,其餘都用RELU函式;而在discriminator中採用leaky ReLU函式。

目前前三點已幾乎成為當下諸多GAN模型實現的標配;而許多基於GAN模型的實驗設計也都是基於DCGAN的結構或總結的上述原則而進行的,包括前面OpenAI的Info-GAN、NIPS-2016的視訊生成模型、Twitter的超解析度的影象生成模型等等。

3.2 Improved GAN (NIPS-2016 workshop):

該工作[16]主要給出了5條有助於GAN穩定訓練的經驗:

(1) 特徵匹配:讓生成器產生的樣本與真實樣本在判別器中間層的響應一致,即使判別器從真實資料和生成資料中提取的特徵一致,而不是在判別器網路的最後一層才做判斷,有助於提高模型的穩定性;其實驗也表明在一些常規方法訓練GAN不穩定的情況中,若用特徵匹配則可以有效避免這種不穩定;

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

(3) Historical Averaging:受fictitious play的遊戲演算法啟發,作者提出在生成器和判別器的目標函式中各加一個對引數的約束項

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

(4) 單邊標籤平滑 (One-sided Label Smoothing):當向GAN中引入標籤資料時,最好是將常規的0、1取值的二值標籤替換為如0.1,0.9之類的平滑標籤,可以增加網路的抗干擾能力;但這裡之所以說單邊平滑,是因為假設生成資料為0.1而非0的話會使判別器的最優判別函式的形狀發生變化,會使生成器偏向於產生相似的輸出,因此對於取值0的標籤保持不變,不用0.1一類的小資料替換,即為單邊標籤平滑;

(5) Virtual Batch Normalization:VBN相當於是BN的進階版,BN是一次對一批資料進行歸一化,這樣的一個副作用是當“批”的大小不同時,BN操作之後的歸一化常量會引起訓練過程的波動,甚至超過輸入訊號z的影響(因z是隨機噪聲);而VBN通過引入一個參考集合,每次將當下的資料x加入參考集合構建一個新的虛擬的batch,然後在這個虛擬的batch上進行歸一化,如此可以緩解原始BN操作所引起的波動問題。

3.3 Github資源:

針對GAN訓練過程的不穩定問題, Soumith等人 在github上專門總結了一個文件,其地址為soumith/ganhacks,總結了17種可以嘗試的方法,可以為多數訓練過程提供參考。

總結

本文主要列出了2016年中部分較有代表性或應用較為廣泛的工作,而實際上,在過去一年裡對於GAN的擴充套件和改進工作還有許多,包括GAN與其他方法如強化學習的融合、GAN在半監督學習領域的擴充套件等都值得關注。

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

參考文獻

[1] Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron C. Courville, Yoshua Bengio. Generative Adversarial Nets. NIPS 2014: 2672-2680

[2] T. Jebara. Discriminative, generative and imitative learning . PhD Thesis, Media Laboratory, MIT, December 2001.

[3] Zhuowen Tu, Learning Generative Models via Discriminative Approaches. CVPR 2007

[4] Jun Zhu, Amr Ahmed, Eric P. Xing. MedLDA: maximum margin supervised topic models. Journal of Machine Learning Research 13: 2237-2278 (2012)

[5] Sebastian Nowozin, Botond Cseke, Ryota Tomioka. f-GAN: Training Generative Neural Samplers using Variational Divergence Minimization. NIPS (2016)

[6] Junbo Zhao, Michael Mathieu, Yann LeCun,Energy-based Generative Adversarial Network,ICLR-2017,open review.

[7] Xi Chen, Yan Duan, Rein Houthooft, John Schulman, ,Ilya Sutskever, Pieter Abbeel, InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets

[8] Anders Boesen Lindbo Larsen, Søren Kaae Sønderby, Hugo Larochelle, Ole Winther. Autoencoding beyond pixels using a learned similarity metric, ICML-2016.

[9] Jost Tobias Springenberg , unsupervised and semi-supervised learning with categorical generative adversarial networks, ICLR-2016.

[10] Alexey Dosovitskiy, Thomas Brox. Generating Images with Perceptual Similarity Metrics based on Deep Networks. NIPS 2016.

[11] Justin Johnson, Alexandre Alahi, Li Fei-Fei. Perceptual Losses for Real-Time Style Transfer and Super-Resolution. ECCV-2016.

[12] Christian Ledig, Lucas Theis, Ferenc Husz´ ar, Jose Caballero, Andrew Aitken, Alykhan Tejani, Johannes Totz, Zehan Wang, Wenzhe Shi. Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network.ARXIV-2016

[13] Scott Reed, Zeynep Akata, Xinchen Yan, Lajanugen Logeswaran, Bernt Schiele, Honglak Lee. Generative Adversarial Text to Image Synthesis, ICML-2016.

[14] Carl Vondrick, Hamed Pirsiavash, Antonio Torralba. Generating Videos with Scene Dynamics, NIPS-2016;

[15] Alec Radford, Luke Metz, Soumith Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks, ICLR-2016;

[16] Tim Salimans, Ian Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford, Xi Chen. Improved Techniques for Training GANs, nips-2016, workshop.

相關推薦

解讀GAN及其 2016 年度進展

摘要 本文主要包括兩方面內容:首先對GAN的基礎概念與理論基礎進行介紹,並分析了其模型構建原理與優勢等;其次對其在2016年度的主要進展進行梳理和概括,主要包括從模型理論框架到實際應用問題中的相關擴充套件與改進及其訓練技巧等工作。(以下僅為個人觀點,不當之處歡迎大家批評

擴充套件:GAN模型及其2016年度進展

自己留看方便https://www.jianshu.com/p/edbcf96ca3c9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

廣通軟件獲“2016年度中國最具影響力IT運維管理軟件提供商”殊榮

運維工程師 it運維12月16日,“科技原力覺醒引領創新巔峰”-- 2016創新影響力年會暨國家產業服務平臺2016年終評活動在北京裕龍國際酒店落下帷幕。本活動在主管部門的指導參與下,總結本年度技術成果並籍此對未來科技趨勢和方向做出展望與規劃,由國家十大產業服務平臺共同主辦,賽迪網承辦。500余名來自科技領域

廣通軟件榮獲“2016年度ITSS優秀會員”稱號

itss it運維 1月12日,為了表彰在IT服務標準研制和應用推廣工作中所做出的貢獻,中國電子工業標準化技術協會信息技術服務分會(以下稱ITSS分會)在北京召開“2016年度ITSS優秀會員”專家評選活動,廣通軟件獲得“2016年度ITSS優秀會員”稱號。圖中左三為廣通軟件代表工信部信息化和軟件服務

南方都市報2016年度十大好書-獲獎評語

範圍 網絡數 改變 中國 讀者 日常生活 地址 生活方式 有一個 一句話評語:互聯網工作者獨特、深刻、具有前瞻性的思考 在評價《在線》這本書時,我們決定拋開王堅的身份不管:不管他過去幹過什麽,也不管他現在在幹什麽,只看他的書傳遞的是怎樣的觀念。《在線》是一本講大數據、雲

2016年度中國會計師事務所排名前十

專業 組織 house coo html you 員工 專業服務 品牌 http://www.wenxuetiandi.com/news/xuexizixun/201708/444478.html 1普華永道   普華永道(Price Waterhouse Cooper

水下通信技術的分類、特征、應用及其最新研究進展

傳統 滿足 帶來 屬於 廣泛 世紀 線性 加速 位數 海洋覆蓋著地球三分之二的表面積,它是人類探索和研究的最前沿的領域之一。海洋不僅在國際商業和漁業中扮演重要的角色,而且還包含了有關氣候的信息,以及大量急待開發的資源。 水下無線通信是研制海洋觀測系統的關鍵技術,借助海洋觀測

2016 年度頂級開源創作工具

無論你是想修改圖片、編譯音訊,還是製作動畫,這裡的自由而開源的工具都能幫你做到。 幾年前,我在 Red Hat 總結會上做了一個簡單的演講,給與會者展示了 2012 年度開源創作工具。開源軟體在過去幾年裡發展迅速,現在我們來看看 2016 年的相關領域的軟體。 核心應用 這六款應用是開源的設計軟體中的最強王

年度總結】於無聲處聽驚雷-2016年度總結

         走過安詳晚年的2016已經在2017的春風中步入天國有一陣時間了,早在它走之前就已和我說好,幫它寫一份精彩紛呈的墓誌銘把我們之間的故事寫下來,送給他聽,現在也是時候動筆了。      

三大深度學習生成模型:VAE、GAN及其變種

編者按:本書節選自圖書《深度學習輕鬆學》第十章部分內容,書中以輕鬆直白的語言,生動詳細地介紹了深層模型相關的基礎知識,並深入剖析了演算法的原理與本質。同時還配有大量案例與原始碼,幫助讀者切實體會深度學習的核心思想和精妙之處。 本章將為讀者介紹基於深度學習的

2016年度星級專利代理機構名單排名

2016星級  80家單位 名稱 五星   中國國際貿易促進委員會專利商標事務所 五星   北京市柳沈律師事務所 五星   中國專利代理(香港)有限公司 五星   上海專利商標事務所有限公司 五星   北京三友智慧財產權代理有限公司 五星

測試五年——我的2016年度總結

概述 回看2015年度總結,Flag年常是完不成的。。。。 回想自己的2016年,還是比較充實的,總體來說,幹了下面幾件事: 讀了一些書 瞭解了好多亂七八糟的語言 寫了好多篇文章 瘦了好多 還有一件低調的事 讀書 說起讀書,應該是我

VALSE2017系列之二: 邊緣檢測領域年度進展報告

深度學習大講堂致力於推送人工智慧,深度學習方面的最新技術,產品以及活動。請關注我們的知乎專欄!編者按:邊緣檢測是影象處理和計算機視覺中的基本問題,通過標識數字影象中亮度變化明顯的點,來捕捉影象屬性中的顯著變化,包括深度上的不連續、表面方向的不連續、物質屬性變化、和場景照明變化

生成對抗網路(GAN)的前沿進展(論文、報告、框架和Github資源)彙總

生成模型(GenerativeModel)是一種可以通過學習訓練樣本來產生更多類似樣本的模型。在所有生成模型當中,最具潛力的是生成對抗網路(Generative Adversarial Networks, GANs)。GANs 是非監督機器學習的一種,它的運作方式可被看

《時代週刊》2016年度25項最佳發明出爐

創刊於1923年的《時代週刊》每年都會推選出當年驚豔且樂趣十足的科技發明,2016年快要走完了,《時代週刊》的25大科技發明(排名不分先後)又面世了。在這些千奇百怪的產品中,你最愛哪一款呢?1. 磁懸浮燈泡 Flyte  Flyte 是一種利用電磁場和諧振感應耦合技術讓燈泡

無監督學習及其主要研究進展

無監督學習可謂是深度學習的聖盃,其目標是建立可相容小資料集進行訓練的通用系統,即便是很少的資料。如今深度學習模型往往在大型監督型資料集上訓練。所謂監督型資料集,即每條資料都有一個對應的標籤。比如流行的ImageNet資料集,有一百萬張人為標記的影象。一共有100

2016年度GitHub上Stars最多的10個Python專案

這是2016年最後一個工作日了,感謝所有的小夥伴幾個月以來的陪伴,是你們的陪伴,我才有一直寫下去的動力。希望你們度過了一個愉快充實的2016,而2017年我還會繼續寫,希望你們一直在,我們一起努力! 2016年接近尾聲,在最近的幾篇文章中,會整

【領域報告】主動學習年度進展|VALSE2018

編者按:白居易在《憶江南》中曾寫道,“山寺月中尋桂子,郡亭枕上看潮頭。”詩人結合“月中桂樹”的傳

2016 年度消費信貸建模小結

一、2016年度忙碌的工作與技術積累 1.1 第一版通用信用模型: 201601 開始建模。 梳理大資料特徵風控建模的過程如下: 樣本: 從LDYS購買到sms中收到逾期3次以上定義為壞,從來沒有收到逾期的定義為好。 特徵: 細粒度搜索詞、大資料使用者畫像(

年終總結(2016年度

原本是不打算寫年終總結了。但考慮到這一年的複雜心情(其實更大的可能是我這幾天有點太閒了),我還是好好地想了想這一年發生的事情,以及我接下來究竟還想做些什麼。 先來聊聊我在2016年做了些什麼。技術工作方面能寫出來的不多,以至於我前幾天在某個地方被人揹後說【如今搞翻譯的都能被尊為教主】,他的目的是說中國的技術界