關(guān)于GAN的靈魂七問
生成對(duì)抗網(wǎng)絡(luò)在過去一年仍是研究重點(diǎn),我們不僅看到可以生成高分辨率(1024×1024)圖像的模型,還可以看到那些以假亂真的生成圖像。此外,我們還很興奮能看到一些新的生成模型,它們能生成與 GAN 相媲美的圖像,其主要代表就是流模型 Glow。
從 DeepMind 提出的 BigGAN,到英偉達(dá)的 Style-based Generator,它們生成的圖像質(zhì)量都令人驚嘆。盡管還有很多問題沒有解決,但圖像生成已經(jīng)能騙過一般人類了。不信的話,你可以試試區(qū)分生成的圖像與真實(shí)圖像。
https://v.qq.com/x/page/j08127vm36n.html
看了上面 Style-based Generator 的生成效果,很明顯感覺生成對(duì)抗網(wǎng)絡(luò)在過去 2 年中已經(jīng)取得了顯著的進(jìn)展。其實(shí),從 16 年到 18 年圖像合成的質(zhì)量越來越高,看論文的速度都快趕不上 GAN 的發(fā)展了:
但是在另一些方面,GAN 的提升并不是那么顯著。例如,關(guān)于如何評(píng)估 GAN 的效果,現(xiàn)在仍有很多分歧。因?yàn)槟壳皥D像合成基準(zhǔn)已經(jīng)非常多了,所以反思子領(lǐng)域的研究目標(biāo)顯得更有意義。
在這篇文章中,谷歌大腦團(tuán)隊(duì)的 Augustus Odena 就針對(duì) GAN 的七大開放性問題作出了介紹。
- 問題 1:如何在 GAN 和其它生成模型之間進(jìn)行挑選?
- 問題 2:GAN 能建模哪些分布?
- 問題 3:除了圖像合成外,GAN 還能用于哪些地方?
- 問題 4:GAN 的全局收斂性如何?訓(xùn)練動(dòng)態(tài)過程又是怎樣的?
- 問題 5:我們?cè)撊绾卧u(píng)估 GAN 的好壞,什么時(shí)候又該使用 GAN 這種生成模型?
- 問題 6:如何擴(kuò)展訓(xùn)練 GAN 的批量大小?
- 問題 7:GAN 和對(duì)抗樣本之間有什么關(guān)系?
Augustus 對(duì)每一個(gè)問題都做了很詳細(xì)的討論,包括問題背景、問題內(nèi)容以及如何解決等等。這篇文章發(fā)布在 Distill 上,機(jī)器之心簡(jiǎn)要對(duì)六大問題做了介紹,更詳細(xì)的內(nèi)容與相關(guān)引用文獻(xiàn)可閱讀原文。
谷歌大腦和其他很多研究者都在致力于解決這些 GAN 的開放性研究問題。這篇文章也引用了近來非常多的生成對(duì)抗網(wǎng)絡(luò)研究,因此并不能面面俱到地描述細(xì)節(jié),所以讀者有一定的基礎(chǔ)、對(duì)這些問題有一定的直觀了解就好了。
問題1:如何在 GAN 和其它生成模型之間進(jìn)行挑選?
除了 GAN,另外兩種生成模型現(xiàn)在也很流行:流模型和自回歸模型。粗略來說,流模型將一堆可逆變換應(yīng)用于先驗(yàn)樣本,以計(jì)算觀測(cè)值的精確對(duì)數(shù)似然性。另一方面,自回歸模型將觀測(cè)值的分布分解為條件分布,并一次處理觀測(cè)值的一個(gè)組件(對(duì)于圖像,可能是一次處理一個(gè)像素)。最近的研究表明,這些模型具有不同的性能特點(diǎn)和權(quán)衡。準(zhǔn)確描述這些權(quán)衡并確定它們是否為模型的固有特性是一個(gè)有趣的開放性問題。
具體來說,我們先暫時(shí)把重點(diǎn)放在 GAN 和流模型之間計(jì)算成本的差異上,訓(xùn)練 GAN 和流模型的計(jì)算成本之間似乎存在巨大差異。GLOW 模型是用 40 個(gè) GPU 花兩周訓(xùn)練的,以生成 256x256 的名人面部圖像,其使用的參數(shù)為 2 億。相比之下,自回歸 GAN 是在相似的面部數(shù)據(jù)集上用 8 個(gè) GPU 花 4 天訓(xùn)練的,以生成 1024x1024 的圖像,它使用了 4600 萬參數(shù)。流模型大概需要 17 倍多的 GPU 天數(shù)和 4 倍多的參數(shù)來生成像素少 16 倍的圖像。
為什么流模型效率更低?有兩個(gè)可能的原因:首先,最大似然訓(xùn)練可能比對(duì)抗訓(xùn)練的計(jì)算難度更大。其次,歸一化流可能無法有效代表特定函數(shù)。論文《Parallel WaveNet: Fast High-Fidelity Speech Synthesis》第 6.1 節(jié)對(duì)表達(dá)性做了一些小實(shí)驗(yàn),但目前我們還沒看到任何對(duì)這個(gè)問題的深入分析。
前面已經(jīng)討論過了 GAN 和流模型之間的權(quán)衡,那自回歸模型呢?事實(shí)證明,自回歸模型可以看做不可并行化的流模型(因?yàn)樗鼈兌伎赡?。
因此,GAN 是并行且有效的,但不可逆;流模型是可逆且并行的,但比較低效;自回歸模型是可逆且有效的,但不可并行化。
由此引出第一個(gè)開放性問題:
解決這個(gè)問題的方法之一是研究更多由多種模型混合而成的模型。這種方法已經(jīng)用于混合 GAN/流模型研究,但它仍然沒有被充分開發(fā)。
我們也不確定最大似然訓(xùn)練是否一定比 GAN 訓(xùn)練更難。的確,在 GAN 訓(xùn)練損失下,將 zero mass 置于訓(xùn)練數(shù)據(jù)點(diǎn)上沒有被明確禁止,但面對(duì)這種情況,強(qiáng)大的判別器的確會(huì)比生成器做得更好。不過,看起來 GAN 確實(shí)在實(shí)踐中學(xué)習(xí)低支持度的分布。
最終,我們懷疑流模型每個(gè)參數(shù)的表達(dá)不如任意解碼器函數(shù),而且這在特定假設(shè)下是可以證明的。
問題2:GAN 能建模哪些分布?
大多數(shù) GAN 都側(cè)重于圖像合成,具體而言,研究者會(huì)在一些標(biāo)準(zhǔn)圖像數(shù)據(jù)集上訓(xùn)練 GAN,例如 MNIST、CIFAR-10、STL-10、CelebA 和 Imagenet 等。這些數(shù)據(jù)集也是有難易之分的,而且生成的效果也有好有壞。經(jīng)驗(yàn)表明,CelebA 上最先進(jìn)的圖像合成模型生成的圖像似乎比 Imagenet 上最先進(jìn)的圖像合成模型生成的圖像更有說服力。
與任何科學(xué)一樣,我們也希望有一個(gè)簡(jiǎn)單的理論來解釋實(shí)驗(yàn)觀察。理想情況下,我們可以查看數(shù)據(jù)集,并執(zhí)行一些計(jì)算而不實(shí)際訓(xùn)練生成模型,然后就可以判斷「這個(gè)數(shù)據(jù)集對(duì)于 GAN 來說比較容易建模,但是對(duì)于 VAE 來說比較難」。這些都是經(jīng)驗(yàn)理解,不過目前在這個(gè)領(lǐng)域上也有一些研究。由此引出下面這個(gè)問題:
我們可能問「建模分布」到底是什么意思,會(huì)有一些 GAN 并不能學(xué)習(xí)到的分布嗎?會(huì)不會(huì)有一些 GAN 理論上能學(xué)習(xí)的分布,但是在給定合理的計(jì)算資源下它學(xué)習(xí)的效率并不高?對(duì)于 GAN 來說,這些問題的答案和其他模型給出的會(huì)不會(huì)存在差別,現(xiàn)在很多都遠(yuǎn)沒有解決。
Augustus 認(rèn)為我們有兩種策略來回答這些問題:
- 合成數(shù)據(jù)集:我們可以研究合成數(shù)據(jù)集來探討到底哪些特征會(huì)影響數(shù)據(jù)集的可學(xué)習(xí)性。例如在論文《Are GANs Created Equal? A Large-Scale Study》中,研究者就創(chuàng)建了一個(gè)合成三角形的數(shù)據(jù)集。
- 修正現(xiàn)有的理論結(jié)果:我們可以利用現(xiàn)有的理論結(jié)果,并嘗試修改假設(shè)以考慮數(shù)據(jù)集的不同屬性。
問題3:除了圖像合成外,GAN 還能用于哪些地方?
除了圖像到圖像的轉(zhuǎn)換和領(lǐng)域的自適應(yīng)等應(yīng)用外,大多數(shù) GAN 的成功應(yīng)用都在圖像合成中。而 GAN 在圖像外的探索主要分為三個(gè)領(lǐng)域:
- 文本:文本的離散屬性使其很難應(yīng)用 GAN。因?yàn)?GAN 會(huì)依賴判別器的梯度信號(hào),且它會(huì)通過生成內(nèi)容反向傳播給生成器,所以離散的字符難以更新。目前有兩種方法解決這個(gè)困難,第一種是令 GAN 只對(duì)離散數(shù)據(jù)的連續(xù)表征起作用,第二種則是用梯度估計(jì)和實(shí)際離散的模型來訓(xùn)練 GAN。
- 結(jié)構(gòu)化數(shù)據(jù):GAN 能用于其它非歐氏空間的結(jié)構(gòu)化數(shù)據(jù)(例如圖)嗎?這類數(shù)據(jù)的研究被稱為幾何深度學(xué)習(xí)。GAN 在這個(gè)領(lǐng)域的進(jìn)展也不是非常顯著,但其它深度學(xué)習(xí)方法取得的進(jìn)步也比較有限,因此很難說是 GAN 自身的問題。
- 音頻:音頻是 GAN 除了圖像外最成功的領(lǐng)域,將 GAN 應(yīng)用于無監(jiān)督音頻合成是第一次嚴(yán)格的嘗試,研究人員對(duì)各種實(shí)際音頻操作做出了特殊的限制。
除了這些領(lǐng)域的嘗試,圖像一直是應(yīng)用 GAN 最簡(jiǎn)單的領(lǐng)域,這就會(huì)引起一些問題:
我們最終希望 GAN 能在其它連續(xù)數(shù)據(jù)上獲得類似圖像合成方面的成功,但它需要更好的隱式先驗(yàn)知識(shí)。尋找這些先驗(yàn)可能需要仔細(xì)思考到底哪些特征才是有意義的,并且領(lǐng)域中的哪些特征是可計(jì)算的。
對(duì)于結(jié)構(gòu)化數(shù)據(jù)或離散數(shù)據(jù),我們暫時(shí)還沒有比較好的解決方案。一種方法可能是令生成器和判別器都采用強(qiáng)化學(xué)習(xí)的智能體,并以 RL 的方式進(jìn)行訓(xùn)練。但這樣又需要大量計(jì)算資源,這個(gè)問題可能還是需要基礎(chǔ)研究的進(jìn)展。
問題5:我們?cè)撊绾卧u(píng)估 GAN 的好壞,什么時(shí)候又該使用 GAN 這種生成模型?
說到評(píng)估 GAN,目前有很多方法,但是并沒有一種統(tǒng)一的度量方法:
- Inception Score 和 FID:這兩個(gè)分?jǐn)?shù)都使用預(yù)訓(xùn)練的圖像分類器,都存在已知問題。常見的批評(píng)是這些分?jǐn)?shù)測(cè)量「樣本質(zhì)量」而沒有真正捕獲「樣本多樣性」。
- MS-SSIM:可以使用 MS-SSIM 單獨(dú)評(píng)估多樣性,但該技術(shù)也存在一些問題,并沒有真正流行起來。
- AIS:它建議在 GAN 的輸出上應(yīng)用高斯觀測(cè)值模型(Gaussian observation),并使用退火重要性采樣來評(píng)估該模型下的對(duì)數(shù)似然。但事實(shí)證明,當(dāng) GAN 生成器也是流模型時(shí),這種計(jì)算方式并不準(zhǔn)確。
- 幾何分?jǐn)?shù):這種方法建議計(jì)算生成數(shù)據(jù)流形的幾何屬性,并將這些屬性與真實(shí)數(shù)據(jù)進(jìn)行比較。
- 精度和召回率:該方法嘗試計(jì)算 GAN 的精度和召回率。
- 技能評(píng)級(jí):該方法以證明,訓(xùn)練好的 GAN 判別器能夠包含用來評(píng)估的有用信息。
這些還只是一小部分 GAN 評(píng)估方案。雖然 Inception Score 和 FID 相對(duì)比較流行,但 GAN 評(píng)估顯然還不是一個(gè)確定性問題。最終,我們認(rèn)為關(guān)于如何評(píng)估 GAN 的困惑源于何時(shí)使用 GAN。因此,我們將這兩個(gè)問題合二為一:
我們應(yīng)該用 GAN 來做什么?如果你想要真正的密集型模型,GAN 可能不是很好的選擇。已有實(shí)驗(yàn)表明,GAN 學(xué)習(xí)了目標(biāo)數(shù)據(jù)集的「low support」表征,這意味著 GAN(隱式地)將測(cè)試集的大部分分配為零似然度。
我們沒有太擔(dān)心這一點(diǎn),而是將 GAN 研究的重點(diǎn)放在支撐集沒問題甚至有幫助的任務(wù)上。GAN 可能很適合感知性的任務(wù),如圖像合成、圖像轉(zhuǎn)換、圖像修復(fù)和屬性操作等圖形應(yīng)用。
最后,雖然花費(fèi)巨大,但也可以通過人力進(jìn)行評(píng)估,這使得我們可以測(cè)量那些真正在乎的東西。通過建模預(yù)測(cè)人類答案,可以減少這種方法的成本。
問題6:如何擴(kuò)展訓(xùn)練 GAN 的批量大小?
大的 minibatch 已經(jīng)幫助擴(kuò)展了圖像分類任務(wù)——這些 minibatch 能幫助我們擴(kuò)展 GAN 嗎?對(duì)于有效地使用高度并行硬件加速器,大的 minibatch 可能非常重要。
乍一看,答案好像是肯定的——畢竟,多數(shù) GAN 中的判別器只是個(gè)圖像分類器而已。如果梯度噪聲成為瓶頸,大的批量可以加速訓(xùn)練。然而,GAN 有一個(gè)分類器沒有的獨(dú)特瓶頸:訓(xùn)練步驟可能存在差異。因此,我們提出以下問題:
有證據(jù)表明,提高 minibatch 大小可以改進(jìn)量化結(jié)果并減少訓(xùn)練時(shí)間。如果這一現(xiàn)象是魯棒的,說明梯度噪聲是非常重要的一個(gè)因素。然而,這一結(jié)論還沒有得到系統(tǒng)性的驗(yàn)證,因此我們相信這一問題還有待解答。
交替訓(xùn)練步驟能否更好地利用大批量?理論上來看,最優(yōu)傳輸 GAN 比一般 GAN 具有更好的收斂性,但需要一個(gè)大的批量,因?yàn)檫@種 GAN 需要對(duì)齊樣本和訓(xùn)練數(shù)據(jù)批量。因此,最優(yōu)傳輸 GAN 似乎是擴(kuò)展到非常大的批量的潛在候選方法。
最后,異步 SGD 可以成為利用新硬件的不錯(cuò)備選項(xiàng)。在這種設(shè)定下,限制因素往往是:梯度更新是在參數(shù)的「陳舊」副本上計(jì)算的。但 GAN 實(shí)際上似乎是從在過去參數(shù)快照(snapshots)上進(jìn)行的訓(xùn)練中獲益,所以我們可能會(huì)問,異步 SGD 是否以一種特殊的方式與 GAN 訓(xùn)練交互。
問題7:GAN 和對(duì)抗樣本之間有什么關(guān)系?
眾所周知,對(duì)抗樣本是圖像分類任務(wù)需要克服的一大難題:人類難以察覺的干擾可以導(dǎo)致分類器給出錯(cuò)誤的輸出。我們還知道,有些分類問題通常可以有效學(xué)習(xí),但魯棒地學(xué)習(xí)卻極其困難。
由于 GAN 判別器是一種圖像分類器,有人可能擔(dān)心其遭遇對(duì)抗樣本。研究 GAN 和對(duì)抗樣本的文獻(xiàn)不在少數(shù),但研究二者關(guān)系的文獻(xiàn)卻少得可憐。因此,我們不禁要問:
我們?nèi)绾伍_始考慮這一問題?假設(shè)有一個(gè)固定判別器 D。如果有一個(gè)生成器樣本 G(z) 被正確分類為假樣本,并且有一個(gè)小的擾動(dòng) p,G(z)+p 就被分類為真樣本,那么 D 就有了一個(gè)對(duì)抗樣本。使用一個(gè) GAN 要考慮的是,生成器的梯度更新將產(chǎn)生一個(gè)新的生成器 G',其中,G'(z) = G(z) + p。
這種擔(dān)心是現(xiàn)實(shí)存在的嗎?我們更擔(dān)心一種叫做「對(duì)抗攻擊」的東西。我們有理由相信這些對(duì)抗攻擊發(fā)生的可能性較小。首先,在判別器再次更新之前,生成器只能進(jìn)行一次梯度更新。其次,從先驗(yàn)分布中抽取一批樣本,生成器得以優(yōu)化,這批樣本的每個(gè)梯度更新步都是不同的。
最后,優(yōu)化是在生成器的參數(shù)空間(而不是像素空間)中進(jìn)行的。然而,這些論點(diǎn)都沒有完全排除生成器創(chuàng)建對(duì)抗樣本的可能。這將是一個(gè)值得深度探討且富有成果的話題。
原文鏈接:https://distill.pub/2019/gan-open-problems/
【本文是51CTO專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】