天天看點

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

編者按:本文内容來自新加坡國立大學【機器學習與視覺實驗室】負責人馮佳時博士在雷鋒網(公衆号:雷鋒網)【硬創公開課】的分享。如果讀者想獲得關于本次公開課的ppt,可前往雷鋒網旗下微信公衆号【ai科技評論】獲得下載下傳方式。

近年來,基于資料而習得“特征”的深度學習技術受到狂熱追捧,而其中gan模型訓練方法更加具有激進意味:它生成資料本身。

gan是“生成對抗網絡”(generative adversarial networks)的簡稱,由2014年還在蒙特利爾讀博士的ian goodfellow引入深度學習領域。2016年,gan熱潮席卷ai領域頂級會議,從iclr到nips,大量高品質論文被發表和探讨。yann lecun曾評價gan是“20年來機器學習領域最酷的想法”。

在gan這片新興沃土,除了ian goodfellow所在的openai在火力全開,facebook的人工智能實驗室也在這一領域馬不停蹄深耕,而蘋果近日曝出的首篇ai論文,就是基于gans的變種“simgan”。從學術界到工業界,gans席卷而來。

經360首席科學家、人工智能研究院院長顔水成強力推薦,【硬創公開課】特邀馮佳時博士,在1月5日為大家帶來了一期以《深度學習新星:gans的誕生與走向》為主題的演講,撥開圍繞gans的迷霧。

馮佳時,現任新加坡國立大學電子與計算機工程系助理教授,機器學習與視覺實驗室負責人。

中國科學技術大學自動化系學士,新加坡國立大學電子與計算機工程系博士。2014-2015年在加州大學伯克利分校人工智能實驗室從事博士後研究。現研究方向為圖像識别、深度學習及面向大資料的魯棒機器學習。

馮佳時博士曾獲iccv’2015 task-cv最佳論文獎,2012年acm多媒體會議最佳技術示範獎。擔任icmr 2017技術委員會主席,jmlr, ieee tpami, tip, tmm, tcsvt, tnnls及 cvpr, iccv, eccv, icml, nips, aaai, ijcai等期刊、會議審稿人。馮佳時博士已在計算機視覺、機器學習領域發表論文60餘篇。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

以下内容整理自公開課分享。

gans是深度學習領域比較重要的一個模型,也是人工智能研究的一個重要工具。

我們現在所追求的人工智能,一個很重要的特性就是能夠像我們人類一樣,了解周圍複雜的世界。包括識别和了解現實中的三維世界,人類、動物和各種工具。這樣才能在對現實世界了解的基礎上,進行推理和創造。

而正像著名實體學家,理查德•費曼說的一樣,如果要真正了解一個東西,我們必須要能夠把它創造出來。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

正是基于這樣的想法,機器學習以及人工智能的研究者們提出了機率生成模型,緻力于用機率和統計的語言,描述周圍的世界。

簡單說, 機率生成模型的目的,就是找出給定觀測資料内部的統計規律,并且能夠基于所得到的機率分布模型,産生全新的,與觀測資料類似的資料。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

舉個例子,機率生成模型可以用于自然圖像的生成。假設給定1000萬張圖檔之後,生成模型可以自動學習到其内部分布,能夠解釋給定的訓練圖檔,并同時生成新的圖檔。

與龐大的真實資料相比,機率生成模型的參數個數要遠遠小于資料的數量。是以,在訓練過程中,生成模型會被強迫去發現資料背後更為簡單的統計規律,進而能夠生成這些資料。

現在比較流行的生成模型,其實可以分為三類:

生成對抗網絡(gan)。這個是我們今天要重點介紹的内容。 變分自動編碼模型(vae)。它依靠的是傳統的機率圖模型的架構,通過一些适當的聯合分布的機率逼近,簡化整個學習過程,使得所學習到的模型能夠很好地解釋所觀測到的資料。 自回歸模型(auto-regressive)。在這種模型裡,我們簡單地認為,每個變量隻依賴于它的分布,隻依賴于它在某種意義上的近鄰。例如将自回歸模型用在圖像的生成上。那麼像素的取值隻依賴于它在空間上的某種近鄰。現在比較流行的自回歸模型,包括最近剛剛提出的像素cnn或者像素rnn,它們可以用于圖像或者視訊的生成。

