當前位置:
首頁 > 新聞 > 關於GAN的靈魂七問

關於GAN的靈魂七問

生成對抗網路在過去一年仍是研究重點,我們不僅看到可以生成高解析度(1024×1024)圖像的模型,還可以看到那些以假亂真的生成圖像。此外,我們還很興奮能看到一些新的生成模型,它們能生成與 GAN 相媲美的圖像,其主要代表就是流模型 Glow。

從 DeepMind 提出的 BigGAN,到英偉達的 Style-based Generator,它們生成的圖像質量都令人驚嘆。儘管還有很多問題沒有解決,但圖像生成已經能騙過一般人類了。不信的話,你可以試試區分生成的圖像與真實圖像。

看了上面 Style-based Generator 的生成效果,很明顯感覺生成對抗網路在過去 2 年中已經取得了顯著的進展。其實,從 16 年到 18 年圖像合成的質量越來越高,看論文的速度都快趕不上 GAN 的發展了:

關於GAN的靈魂七問

打開今日頭條,查看更多圖片

但是在另一些方面,GAN 的提升並不是那麼顯著。例如,關於如何評估 GAN 的效果,現在仍有很多分歧。因為目前圖像合成基準已經非常多了,所以反思子領域的研究目標顯得更有意義。

在這篇文章中,谷歌大腦團隊的 Augustus Odena 就針對 GAN 的七大開放性問題作出了介紹。

  • 問題 1:如何在 GAN 和其它生成模型之間進行挑選?
  • 問題 2:GAN 能建模哪些分布?
  • 問題 3:除了圖像合成外,GAN 還能用於哪些地方?
  • 問題 4:GAN 的全局收斂性如何?訓練動態過程又是怎樣的?
  • 問題 5:我們該如何評估 GAN 的好壞,什麼時候又該使用 GAN 這種生成模型?
  • 問題 6:如何擴展訓練 GAN 的批量大小?
  • 問題 7:GAN 和對抗樣本之間有什麼關係?

Augustus 對每一個問題都做了很詳細的討論,包括問題背景、問題內容以及如何解決等等。這篇文章發布在 Distill 上,機器之心簡要對六大問題做了介紹,更詳細的內容與相關引用文獻可閱讀原文。

谷歌大腦和其他很多研究者都在致力於解決這些 GAN 的開放性研究問題。這篇文章也引用了近來非常多的生成對抗網路研究,因此並不能面面俱到地描述細節,所以讀者有一定的基礎、對這些問題有一定的直觀了解就最好了。

如何在 GAN 和其它生成模型之間進行挑選

除了 GAN,另外兩種生成模型現在也很流行:流模型和自回歸模型。粗略來說,流模型將一堆可逆變換應用於先驗樣本,以計算觀測值的精確對數似然性。另一方面,自回歸模型將觀測值的分布分解為條件分布,並一次處理觀測值的一個組件(對於圖像,可能是一次處理一個像素)。最近的研究表明,這些模型具有不同的性能特點和權衡。準確描述這些權衡並確定它們是否為模型的固有特性是一個有趣的開放性問題。

具體來說,我們先暫時把重點放在 GAN 和流模型之間計算成本的差異上,訓練 GAN 和流模型的計算成本之間似乎存在巨大差異。GLOW 模型是用 40 個 GPU 花兩周訓練的,以生成 256x256 的名人面部圖像,其使用的參數為 2 億。相比之下,自回歸 GAN 是在相似的面部數據集上用 8 個 GPU 花 4 天訓練的,以生成 1024x1024 的圖像,它使用了 4600 萬參數。流模型大概需要 17 倍多的 GPU 天數和 4 倍多的參數來生成像素少 16 倍的圖像。

為什麼流模型效率更低?有兩個可能的原因:首先,最大似然訓練可能比對抗訓練的計算難度更大。其次,歸一化流可能無法有效代表特定函數。論文《Parallel WaveNet: Fast High-Fidelity Speech Synthesis》第 6.1 節對表達性做了一些小實驗,但目前我們還沒看到任何對這個問題的深入分析。

前面已經討論過了 GAN 和流模型之間的權衡,那自回歸模型呢?事實證明,自回歸模型可以看做不可並行化的流模型(因為它們都可逆)。

因此,GAN 是並行且有效的,但不可逆;流模型是可逆且並行的,但比較低效;自回歸模型是可逆且有效的,但不可並行化。

關於GAN的靈魂七問

由此引出第一個開放性問題:

關於GAN的靈魂七問

解決這個問題的方法之一是研究更多由多種模型混合而成的模型。這種方法已經用於混合 GAN/流模型研究,但它仍然沒有被充分開發。

