天天看點

學界!關于GAN的靈魂七問

來源:distill

編譯:Walker、張弛

轉載自:大資料文摘,未經允許不得二次轉載

學界!關于GAN的靈魂七問

根據一些名額顯示,關于生成對抗網絡(GAN)的研究在過去兩年間取得了本質的進步。在圖像合成模型實踐中的進步快到幾乎無法跟上。

但是,根據其他名額來看,實質性的改進還是較少。例如,在應如何評價生成對抗網絡(GAN)仍存在廣泛的分歧。鑒于目前的圖像合成基線标準已經非常高,似乎快達到了飽和,是以我們認為現在思考這一細分領域的研究目标恰逢其時。

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

這些問題分别是:

  • 生成對抗網絡與其他生成模型之間的權衡取舍是什麼?
  • 生成對抗網絡可以對哪種分布進行模組化?
  • 我們如何在圖像合成外擴充生成對抗網絡的應用?
  • 關于生成對抗網絡訓練的全局收斂,我們該作何評價?
  • 我們應如何評估生成對抗網絡,又該在何時使用它們?
  • 生成對抗網絡的訓練是如何調整批量資料的?
  • 對抗生成網絡和對抗樣本的關系是怎樣的?

生成對抗網絡與其他生成模型之間的權衡取舍是什麼?

除了對抗生成網絡之外,目前流行的還有另外兩種生成模型:流模型(Flow Models)和自回歸模型(Autoregressive Models)。這個名詞不必深究其字面含義。它們隻是用來描述“模型空間”中模糊聚類的有用術語,但是有些模型很難被簡單歸類為這些聚類中的哪一個。我也完全沒有考慮變分自編碼器(VAEs),因為其在目前任何任務中都不是最先進的。

粗略地講,流模型(Flow Models)先将來自先驗的樣本進行一系列可逆變換,以便可以精确計算觀測值的對數似然。另一方面,自回歸模型将觀測值的分布分解為條件分布并每次隻處理觀測值的一部分(對于圖像,其每次可能隻處理一個像素)。近期的研究表明,這些模型具有不同的性能特征和權衡方法。如何準确地描述這些權衡并确定它們是否為該類模型簇中所固有的,這是一個有趣的開放性問題。

具體來說,先暫時考慮對抗生成網絡和流模型之間計算成本的差異。乍一看,流模型似乎可以使對抗生成網絡變得多餘。流模型可以精确得進行對數似然計算和精确推理,是以如果訓練流模型和對抗生成網絡的計算成本相同,則對抗生成網絡可能失去用武之地。而訓練對抗生成網絡需要花費大量精力,是以我們應該關心流模型是否能淘汰對抗生成網絡。即使在這種情況下,可能仍有其他理由支援在圖像到圖像翻譯等環境中使用對抗訓練。将對抗訓練和極大似然訓練相結合可能仍有意義。

然而,訓練對抗生成網絡和流模型所需的計算成本之間似乎存在着較大差距。為了估計這個差距的大小,我們考慮這兩個在人臉資料庫上訓練的模型。GLOW模型(一種基于流模型的生成模型)使用40個GPU、約2億參數值訓練,耗時兩周後生成像素為256x256的名人臉。

相比之下,高效地對抗生成網絡采用類似的人臉資料庫,使用8個GPU、約4600萬個參數訓練,曆時4天後生成了像素為1024x1024圖像。粗略地說,流模型比生成對抗網絡多花費了17倍的GPU天數和4倍的參數來生成圖像,但其像素卻降低了16倍。這一對比并不完美。例如,流模型也可以用更好的技術方法來提高,但是這些方法能讓你有不同的感悟。

為什麼流模型的效率較低?我們考慮可能是如下兩個原因:首先,極大似然訓練在計算上比對抗訓練更難。特别當訓練集的一些元素被生成模型指定為零機率,會受到無比嚴厲的懲罰!另一方面,生成對抗網絡的生成器僅在為訓練集元素賦予零機率時而間接受到懲罰,并且這種懲罰不那麼嚴厲。其次,标準化流(Normalizing Flow)可能在表示某些函數時較為低效。6.1節做了一些關于其效果的小實驗,但目前我們尚不知道在這個問題是否有深入的分析。

我們已經讨論過生成對抗網絡和流模型之間的權衡,那麼自回歸模型如何?事實證明,自回歸模型可以表示為不可并行化的流模型(因為它們都是可逆的)。在這種情況下,可并行化的說法有點不精确。我們的意思是流模型的采樣通常必須按順序進行,每次一個觀測值。不過,可能有一些方法可以繞過這個限制。事實證明,自回歸模型比流模型上在時間和參數上效率更高。是以,生成對抗網絡是并行、高效但不可逆的,流模型是可逆、并行但不高效,而自回歸模型是可逆的、高效,但非并行的。