這三種生成模型都有各自的優缺點,然後也在不同的領域上得到廣泛的關注。而今天我們要介紹的gan實際上是一種比較年輕的方法。兩年半之前, ian goodfellow的一篇論文首次将其引入,雖然時間很短,但我們看google的搜尋熱度和google學術上論文引用的次數,它一直受到學術界廣泛的關注,而且熱度一直快速增長。

除了學術界,gan還受到工業界的廣泛關注。有許多做人工智能研究的公司正在投入大量的精力來發展和推廣gan模型。其中包括 ian goodfellow 如今所在的 openai 公司。這個公司一直在緻力于研究推廣gan,并将其應用在不同的任務上。同時 facebook 和 twitter 最近兩年也投入了大量的精力來研究,并将gan應用在了圖像生成和視訊生成上。尤其值得一提的是,apple最近發表了其關于人工智能研究的首篇論文,恰恰是應用gan來做資料的生成,幫助更好地訓練機器學習模型。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

那麼,gan為什麼會受到這樣廣泛的關注呢?

goodfellow在他的論文中,給出了一些解釋。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

gan是更好的生成模型,在某種意義上避免了馬爾科夫鍊式的學習機制,這使得它能夠差別于傳統的機率生成模型。傳統機率生成模型一般都需要進行馬可夫鍊式的采樣和推斷,而gan避免了這個計算複雜度特别高的過程,直接進行采樣和推斷,進而提高了gan的應用效率,是以其實際應用場景也就更為廣泛。

其次gan是一個非常靈活的設計架構,各種類型的損失函數都可以整合到gan模型當中,這樣使得針對不同的任務,我們可以設計不同類型的損失函數,都會在gan的架構下進行學習和優化。

再次,最重要的一點是,當機率密度不可計算的時候,傳統依賴于資料自然性解釋的一些生成模型就不可以在上面進行學習和應用。但是gan在這種情況下依然可以使用,這是因為gan引入了一個非常聰明的内部對抗的訓練機制,可以逼近一些不是很容易計算的目标函數。

facebook人工智能研究院的yann lecun也一直是gan的積極倡導者。其中一個最重要的原因就是gan為無監督學習提供了一個強有力的算法架構,而無監督學習被廣泛認為是通往人工智能重要的一環。就像yann lecun所給出的一個比喻一樣:

“如果人工智能是一塊蛋糕,那麼強化學習是蛋糕上的一粒櫻桃,監督學習是外面的一層糖霜,無監督/預測學習則是蛋糕胚。目前我們隻知道如何制作糖霜和櫻桃,卻不知如何制作蛋糕胚。“
深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

雖然還在快速的發展當中,但是gan确實為無監督學習,提供了一個非常有潛力的解決方案。

一個最樸素的gan模型,實際上是将一個随機變量(可以是高斯分布,或0到1之間的均勻分布),通過參數化的機率生成模型(通常是用一個神經網絡模型來進行參數化),進行機率分布的逆變換采樣,進而得到一個生成的機率分布(圖中綠色的分布模型)。

而gan的或者一般機率生成模型的訓練目的,就是要使得生成的機率分布和真實資料的分布盡量接近,進而能夠解釋真實的資料。但是在實際應用中,我們完全沒有辦法知道真實資料的分布。我們所能夠得到的隻是從這個真實的資料分布中所采樣得到的一些真實資料。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

通過優化目标,使得我們可以調節機率生成模型的參數\theta,進而使得生成的機率分布和真實資料分布盡量接近。

那麼怎麼去定義一個恰當的優化目标或一個損失?傳統的生成模型,一般都采用資料的似然性來作為優化的目标,但gan創新性地使用了另外一種優化目标。首先,它引入了一個判别模型(常用的有支援向量機和多層神經網絡)。其次,它的優化過程就是在尋找生成模型和判别模型之間的一個納什均衡。

gan所建立的一個學習架構,實際上就是生成模型和判别模型之間的一個模仿遊戲。生成模型的目的,就是要盡量去模仿、模組化和學習真實資料的分布規律;而判别模型則是要判别自己所得到的一個輸入資料,究竟是來自于真實的資料分布還是來自于一個生成模型。通過這兩個内部模型之間不斷的競争,進而提高兩個模型的生成能力和判别能力。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

