深度學習新星:GAN的基本原理、應用和走向
深度學習新星:GAN的基本原理、應用和走向
相關參考:
本文內容來自新加坡國立大學【機器學習與視覺實驗室】負責人馮佳時博士在【硬創公開課】的分享。馮佳時博士梳理了關於生成對抗網路(GAN)的全景圖,解答了涉及GAN方方面面的問題,包括其基本框架、原理、應用案例、優缺點、發展方向等,感謝馮佳時老師及其實驗室同學為本次公開課精心的籌備工作。
近年來,基於資料而習得“特徵”的深度學習技術受到狂熱追捧,而其中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餘篇。
馮佳時博士
以下內容整理自公開課分享。
GANs 是深度學習領域比較重要的一個模型,也是人工智慧研究的一個重要工具。
我們現在所追求的人工智慧, 一個很重要的特性就是能夠像我們人類一樣,理解周圍複雜的世界 。包括識別和理解現實中的三維世界,人類、動物和各種工具。這樣才能在對現實世界理解的基礎上,進行推理和創造。
而正像著名物理學家,理查德•費曼說的一樣,如果要真正理解一個東西,我們必須要能夠把它創造出來。
正是基於這樣的想法,機器學習以及人工智慧的研究者們提出了概率生成模型,致力於用概率和統計的語言,描述周圍的世界。
作為一種概率生成模型:GAN
簡單說, 概率生成模型的目的,就是找出給定觀測資料內部的統計規律,並且能夠基於所得到的概率分佈模型,產生全新的,與觀測資料類似的資料 。
舉個例子,概率生成模型可以用於自然影像的生成。假設給定1000萬張圖片之後,生成模型可以自動學習到其內部分佈,能夠解釋給定的訓練圖片,並同時生成新的圖片。
與龐大的真實資料相比,概率生成模型的引數個數要遠遠小於資料的數量。因此,在訓練過程中,生成模型會被強迫去發現資料背後更為簡單的統計規律,從而能夠生成這些資料。
現在比較流行的生成模型,其實可以分為三類:
1) 生成對抗網路(GAN) 。這個是我們今天要重點介紹的內容。
2) 變分自動編碼模型(VAE) 。它依靠的是傳統的概率圖模型的框架,通過一些適當的聯合分佈的概率逼近,簡化整個學習過程,使得所學習到的模型能夠很好地解釋所觀測到的資料。
3) 自迴歸模型(Auto-regressive) 。在這種模型裡,我們簡單地認為,每個變數只依賴於它的分佈,只依賴於它在某種意義上的近鄰。例如將自迴歸模型用在影像的生成上。那麼畫素的取值只依賴於它在空間上的某種近鄰。現在比較流行的自迴歸模型,包括最近剛剛提出的畫素CNN或者畫素RNN,它們可以用於影像或者視訊的生成。
GAN 熱度從學術界蔓延至工業界
這三種生成模型都有各自的優缺點,然後也在不同的領域上得到廣泛的關注。而今天我們要介紹的GAN實際上是一種比較年輕的方法。兩年半之前, Ian Goodfellow的一篇論文首次將其引入,雖然時間很短,但我們看Google的搜尋熱度和Google學術上論文引用的次數,它一直受到學術界廣泛的關注,而且熱度一直快速增長。
除了學術界,GAN還受到工業界的廣泛關注。 有許多做人工智慧研究的公司正在投入大量的精力來發展和推廣GAN模型 。其中包括 Ian Goodfellow 如今所在的 OpenAI 公司。這個公司一直在致力於研究推廣GAN,並將其應用在不同的任務上。同時 Facebook 和 Twitter 最近兩年也投入了大量的精力來研究,並將GAN應用在了影像生成和視訊生成上。尤其值得一提的是,Apple最近發表了其關於人工智慧研究的首篇論文,恰恰是應用GAN來做資料的生成,幫助更好地訓練機器學習模型。
那麼,GAN為什麼會受到這樣廣泛的關注呢?
Goodfellow 在他的論文中,給出了一些解釋。
GAN 是更好的生成模型,在某種意義上避免了馬爾科夫鏈式的學習機制 ,這使得它能夠區別於傳統的概率生成模型。傳統概率生成模型一般都需要進行馬可夫鏈式的取樣和推斷,而GAN避免了這個計算複雜度特別高的過程,直接進行取樣和推斷,從而提高了GAN的應用效率,所以其實際應用場景也就更為廣泛。
其次 GAN是一個非常靈活的設計框架 ,各種型別的損失函式都可以整合到GAN模型當中,這樣使得針對不同的任務,我們可以設計不同型別的損失函式,都會在GAN的框架下進行學習和優化。
再次,最重要的一點是,當概率密度不可計算的時候,傳統依賴於資料自然性解釋的一些生成模型就不可以在上面進行學習和應用。 但是GAN在這種情況下依然可以使用****,這是因為GAN引入了一個非常聰明的內部對抗的訓練機制 ,可以逼近一些不是很容易計算的目標函式。
Facebook 人工智慧研究院的Yann LeCun也一直是GAN的積極倡導者。其中一個最重要的原因就是GAN為無監督學習提供了一個強有力的演算法框架,而無監督學習被廣泛認為是通往人工智慧重要的一環。就像Yann LeCun所給出的一個比喻一樣:
“ 如果人工智慧是一塊蛋糕,那麼強化學習是蛋糕上的一粒櫻桃,監督學習是外面的一層糖霜,無監督/預測學習則是蛋糕胚。目前我們只知道如何製作糖霜和櫻桃,卻不知如何製作蛋糕胚。”
雖然還在快速的發展當中,但是GAN確實為無監督學習,提供了一個非常有潛力的解決方案。
樸素GAN的基本框架
一個最樸素的GAN模型,實際上是將一個隨機變數(可以是高斯分佈,或0到1之間的均勻分佈),通過引數化的概率生成模型(通常是用一個 神經網路 模型來進行引數化),進行概率分佈的逆變換取樣,從而得到一個生成的概率分佈(圖中綠色的分佈模型)。
而GAN的或者一般概率生成模型的訓練目的,就是要使得生成的概率分佈和真實資料的分佈儘量接近,從而能夠解釋真實的資料。但是在實際應用中,我們完全沒有辦法知道真實資料的分佈。我們所能夠得到的只是從這個真實的資料分佈中所取樣得到的一些真實資料。
通過優化目標,使得我們可以調節概率生成模型的引數\theta,從而使得生成的概率分佈和真實資料分佈儘量接近。
那麼怎麼去定義一個恰當的優化目標或一個損失?傳統的生成模型,一般都採用資料的似然性來作為優化的目標,但 GAN創新性地使用了另外一種優化目標 。首先,它引入了一個判別模型(常用的有支援向量機和多層神經網路)。其次,它的優化過程就是在尋找生成模型和判別模型之間的一個納什均衡。
GAN 所建立的一個學習框架, 實際上就是生成模型和判別模型之間的一個模仿遊戲 。生成模型的目的,就是要儘量去模仿、建模和學習真實資料的分佈規律;而判別模型則是要判別自己所得到的一個輸入資料,究竟是來自於真實的資料分佈還是來自於一個生成模型。通過這兩個內部模型之間不斷的競爭,從而提高兩個模型的生成能力和判別能力。
如果我們把生成模型比作是一個 偽裝者 的話,那麼判別模型就是一個 警察 的角色。偽裝者的目的,就是通過不斷的學習來提高自己的偽裝能力,從而使得自己提供的資料能夠更好地欺騙這個判別模型。而判別模型則是通過不斷的訓練來提高自己判別的能力,能夠更準確地判斷資料來源究竟是哪裡。
當一個判別模型的能力已經非常強的時候,如果生成模型所生成的資料,還是能夠使它產生混淆,無法正確判斷的話, 那我們就認為這個生成模型實際上已經學到了真實資料的分佈 。
GAN 的基本原理
GAN 模型包括了一個生成模型G和一個判別模型D,GAN的目標函式是關於D與G的一個零和遊戲。也是一個最小-最大化問題。
這裡判別模型D實際上是對資料的來源進行一個判別:究竟這個資料是來自真實的資料分佈Pdata,還是來自於一個生成模型G所產生的一個資料分佈Pg。
判別模型D的訓練目的就是要儘量最大化自己的判別準確率 。當這個資料被判別為來自於真實資料時,標註 1,自於生成資料時,標註 0。
而與這個目的相反的是, 生成模型G的訓練目標,就是要最小化判別模型D的判別準確率 。在訓練過程中,GAN採用了一種非常直接的交替優化方式,它可以分為兩個階段,第一個階段是固定判別模型D,然後優化生成模型G,使得判別模型的準確率儘量降低。而另一個階段是固定生成模型G,來提高判別模型的準確率。
下面這張圖,視覺化了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的收斂性。如果G和D的學習能力足夠強,兩個模型可以收斂。但在實際中,GAN的優化還存在諸如不穩定等一些問題。如何平衡兩個模型在訓練中是一個很重要的問題。
-
GAN 的優點和缺點
GAN 的優點很多,前面我們提到了一部分。這裡要提到的一個重要優點,就是 生成模型G的引數更新不是來自於資料樣本本身(不是對資料的似然性進行優化),而是來自於判別模型D的一個反傳梯度 。
GAN 可以和CNN、RNN結合在一起 。任何一個可微分的函式,都可以用來引數化GAN的生成模型和判別模型。那麼,在實際中,我們就可以使用深度卷積網路,來引數化生成模型。另外,GAN和RNN結合在一起,用來處理和描述一些連續的序列資料,可以學習到序列資料的分佈,同時也可以產生序列資料應用,包括對音樂資料或者是一些自然語言資料的建模和生成。
但GAN的缺點也同樣明顯。
第一個是GAN的 可解釋性非常差 ,因為我們最後所學到的一個資料分佈Pg(G),沒有顯示的表示式。它只是一個黑盒子一樣的對映函式:輸入是一個隨機變數,輸出是我們想要的一個資料分佈。
其次,在實際應用中 GAN比較難訓練 。因為GAN要交替優化兩個部件,而這兩個部件之間的優化需要很好的同步。例如,在實際中我們常常需要 D 更新 K次, G 才能更新 1 次,如果沒有很好地平衡這兩個部件的優化,那麼G最後就極大可能會坍縮到一個鞍點。
GAN 的應用例項
作為一個生成模型,GAN最直接的應用,就是用於真實資料分佈的建模和生成,包括可以生成一些影像和視訊,以及生成一些自然語句和音樂等。其次,因為內部對抗訓練的機制,GAN可以解決一些傳統的機器學習中所面臨的資料不足的問題,因此可以應用在半監督學習、無監督學習、多視角、多工學習的任務中。還有,就是最近有一些工作已經將進行成功應用在強化學習中,來提高強化學習的學習效率。因此GAN有著非常廣泛的應用。
-
應用例項 1:影像超解析度(Twitter)
Twitter 公司最近發表了一篇影像超解析度的論文,就是應用了GAN模型。影像超解析度的目的,是將一個低解析度的模糊影像,進行某種變換,得到一個高解析度的帶有豐富細節的清晰影像。
超解析度問題,實際上是一個病態問題, 因為在影像解析度降低的過程中,****丟失的高頻細節很難恢復 。但是GAN在某種程度上可以學習到高解析度影像的分佈,從而能夠生成質量比較好的高解析度影像。
生成模型要將模糊的低解析度影像作為輸入,並輸出一個高解析度的清晰影像。而判別模型,就要判斷所輸入的影像究竟是“真實高解析度影像”還是由低解析度影像“轉化來的高解析度影像”。而這就 大大簡化了影像超解析度模型的學習過程 。因為傳統上做一個影像超解析度,都要去對一些高頻細節進行建模,而這裡生成模型訓練目的就簡化為迷惑判別模型。
為了使得整個GAN能夠取得比較好的結果,我們常常要求生成模型和判別模型都要有很強的學習能力,所以在實際應用中,我們常常用一個多層的神經網路來引數化生成模型或者判別模型。
在 Twitter 這篇論文中,他們用一個16個殘差塊的網路來引數化生成模型。而判別模型使用的是一個VGG網路。這個實驗結果也說明了使用GAN模型能夠得到更好的結果。與以往基於深度學習模型做影像超解析度的結果相比的話(比如SRResNet等),我們可以看到GAN的結果圖能夠提供更豐富的細節。 這也就是GAN做影像生成時的一個顯著優點,即能夠提供更銳利的資料細節 。
-
應用例項 2:資料合成(Apple)
Apple 最近剛剛發表了其 第一篇AI 論文 ,論文要解決的問題,就是如何使得模擬的資料更加逼真,與真實影像的差異性儘量小。
這篇論文中使用了類似GAN的框架,將模擬器(Simulator)產生的虛擬資料作為輸入,通過一個叫做改進器(Refiner)的模型(對應生成模型)來產生改進後的虛擬資料。再同樣的,使用一個判別器,來判斷所產生的影像是真實的,還是虛擬的 。
Apple 對GAN主要做了兩個方面的改進。
第一個就是,為了最大程度保留虛擬影像的類別, 引入了額外的一個自正則項(Self-Regularization Term) ,最小化生成影像與合成影像的絕對值誤差,從而保留影像的標註資訊,如眼睛視線的方向,使得生成影像可以用於訓練機器學習模型。
另外一個改進,是 引入了一個區域性對抗損失函式(Local adversarial loss) ,而不是像之前的判別器,使用的是一個全域性的損失函式。這裡不同於樸素GAN將整張圖作為一個輸入進行真與假的判別,而是將輸入的影像分成若干個影像塊,對每個影像塊進行判別。這樣的話可以避免過於強調某些特定的影像特徵而導致的尾插。同時實驗結果也表明,使用這種區域性的對抗損失,確實可以提供一些更銳利的細節,使得生成結果具有更豐富的資訊。
那麼除了剛才介紹的兩個例子,GAN還有其他一些非常有意思的應用。
-
其它有趣的應用例項
首先, 影像到影像的翻譯 。比如說將語義標註圖、灰度圖或邊緣圖作為GAN的輸入,那麼我們希望它輸出能夠和輸入圖一致的真實影像,例如這裡的街景圖和彩色圖。
其次, 文字到影像的翻譯 。GAN的輸入是一個描述影像內容的一句話,比如“一隻有著粉色的胸和冠的小鳥”,那麼所生成的影像內容要和這句話所描述的內容相匹配。
GAN 可以用在 特定的人臉影像****生成 上,例如戴著墨鏡的人臉。還可用在 影像語音分割 上,通過引入對抗訓練,得到更銳利的風格結果。GAN可以用於 視訊生成 ,通過過去的一些幀來預測未來的一些幀,從而捕捉到一些運動的資訊。
最近,我們自己的實驗室團隊在GAN上也有一些應用和發展,其中一個是 將GAN應用在“人臉去遮擋” 。我們引入了一種保持人的身份資訊的GAN模型,實驗結果證明,這個模型不僅能夠檢測和去掉在人臉上的遮擋,同時還能保持人的身份資訊,從而提高人臉的識別準確率。
我們實驗室的另一個GAN應用,是在小物體的檢測上,例如在 自動駕駛 領域對交通標誌進行檢測。
我們發現,小的交通標誌和大的交通標誌實際上在特徵表示上有著顯著的差異。因此,如果我們直接將所學習到的特徵表示作為輸入,進行檢測的話,那麼小物體上的檢測結果往往都不是特別好。所以,我們 提出了一個“感知GAN模型”(Perceptual GAN) ,應用在小物體特徵表示的超解析度上,而不是對原始影像進行超解析度,使得小物體的特徵表示和大物體的特徵角表示儘量接近,這樣我們就能夠成功檢測到小物體。我們將這個感知GAN模型應用在了交通標誌檢測上,取得了比較好的實驗結果。
GAN 的未來發展方向
1) 針對GAN可解釋性差進行改進 。包括最近剛提出的InfoGANs。InfoGANs通過最大化隱變數與觀測資料的互資訊,來改進GAN的解釋性。
2) 進一步提高GAN的學習能力 。包括引入“多主體的GAN”。在多主體的GAN中,有多個生成器和判別器,它們之間可以進行交流,進行知識的共享,從而提高整體的學習能力。
3) 針對GAN優化不穩定性進行改進 。例如使用 F 散度來作為一個優化目標和手段,對GAN進行訓練。
4) 應用在一些更廣泛的領域 。包括遷移學習以及領域自適應學習。還有一個最近比較有意思的應用,是建立了GAN和強化學習之間的聯絡,將GAN用在了逆強化學習和模擬學習上,從而能夠大幅度提高強化學習的學習效率。另外還可以用在資料的壓縮上以及應用在除了影像以外其他的資料模式上,比如用於自然語句的生成,還有音樂的生成。
總結
1) GAN 的優勢 。作為一個生成模型,GAN模型避免了一些傳統生成模型在實際應用中的一些困難,巧妙地通過對抗學習來近似一些不可解的損失函式。
2) 應用方****面 。GAN現在廣泛應用影像和視訊等資料的生成,還可以用在自然語言和音樂生成上。
3) 存在的問題 。一個是GAN的優化過程中存在不穩定性,很容易坍縮到一個鞍點上;其次是GAN的可解釋性比較差;再次,需要提高訓練過程中的穩定性和GAN模型的延展性,尤其在處理大規模資料的時候。
4) 應用前景 。在未來,我們希望看到GAN應用在無監督學習或自監督學習上,提供有效的解決方案。同時GAN還可以建立與強化學習之間的聯絡,應用在強化學習上。
最後,回到Yann LeCun提出的那個比喻,我們對它進行一點修改。就是如果人工智慧是一個蛋糕的話,那麼 “蛋糕胚”不僅是指無監督的資料表示學習,還應該包括“無監督推斷學習”,而GAN確實很好地連線了這兩個重要的人工智慧主體 。
另外,除了強化學習這顆“櫻桃”之外,實際上還有很多其他的“櫻桃”。比如說魯棒學習、自監督學習和線上學習等。所以實際上還有許多問題需要大家一起來解決。
最後我要感謝一下實驗室的博士後和訪問學生對我們GAN工作的貢獻,他們在新年的時候還要熬夜幫我準備這次PPT的一些素材。另外,謝謝大家來聽這次分享課。
轉自:
https://blog.csdn.net/weixin_42137700/article/details/82585385
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2213866/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [GAN學習系列3]採用深度學習和 TensorFlow 實現圖片修復(上)深度學習
- [GAN學習系列3]採用深度學習和 TensorFlow 實現圖片修復(下)深度學習
- 深度學習和圖形學渲染的結合和應用深度學習
- 深度學習及深度強化學習應用深度學習強化學習
- 【深度學習】深度解讀:深度學習在IoT大資料和流分析中的應用深度學習大資料
- 【深度學習】--GAN從入門到初始深度學習
- 深度學習機器學習基礎-基本原理深度學習機器學習
- 深度學習在OC中的應用深度學習
- 深度學習的應用與實踐深度學習
- 助力AI騰飛,深度學習走向何方?AI深度學習
- 深度學習在視覺搜尋和匹配中的應用深度學習視覺
- 深度學習在股票市場的應用深度學習
- 計算機視覺應用:深度學習的力量和侷限性計算機視覺深度學習
- Searching with Deep Learning 深度學習的搜尋應用深度學習
- 深度學習在醫療領域的應用深度學習
- 深度學習在乳腺癌上的應用!深度學習
- 深度學習之卷積模型應用深度學習卷積模型
- 三大深度學習生成模型:VAE、GAN及其變種深度學習模型
- AI在汽車中的應用:實用深度學習AI深度學習
- 基於圖深度學習的自然語言處理方法和應用深度學習自然語言處理
- 【AI in 美團】深度學習在OCR中的應用AI深度學習
- 深度學習 | 如何開發、部署 Serverless 應用?深度學習Server
- 【深度學習理論】通俗理解生成對抗網路GAN深度學習
- 人工智慧-深度學習-生成模型:GAN經典模型-->InfoGAN人工智慧深度學習模型
- 人工智慧-深度學習-生成模型:GAN經典模型-->VAEGAN人工智慧深度學習模型
- 李巨集毅GAN學習(四)GAN的基本理論
- 【AI in 美團】深度學習在文字領域的應用AI深度學習
- Talroo使用Analytics Zoo和AWS利用深度學習在工作推薦上的應用深度學習
- 機器學習和深度學習的區別機器學習深度學習
- 機械學習和深度學習的區別深度學習
- 用Python和深度學習實現iPhone X的Face IDPython深度學習iPhone
- 微信高階研究員解析深度學習在NLP中的發展和應用深度學習
- 深度學習模型在序列標註任務中的應用深度學習模型
- 深度學習在自動駕駛感知領域的應用深度學習自動駕駛
- AI從業者需要應用的10種深度學習方法AI深度學習
- 深度學習在小米電商業務的應用實踐深度學習
- 如何理解雅克比矩陣在深度學習中的應用?矩陣深度學習
- 卷積操作的概念及其在深度學習中的應用卷積深度學習