學界!關于GAN的靈魂七問

回到第一個開放的問題:

學界!關于GAN的靈魂七問

解決這個問題的一種方法是研究更多模型,這些模型将是多類模型的混合。有考慮将生成對抗網絡和流動模型混合,但我們認為這種方法的研究尚不充分。

我們也不确定極大似然訓練是否一定比生成對抗網絡訓練更難。确實,在生成對抗網絡訓練損失下,沒有明确禁止在訓練資料上設定一些零品質的資料,但是如果生成器這麼做了,那麼強大的鑒别器将能夠做得更好。是以,看起來生成對抗網絡似乎在實踐中會學習低支援的分布。

最後,我們懷疑流模型在每個參數上的表達能力上不如任意解碼器函數,我們還認為這在一些假設條件下是可以被證明的。

生成對抗網絡模型可以對哪種分布進行模組化?

大多數生成對抗網絡的研究側重于圖像合成。人們通常使用深度學習社群中幾個标準的圖像資料集上訓練生成對抗網絡:MNIST、CIFAR-10、STL-10、CelebA、和ImageNet。

關于這些資料集中哪一個是“最容易模組化”的資料,有一些觀點認為MNIST和CelebA被認為比ImageNet、CIFAR-10或STL-10更容易,因為它們“非常正常”。另有人認為,“大量的類别使生成對抗網絡很難訓練ImageNet圖檔”。這些結果是有事實證明的,即CelebA上的最先進圖像合成模型生成的圖像似乎比ImageNet上的最先進圖像合成模型更令人信服。

然而,我們必須通過複雜的實踐來得出這些結論,并試圖在更大,更複雜的資料集上訓練生成對抗網絡。我們特别研究了生成對抗網絡如何對恰好用于物體識别的資料集進行處理。

與任何科學一樣,我們希望能夠有一個簡單的理論來解釋我們的實驗觀察結果。理想情況下,我們可以檢視資料集,在不訓練生成模型的情況下進行一些計算,然後說“此資料集對于生成對抗網絡模組化比變分自編碼器容易”。我們在此已經取得了一些進展,但我們認為還有可更多的工作需要做。現在的問題是:

學界!關于GAN的靈魂七問

我們也可能會問以下相關問題:“給分布模組化”是什麼意思?我們是否對低支援率表示滿意,還是需要真正的密度模型?是否存在生成對抗網絡永遠無法學習模組化的分布?對于某些合理的資源消耗模型,是否存在理論上生成對抗網絡可學習,但是實際上并不能有效學習的分布?對于生成對抗網絡而言,這些問題的答案是否與其他生成模型的有所不同?

我們提出了回答這些問題的兩種政策:

  • 合成資料集-我們可以研究合成資料集,以探讨哪些特征會影響其可學習性。例如,作者建立了合成三角形資料集。我們認為這方面尚未被探索。合成資料集甚至可以根據關注的數量(例如連通性或平滑性)進行參數化,以便進行系統研究。這種資料集也可用于研究其他類型的生成模型。
  • 修改現有理論結果-我們可以采用現有的理論結果并嘗試修改假設,以考慮資料集的不同屬性。例如,我們可以獲得适用于給定單峰資料分布的生成對抗網絡的結果,并檢視當資料分布變為多峰時會發生什麼情況。

我們如何在圖像合成外擴充生成對抗網絡的應用?

除了圖像翻譯和遷移學習等應用,大多數生成對抗網絡的成功都是在圖像合成中取得的。嘗試在圖像領域外使用生成對抗網絡,主要集中于以下三個領域:

  • 文本-文本的離散性使得我們難以應用生成對抗網絡。這是因為生成對抗網絡依賴将鑒别器中的信号通過生成的文本反向傳播到發生器。解決這一困難有兩種方法。第一種是僅對離散資料的連續表示進行生成對抗網絡行為。第二種是使用實際離散模型,并嘗試使用梯度估計訓練生成對抗網絡。還有其它更複雜的改進方法,但據我們所知,沒有一種方法的結果能與基于似然的語言模型相比較。
  • 結構化資料-那麼其他非歐幾裡得的結構化資料,如圖的應用會怎樣?這類資料的研究稱為幾何深度學習。生成對抗網絡在這裡取得的成果有限,但其他深度學習技術也是如此,是以很難判斷生成對抗網絡在這裡能發揮多大作用。我們嘗試在這個領域中使用生成對抗網絡,使發生器(和鑒别器)随機遊走(随機行走等是指基于過去的表現,無法預測将來的發展步驟和方向。),目的是盡量類似于從源圖取樣的随機遊走。
  • 音頻-音頻是生成對抗網絡最可能像圖像應用那樣大獲成功的領域。首次将生成對抗網絡應用于無監督音頻合成的重大嘗試是,作者在處理音頻資料時做了各種特殊寬松設定。最近的研究表明,生成對抗網絡在某些感覺名額上甚至能優于自回歸模型。