如果我們把生成模型比作是一個僞裝者的話,那麼判别模型就是一個警察的角色。僞裝者的目的,就是通過不斷的學習來提高自己的僞裝能力,進而使得自己提供的資料能夠更好地欺騙這個判别模型。而判别模型則是通過不斷的訓練來提高自己判别的能力,能夠更準确地判斷資料來源究竟是哪裡。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

當一個判别模型的能力已經非常強的時候,如果生成模型所生成的資料,還是能夠使它産生混淆,無法正确判斷的話,那我們就認為這個生成模型實際上已經學到了真實資料的分布。

gan模型包括了一個生成模型g和一個判别模型d,gan的目标函數是關于d與g的一個零和遊戲。也是一個最小-最大化問題。

這裡判别模型d實際上是對資料的來源進行一個判别:究竟這個資料是來自真實的資料分布pdata,還是來自于一個生成模型g所産生的一個資料分布pg。

判别模型d的訓練目的就是要盡量最大化自己的判别準确率。當這個資料被判别為來自于真實資料時,标注 1,自于生成資料時,标注 0。

而與這個目的相反的是,生成模型g的訓練目标,就是要最小化判别模型d的判别準确率。在訓練過程中,gan采用了一種非常直接的交替優化方式,它可以分為兩個階段,第一個階段是固定判别模型d,然後優化生成模型g,使得判别模型的準确率盡量降低。而另一個階段是固定生成模型g,來提高判别模型的準确率。

下面這張圖,可視化了gan學習的過程,從左到右是随着訓練過程的進展,依次得到的訓練結果。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

圖(a)中黑色大點虛線p(x)是真實的資料分布,綠線g(z)是通過生成模型産生的資料分布(輸入是均勻分布變量z,輸出是綠色的曲線)。藍色的小點虛線d(x)代表判别函數。

在圖(a)中,我們可以看到,綠線g(z)分布和黑色p(x)真實分布,還有比較大的差異。這點也反映在藍色的判别函數上,判别函數能夠準确的對左面的真實資料輸入,輸出比較大的值。對右面虛假資料,産生比較小的值。但是随着訓練次數的增加,圖(b)和圖(c)反映出,綠色的分布在逐漸靠近黑色的分布。到圖(d),産生的綠色分布和真實資料分布已經完全重合。這時,判别函數對所有的資料(無論真實的還是生成的資料),輸出都是一樣的值,已經不能正确進行分類。g成功學習到了資料分布,這樣就達到了gan的訓練和學習目的。

gan的全局最優解和收斂性

但是gan有一些待加強的理論保證,其中一個是說,gan是存在全局最優解的。這個全局最優解可以通過一些簡單的分析得到。首先,如果固定g,那麼d的最優解就是一個貝葉斯分類器。将這個最優解形式帶入,可以得到關于g的優化函數。簡單的計算可以證明,當産生的資料分布與真實資料分布完全一緻時,這個優化函數達到全局最小值。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

另外一點,是關于gan的收斂性。如果g和d的學習能力足夠強,兩個模型可以收斂。但在實際中,gan的優化還存在諸如不穩定等一些問題。如何平衡兩個模型在訓練中是一個很重要的問題。

gan的優點和缺點

gan的優點很多,前面我們提到了一部分。這裡要提到的一個重要優點,就是生成模型g的參數更新不是來自于資料樣本本身(不是對資料的似然性進行優化),而是來自于判别模型d的一個反傳梯度。

gan可以和cnn、rnn結合在一起。任何一個可微分的函數,都可以用來參數化gan的生成模型和判别模型。那麼,在實際中,我們就可以使用深度卷積網絡,來參數化生成模型。另外,gan和rnn結合在一起,用來處理和描述一些連續的序列資料,可以學習到序列資料的分布,同時也可以産生序列資料應用,包括對音樂資料或者是一些自然語言資料的模組化和生成。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

但gan的缺點也同樣明顯。

第一個是gan的可解釋性非常差,因為我們最後所學到的一個資料分布pg(g),沒有顯示的表達式。它隻是一個黑盒子一樣的映射函數:輸入是一個随機變量,輸出是我們想要的一個資料分布。