我們也不確定最大似然訓練是否一定比 GAN 訓練更難。的確,在 GAN 訓練損失下,將 zero mass 置於訓練數據點上沒有被明確禁止,但面對這種情況,強大的判別器的確會比生成器做得更好。不過,看起來 GAN 確實在實踐中學習低支持度的分布。

最終,我們懷疑流模型每個參數的表達不如任意解碼器函數,而且這在特定假設下是可以證明的。

GAN 能建模哪些分布?

大多數 GAN 都側重於圖像合成,具體而言,研究者會在一些標準圖像數據集上訓練 GAN,例如 MNIST、CIFAR-10、STL-10、CelebA 和 Imagenet 等。這些數據集也是有難易之分的,而且生成的效果也有好有壞。經驗表明,CelebA 上最先進的圖像合成模型生成的圖像似乎比 Imagenet 上最先進的圖像合成模型生成的圖像更有說服力。

與任何科學一樣,我們也希望有一個簡單的理論來解釋實驗觀察。理想情況下,我們可以查看數據集,並執行一些計算而不實際訓練生成模型,然後就可以判斷「這個數據集對於 GAN 來說比較容易建模,但是對於 VAE 來說比較難」。這些都是經驗理解,不過目前在這個領域上也有一些研究。由此引出下面這個問題:

關於GAN的靈魂七問

我們可能問「建模分布」到底是什麼意思,會有一些 GAN 並不能學習到的分布嗎?會不會有一些 GAN 理論上能學習的分布,但是在給定合理的計算資源下它學習的效率並不高?對於 GAN 來說,這些問題的答案和其他模型給出的會不會存在差別,現在很多都遠沒有解決。

Augustus 認為我們有兩種策略來回答這些問題:

  • 合成數據集:我們可以研究合成數據集來探討到底哪些特徵會影響數據集的可學習性。例如在論文《Are GANs Created Equal? A Large-Scale Study》中,研究者就創建了一個合成三角形的數據集。
  • 修正現有的理論結果:我們可以利用現有的理論結果,並嘗試修改假設以考慮數據集的不同屬性。

除了圖像合成外,GAN 還能用於哪些地方?

除了圖像到圖像的轉換和領域的自適應等應用外,大多數 GAN 的成功應用都在圖像合成中。而 GAN 在圖像外的探索主要分為三個領域:

  • 文本:文本的離散屬性使其很難應用 GAN。因為 GAN 會依賴判別器的梯度信號,且它會通過生成內容反向傳播給生成器,所以離散的字元難以更新。目前有兩種方法解決這個困難,第一種是令 GAN 只對離散數據的連續表徵起作用,第二種則是用梯度估計和實際離散的模型來訓練 GAN。
  • 結構化數據:GAN 能用於其它非歐氏空間的結構化數據(例如圖)嗎?這類數據的研究被稱為幾何深度學習。GAN 在這個領域的進展也不是非常顯著,但其它深度學習方法取得的進步也比較有限,因此很難說是 GAN 自身的問題。
  • 音頻:音頻是 GAN 除了圖像外最成功的領域,將 GAN 應用於無監督音頻合成是第一次嚴格的嘗試,研究人員對各種實際音頻操作做出了特殊的限制。

除了這些領域的嘗試,圖像一直是應用 GAN 最簡單的領域,這就會引起一些問題:

關於GAN的靈魂七問

我們最終希望 GAN 能在其它連續數據上獲得類似圖像合成方面的成功,但它需要更好的隱式先驗知識。尋找這些先驗可能需要仔細思考到底哪些特徵才是有意義的,並且領域中的哪些特徵是可計算的。

對於結構化數據或離散數據,我們暫時還沒有比較好的解決方案。一種方法可能是令生成器和判別器都採用強化學習的智能體,並以 RL 的方式進行訓練。但這樣又需要大量計算資源,這個問題可能還是需要基礎研究的進展。

我們該如何評估 GAN 的好壞,什麼時候又該使用 GAN 這種生成模型?

說到評估 GAN,目前有很多方法,但是並沒有一種統一的度量方法:

  • Inception Score 和 FID:這兩個分數都使用預訓練的圖像分類器,都存在已知問題。常見的批評是這些分數測量「樣本質量」而沒有真正捕獲「樣本多樣性」。
  • MS-SSIM:可以使用 MS-SSIM 單獨評估多樣性,但該技術也存在一些問題,並沒有真正流行起來。
  • AIS:它建議在 GAN 的輸出上應用高斯觀測值模型(Gaussian observation),並使用退火重要性採樣來評估該模型下的對數似然。但事實證明,當 GAN 生成器也是流模型時,這種計算方式並不準確。
  • 幾何分數:這種方法建議計算生成數據流形的幾何屬性,並將這些屬性與真實數據進行比較。
  • 精度和召回率:該方法嘗試計算 GAN 的精度和召回率。
  • 技能評級:該方法以證明,訓練好的 GAN 判別器能夠包含用來評估的有用信息。