盡管進行了這些嘗試,圖像顯然是生成對抗網絡應用最容易的領域。這使得我們思考以下問題:

學界!關于GAN的靈魂七問

擴充到其他領域是需要新的訓練技術,還是僅僅需要在每個領域更好的隐式先驗資訊?

我們期望生成對抗網絡最終在其他連續資料上能實作類似圖像合成水準的成功,但它需要更好的隐式先驗資訊。要找到這些先驗資訊,就需要認真思考什麼是合理的、并在特定領域計算上是可行的。

對于結構化資料或不連續資料,我們尚不能确定。一種方法是使發生器和鑒别器都成為經過強化學習訓練的代理。但要使這種方法起作用可能需要大規模的計算資源。最後,這個問題可能隻需要基礎研究的進展就能解決。

關于生成對抗網絡訓練的全局收斂,我們該作何評價?

訓練生成對抗網絡與訓練其他神經網絡不同,因為我們同時優化發生器和辨識器以達到相反的目的。在某些假設下,該同步優化是局部漸近穩定的。

不幸的是,我們很難證明一般情況下的令人感興趣的資訊。這是因為鑒别器/發生器的損失是其參數的非凸函數。但所有神經網絡模型都存在此問題!我們希望能以某種方式來解決同步優化産生的問題。這促使我們開始思考以下問題:

學界!關于GAN的靈魂七問

我們在這個問題上得到了突出進展。廣義而言,現有3種技術,所有這些技術均呈現出了有前景的成果,但均未研究完成:

簡化假設-第一種政策是簡化關于發生器和鑒别器的假設。例如,如果采用特殊技術和一些額外假設進行優化,則可以證明簡化的LGQ GAN(線性發生器、高斯資料和二次判别器)能夠全局收斂。如果逐漸放寬這些假設,結果可能會很可觀。例如,我們可以遠離單峰分布。這是很自然的就能想到的研究方式,因為“模式塌陷”是标準GAN的常見問題。

使用正常神經網絡技術-第二種政策是應用用于分析正常神經網絡(也是非凸型)的技術來回答有關生成對抗網絡收斂的問題。例如,有人認為深度神經網絡的非凸性不是問題,因為随着網絡越來越大,損失函數的較差局部極小值會在指數變化中漸漸被忽略。該分析能否“引入生成對抗網絡中?事實上,對用作分類器的深部神經網絡進行分析,并觀察其是否适用于生成對抗網絡,似乎是一種具有普适性的啟發方法。

博弈論-最終政策是使用博弈論的概念對生成對抗網絡訓練模組化。這些技術産生了可證明收斂到某種近似納什均衡的訓練過程,但卻使用了不合理的大資源限制。在這種情況下,下一步的工作是嘗試減少這些資源限制。

我們應如何評估生成對抗網絡,又該在何時使用它們?

在評估生成對抗網絡方面目前有很多方案,但幾乎沒有共識。建議包括:

  • Inception Score and FID——這兩個因素都使用預訓練的圖像分類器,并且都有已知的問題。常見批評是,這些因素衡量的是“樣本品質”,而不是“樣本多樣性”。
  • MS-SSIM——使用MS-SSIM來單獨評估多樣性,但這種技術存在一些問題,而且還沒有真正廣泛使用。
  • AIS——在生成對抗網絡輸出上建立高斯觀測模型,并使用退火算法重要性采樣來預估該模型下的對數似然,但如果生成對抗網絡發生器也是流模型的話,以這種方式計算的估計就是不準确的了。
  • 幾何評分——計算生成的資料流形的幾何特性,并将這些特性與實際資料進行比較。
  • 精确性和召回——嘗試測量生成對抗網絡的“精确性”和“召回率”。
  • 技能等級——表明訓練過的生成對抗網絡鑒别器可以包含有用的資訊,以便進行評估。

這些隻是大家提議的生成對抗網絡評估方案的一小部分。雖然IS和FID相對比較流行,但是生成對抗網絡評估問題顯然還未解決。最後,我們認為“如何評價生成對抗網絡”這一問題源于“何時使用生成對抗網絡”這一問題。是以,我們将這兩個問題合并為一個問題:

學界!關于GAN的靈魂七問

我們應該用生成對抗網絡做什麼?如果你想要的是一個真實的密度模型,生成對抗網絡可能不是最好的選擇。現在有很好的實驗證據表明,生成對抗網絡隻能學習目标資料集的“低支援度”表示,這意味着生成對抗網絡測試集的絕大部分(隐含地)被指定為零機率。