其次,在實際應用中gan比較難訓練。因為gan要交替優化兩個部件,而這兩個部件之間的優化需要很好的同步。例如,在實際中我們常常需要 d 更新 k次, g 才能更新 1 次,如果沒有很好地平衡這兩個部件的優化,那麼g最後就極大可能會坍縮到一個鞍點。

作為一個生成模型,gan最直接的應用,就是用于真實資料分布的模組化和生成,包括可以生成一些圖像和視訊,以及生成一些自然語句和音樂等。其次,因為内部對抗訓練的機制,gan可以解決一些傳統的機器學習中所面臨的資料不足的問題,是以可以應用在半監督學習、無監督學習、多視角、多任務學習的任務中。還有,就是最近有一些工作已經将進行成功應用在強化學習中,來提高強化學習的學習效率。是以gan有着非常廣泛的應用。

應用執行個體 1:圖像超分辨率(twitter)

twitter 公司最近發表了一篇圖像超分辨率的論文,就是應用了gan模型。圖像超分辨率的目的,是将一個低分辨率的模糊圖像,進行某種變換,得到一個高分辨率的帶有豐富細節的清晰圖像。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

超分辨率問題,實際上是一個病态問題,因為在圖像分辨率降低的過程中,丢失的高頻細節很難恢複。但是gan在某種程度上可以學習到高分辨率圖像的分布,進而能夠生成品質比較好的高分辨率圖像。

生成模型要将模糊的低分辨率圖像作為輸入,并輸出一個高分辨率的清晰圖像。而判别模型,就要判斷所輸入的圖像究竟是“真實高分辨率圖像”還是由低分辨率圖像“轉化來的高分辨率圖像”。而這就大大簡化了圖像超分辨率模型的學習過程。因為傳統上做一個圖像超分辨率,都要去對一些高頻細節進行模組化,而這裡生成模型訓練目的就簡化為迷惑判别模型。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

為了使得整個gan能夠取得比較好的結果,我們常常要求生成模型和判别模型都要有很強的學習能力,是以在實際應用中,我們常常用一個多層的神經網絡來參數化生成模型或者判别模型。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

在 twitter 這篇論文中,他們用一個16個殘差塊的網絡來參數化生成模型。而判别模型使用的是一個vgg網絡。這個實驗結果也說明了使用gan模型能夠得到更好的結果。與以往基于深度學習模型做圖像超分辨率的結果相比的話(比如srresnet等),我們可以看到gan的結果圖能夠提供更豐富的細節。這也就是gan做圖像生成時的一個顯著優點,即能夠提供更銳利的資料細節。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

應用執行個體 2:資料合成(apple)

apple最近剛剛發表了其第一篇ai論文,論文要解決的問題,就是如何使得模拟的資料更加逼真,與真實圖像的差異性盡量小。

這篇論文中使用了類似gan的架構,将模拟器(simulator)産生的虛拟資料作為輸入,通過一個叫做改進器(refiner)的模型(對應生成模型)來産生改進後的虛拟資料。再同樣的,使用一個判别器,來判斷所産生的圖像是真實的,還是虛拟的 。

apple對gan主要做了兩個方面的改進。

第一個就是,為了最大程度保留虛拟圖像的類别,引入了額外的一個自正則項(self-regularization term),最小化生成圖像與合成圖像的絕對值誤差,進而保留圖像的标注資訊,如眼睛視線的方向,使得生成圖像可以用于訓練機器學習模型。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

另外一個改進,是引入了一個局部對抗損失函數(local adversarial loss),而不是像之前的判别器,使用的是一個全局的損失函數。這裡不同于樸素gan将整張圖作為一個輸入進行真與假的判别,而是将輸入的圖像分成若幹個圖像塊,對每個圖像塊進行判别。這樣的話可以避免過于強調某些特定的圖像特征而導緻的尾插。同時實驗結果也表明,使用這種局部的對抗損失,确實可以提供一些更銳利的細節,使得生成結果具有更豐富的資訊。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

那麼除了剛才介紹的兩個例子,gan還有其他一些非常有意思的應用。

其它有趣的應用執行個體

首先,圖像到圖像的翻譯。比如說将語義标注圖、灰階圖或邊緣圖作為gan的輸入,那麼我們希望它輸出能夠和輸入圖一緻的真實圖像,例如這裡的街景圖和彩色圖。