這些還只是一小部分 GAN 評估方案。雖然 Inception Score 和 FID 相對比較流行,但 GAN 評估顯然還不是一個確定性問題。最終,我們認為關於如何評估 GAN 的困惑源於何時使用 GAN。因此,我們將這兩個問題合二為一:

關於GAN的靈魂七問

我們應該用 GAN 來做什麼?如果你想要真正的密集型模型,GAN 可能不是最好的選擇。已有實驗表明,GAN 學習了目標數據集的「low support」表徵,這意味著 GAN(隱式地)將測試集的大部分分配為零似然度。

我們沒有太擔心這一點,而是將 GAN 研究的重點放在支撐集沒問題甚至有幫助的任務上。GAN 可能很適合感知性的任務,如圖像合成、圖像轉換、圖像修復和屬性操作等圖形應用。

最後,雖然花費巨大,但也可以通過人力進行評估,這使得我們可以測量那些真正在乎的東西。通過建模預測人類答案,可以減少這種方法的成本。

如何擴展訓練 GAN 的批量大小?

大的 minibatch 已經幫助擴展了圖像分類任務——這些 minibatch 能幫助我們擴展 GAN 嗎?對於有效地使用高度並行硬體加速器,大的 minibatch 可能非常重要。

乍一看,答案好像是肯定的——畢竟,多數 GAN 中的判別器只是個圖像分類器而已。如果梯度雜訊成為瓶頸,大的批量可以加速訓練。然而,GAN 有一個分類器沒有的獨特瓶頸:訓練步驟可能存在差異。因此,我們提出以下問題:

關於GAN的靈魂七問

有證據表明,提高 minibatch 大小可以改進量化結果並減少訓練時間。如果這一現象是魯棒的,說明梯度雜訊是非常重要的一個因素。然而,這一結論還沒有得到系統性的驗證,因此我們相信這一問題還有待解答。

交替訓練步驟能否更好地利用大批量?理論上來看,最優傳輸 GAN 比一般 GAN 具有更好的收斂性,但需要一個大的批量,因為這種 GAN 需要對齊樣本和訓練數據批量。因此,最優傳輸 GAN 似乎是擴展到非常大的批量的潛在候選方法。

最後,非同步 SGD 可以成為利用新硬體的不錯備選項。在這種設定下,限制因素往往是:梯度更新是在參數的「陳舊」副本上計算的。但 GAN 實際上似乎是從在過去參數快照(snapshots)上進行的訓練中獲益,所以我們可能會問,非同步 SGD 是否以一種特殊的方式與 GAN 訓練交互。

GAN 和對抗樣本之間有什麼關係?

眾所周知,對抗樣本是圖像分類任務需要克服的一大難題:人類難以察覺的干擾可以導致分類器給出錯誤的輸出。我們還知道,有些分類問題通常可以有效學習,但魯棒地學習卻極其困難。

由於 GAN 判別器是一種圖像分類器,有人可能擔心其遭遇對抗樣本。研究 GAN 和對抗樣本的文獻不在少數,但研究二者關係的文獻卻少得可憐。因此,我們不禁要問:

關於GAN的靈魂七問

我們如何開始考慮這一問題?假設有一個固定判別器 D。如果有一個生成器樣本 G(z) 被正確分類為假樣本,並且有一個小的擾動 p,G(z)+p 就被分類為真樣本,那麼 D 就有了一個對抗樣本。使用一個 GAN 要考慮的是,生成器的梯度更新將產生一個新的生成器 G",其中,G"(z) = G(z) + p。

這種擔心是現實存在的嗎?我們更擔心一種叫做「對抗攻擊」的東西。我們有理由相信這些對抗攻擊發生的可能性較小。首先,在判別器再次更新之前,生成器只能進行一次梯度更新。其次,從先驗分布中抽取一批樣本,生成器得以優化,這批樣本的每個梯度更新步都是不同的。

最後,優化是在生成器的參數空間(而不是像素空間)中進行的。然而,這些論點都沒有完全排除生成器創建對抗樣本的可能。這將是一個值得深度探討且富有成果的話題。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

百道Python面試題實現,搞定Python編程就靠它
開放下載!復旦大學邱錫鵬教授發布教科書《神經網路與深度學習》

TAG:機器之心 |