與其擔心太多這個方面的事情,我們認為把生成對抗網絡的研究重點放在那些好的甚至有用的任務上更有意義。生成對抗網絡很可能非常适合感覺任務,圖像合成、圖像轉換、圖像填充和屬性操作等圖形應用程式都均屬于這一概念。

我們應該如何評價這些感覺任務上的生成對抗網絡?理想情況下,我們隻需要一個測試評判員,但這非常昂貴。一個便宜的測試評論員隻需要看分類器是否可以區分樣本中的真實和虛假。這叫做分類器雙樣本測試(C2STs)。雙樣本測試的主要問題是,哪怕發生器有一個小小的缺陷(比如說是樣本的系統性),它都會嚴重影響評估。

理想情況下,我們會有一個不受單一因素決定的整體評估。一種方法可能讓判别器對其顯性缺陷視而不見,但是一旦我們這樣做了,其他一些缺陷就有可能占主導地位,我們就又需要一個新的判别器,等等。如果我們反複這樣做,我們可以得到一種“格蘭姆-施密特步驟”,該步驟建立一個寫有最重要的缺陷和忽略它們的判别器的有序清單。也許這可以通過在判别器激活值上進行PCA(主成分分析),以及逐漸剔除高方差成份來實作。

最後,我們可以在不考慮費用的情況下人為評估。這能夠驗證我們真正關心的事情。另外,我們可以通過預測人類的答案、隻在預測不确定時與真人互動這種方法來降低成本。

生成對抗網絡的訓練是如何調整批量資料的Large。

較大的批量資料(minibatch)有助于擴大圖像分類,那麼它們也能幫助我們擴大生成對抗網絡嗎?對于有效地使用高度類似的硬體加速器,較大的批量資料可能尤其重要。

乍一看,似乎答案應該是贊同,畢竟大多數生成對抗網絡中的鑒别器隻是一個圖像分類器。如果在梯度噪聲上遇到障礙,更多的批處理(batch)可以加速訓練。然而,生成對抗網絡有一個分類器沒有的障礙:訓練過程可能會出現偏差。是以,我們可以提出一些問題:

學界!關于GAN的靈魂七問

有證據表明,增加批訓練的數量可以提高定量結果并縮短訓練時間。如果這種現象很魯棒,那就表明梯度噪聲是一個主導因素。然而,這一點還沒有得到系統的研究,是以我們相信答案依然是開放的。

其它的訓練過程能更好地利用大批量批處理嗎?理論上,最佳傳輸生成對抗網絡比普通生成對抗網絡的收斂性更好,但由于它嘗試将批處理的樣本和訓練資料相對應地對齊,是以需要較大的批處理量。是以,它似乎很有希望成為大批量處理的備選項。

最後,異步SGD可能成為充分利用新硬體的好選擇。在此設定中,限制因素主要是得根據之前的參數來計算梯度更新。但是,GAN實際上應該是受益于對之前參數的訓練,是以我們可能會問異步SGD是否以一種特殊的方式與生成對抗網絡訓練模型互相作用的。

對抗生成網絡和對抗樣本的關系是怎樣的?

衆所周知,圖像分類器會受到對抗樣本的攻擊:也就是人類無法察覺的幹擾,這些幹擾添加到圖像中時會導緻分類器錯誤輸出。我們還知道,分類問題通常是可以有效地學習的,但難以進行可靠的指數方式學習。

由于生成對抗網絡鑒别器是一種圖像分類器,是以人們可能會擔心它遇到對抗樣本。盡管有大量關于生成對抗網絡和對抗樣本的文獻,但它們之間似乎沒有多少聯系。是以,我們可以問這樣一個問題:

學界!關于GAN的靈魂七問

我們可以從何開始考慮這個問題呢?我們先假設一個固定的鑒别器為D。如果有一個生成器得到的樣本G(z) 被認為是假,而一個小的幹擾項p,比如 G(z) + p被認為是真,那麼這裡将會存在一個對抗樣本D。對于生成對抗網絡,我們關注的則是,生成器的梯度更新将生成一個新的生成器 G’,滿足G’(z) = G(z) + p。

這種擔心現實嗎?這說明對生成模型的蓄意攻擊可能會起作用,但我們更擔心的是某些稱為“意外攻擊”的東西。我們有理由相信這些意外攻擊存在的可能性較小。首先,生成器隻允許在鑒别器再次更新之前進行一次梯度更新;相反,目前的對抗樣本通常會進行數十次的更新。

第二,根據先驗的批處理樣本,發生器進行了優化,而它的批處理樣本在每次梯度步驟中都是不同的。最後,優化是在生成器的參數下,而不是像素下進行的。然而,這些論點中沒有一個能夠真正排除産生對抗樣本的發生器。我們認為這是一個意義重大的課題,有待進一步探索。

相關報道:

https://distill.pub/2019/gan-open-problems/