其次,文本到圖像的翻譯。gan的輸入是一個描述圖像内容的一句話,比如“一隻有着粉色的胸和冠的小鳥”,那麼所生成的圖像内容要和這句話所描述的内容相比對。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

gan可以用在特定的人臉圖像生成上,例如戴着墨鏡的人臉。還可用在圖像語音分割上,通過引入對抗訓練,得到更銳利的風格結果。gan可以用于視訊生成,通過過去的一些幀來預測未來的一些幀,進而捕捉到一些運動的資訊。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

最近,我們自己的實驗室團隊在gan上也有一些應用和發展,其中一個是将gan應用在“人臉去遮擋”。我們引入了一種保持人的身份資訊的gan模型,實驗結果證明,這個模型不僅能夠檢測和去掉在人臉上的遮擋,同時還能保持人的身份資訊,進而提高人臉的識别準确率。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

我們實驗室的另一個gan應用,是在小物體的檢測上,例如在自動駕駛領域對交通标志進行檢測。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

我們發現,小的交通标志和大的交通标志實際上在特征表示上有着顯着的差異。是以,如果我們直接将所學習到的特征表示作為輸入,進行檢測的話,那麼小物體上的檢測結果往往都不是特别好。是以,我們提出了一個“感覺gan模型”(perceptual gan),應用在小物體特征表示的超分辨率上,而不是對原始圖像進行超分辨率,使得小物體的特征表示和大物體的特征角表示盡量接近,這樣我們就能夠成功檢測到小物體。我們将這個感覺gan模型應用在了交通标志檢測上,取得了比較好的實驗結果。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

針對gan可解釋性差進行改進。包括最近剛提出的infogans。infogans通過最大化隐變量與觀測資料的互資訊,來改進gan的解釋性。

進一步提高gan的學習能力。包括引入“多主體的gan”。在多主體的gan中,有多個生成器和判别器,它們之間可以進行交流,進行知識的共享,進而提高整體的學習能力。

針對gan優化不穩定性進行改進。例如使用 f 散度來作為一個優化目标和手段,對gan進行訓練。

應用在一些更廣泛的領域。包括遷移學習以及領域自适應學習。還有一個最近比較有意思的應用,是建立了gan和強化學習之間的聯系,将gan用在了逆強化學習和模拟學習上,進而能夠大幅度提高強化學習的學習效率。另外還可以用在資料的壓縮上以及應用在除了圖像以外其他的資料模式上,比如用于自然語句的生成,還有音樂的生成。

gan的優勢。作為一個生成模型,gan模型避免了一些傳統生成模型在實際應用中的一些困難,巧妙地通過對抗學習來近似一些不可解的損失函數。

應用方面。gan現在廣泛應用圖像和視訊等資料的生成,還可以用在自然語言和音樂生成上。

存在的問題。一個是gan的優化過程中存在不穩定性,很容易坍縮到一個鞍點上;其次是gan的可解釋性比較差;再次,需要提高訓練過程中的穩定性和gan模型的延展性,尤其在處理大規模資料的時候。

應用前景。在未來,我們希望看到gan應用在無監督學習或自監督學習上,提供有效的解決方案。同時gan還可以建立與強化學習之間的聯系,應用在強化學習上。

最後,回到yann lecun提出的那個比喻,我們對它進行一點修改。就是如果人工智能是一個蛋糕的話,那麼“蛋糕胚”不僅是指無監督的資料表示學習,還應該包括“無監督推斷學習”,而gan确實很好地連接配接了這兩個重要的人工智能主體。

深度學習新星:GAN的基本原理、應用和走向 | 硬創公開課

另外,除了強化學習這顆“櫻桃”之外,實際上還有很多其他的“櫻桃”。比如說魯棒學習、自監督學習和線上學習等。是以實際上還有許多問題需要大家一起來解決。

最後我要感謝一下實驗室的博士後和通路學生對我們gan工作的貢獻,他們在新年的時候還要熬夜幫我準備這次ppt的一些素材。另外,謝謝大家來聽這次分享課。

ps:可關注雷鋒網公衆号,每天定時獲得最新科技圈資訊。

繼續閱讀