學界!關於GAN的靈魂七問
點選上方“ 磐創AI ”,選擇“置頂公眾號”
精品文章,第一時間送達
來 源:distill
編譯:Walker、張弛
轉載自:大資料文摘,未經允許不得二次轉載
根據一些指標顯示,關於生成對抗網路(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節做了一些關於其效果的小實驗,但目前我們尚不知道在這個問題是否有深入的分析。
我們已經討論過生成對抗網路和流模型之間的權衡,那麼自迴歸模型如何?事實證明,自迴歸模型可以表示為不可並行化的流模型(因為它們都是可逆的)。在這種情況下,可並行化的說法有點不精確。我們的意思是流模型的取樣通常必須按順序進行,每次一個觀測值。不過,可能有一些方法可以繞過這個限制。事實證明,自迴歸模型比流模型上在時間和引數上效率更高。因此,生成對抗網路是並行、高效但不可逆的,流模型是可逆、並行但不高效,而自迴歸模型是可逆的、高效,但非並行的。
回到第一個開放的問題:
解決這個問題的一種方法是研究更多模型,這些模型將是多類模型的混合。有考慮將生成對抗網路和流動模型混合,但我們認為這種方法的研究尚不充分。
我們也不確定極大似然訓練是否一定比生成對抗網路訓練更難。確實,在生成對抗網路訓練損失下,沒有明確禁止在訓練資料上設定一些零質量的資料,但是如果生成器這麼做了,那麼強大的鑑別器將能夠做得更好。因此,看起來生成對抗網路似乎在實踐中會學習低支援的分佈。
最後,我們懷疑流模型在每個引數上的表達能力上不如任意解碼器函式,我們還認為這在一些假設條件下是可以被證明的。
生成對抗網路模型可以對哪種分佈進行建模?
大多數生成對抗網路的研究側重於影象合成。人們通常使用深度學習社群中幾個標準的影象資料集上訓練生成對抗網路:MNIST、CIFAR-10、STL-10、CelebA、和ImageNet。
關於這些資料集中哪一個是“最容易建模”的資料,有一些觀點認為MNIST和CelebA被認為比ImageNet、CIFAR-10或STL-10更容易,因為它們“非常常規”。另有人認為,“大量的類別使生成對抗網路很難訓練ImageNet圖片”。這些結果是有事實證明的,即CelebA上的最先進影象合成模型生成的影象似乎比ImageNet上的最先進影象合成模型更令人信服。
然而,我們必須通過複雜的實踐來得出這些結論,並試圖在更大,更復雜的資料集上訓練生成對抗網路。我們特別研究了生成對抗網路如何對恰好用於物體識別的資料集進行處理。
與任何科學一樣,我們希望能夠有一個簡單的理論來解釋我們的實驗觀察結果。理想情況下,我們可以檢視資料集,在不訓練生成模型的情況下進行一些計算,然後說“此資料集對於生成對抗網路建模比變分自編碼器容易”。我們在此已經取得了一些進展,但我們認為還有可更多的工作需要做。現在的問題是:
我們也可能會問以下相關問題:“給分佈建模”是什麼意思?我們是否對低支援率表示滿意,還是需要真正的密度模型?是否存在生成對抗網路永遠無法學習建模的分佈?對於某些合理的資源消耗模型,是否存在理論上生成對抗網路可學習,但是實際上並不能有效學習的分佈?對於生成對抗網路而言,這些問題的答案是否與其他生成模型的有所不同?
我們提出了回答這些問題的兩種策略:
-
合成數據集-我們可以研究合成數據集,以探討哪些特徵會影響其可學習性。例如,作者建立了合成三角形資料集。我們認為這方面尚未被探索。合成數據集甚至可以根據關注的數量(例如連通性或平滑性)進行引數化,以便進行系統研究。這種資料集也可用於研究其他型別的生成模型。
-
修改現有理論結果-我們可以採用現有的理論結果並嘗試修改假設,以考慮資料集的不同屬性。例如,我們可以獲得適用於給定單峰資料分佈的生成對抗網路的結果,並檢視當資料分佈變為多峰時會發生什麼情況。
我們如何在影象合成外擴充套件生成對抗網路的應用?
除了影象翻譯和遷移學習等應用,大多數生成對抗網路的成功都是在影象合成中取得的。嘗試在影象領域外使用生成對抗網路,主要集中於以下三個領域:
-
文字-文字的離散性使得我們難以應用生成對抗網路。這是因為生成對抗網路依賴將鑑別器中的訊號通過生成的文字反向傳播到發生器。解決這一困難有兩種方法。第一種是僅對離散資料的連續表示進行生成對抗網路行為。第二種是使用實際離散模型,並嘗試使用梯度估計訓練生成對抗網路。還有其它更復雜的改進方法,但據我們所知,沒有一種方法的結果能與基於似然的語言模型相比較。
-
結構化資料-那麼其他非歐幾里得的結構化資料,如圖的應用會怎樣?這類資料的研究稱為幾何深度學習。生成對抗網路在這裡取得的成果有限,但其他深度學習技術也是如此,因此很難判斷生成對抗網路在這裡能發揮多大作用。我們嘗試在這個領域中使用生成對抗網路,使發生器(和鑑別器)隨機遊走(隨機行走等是指基於過去的表現,無法預測將來的發展步驟和方向。),目的是儘量類似於從源圖取樣的隨機遊走。
-
音訊-音訊是生成對抗網路最可能像影象應用那樣大獲成功的領域。首次將生成對抗網路應用於無監督音訊合成的重大嘗試是,作者在處理音訊資料時做了各種特殊寬鬆設定。最近的研究表明,生成對抗網路在某些感知指標上甚至能優於自迴歸模型。
儘管進行了這些嘗試,影象顯然是生成對抗網路應用最容易的領域。這使得我們思考以下問題:
擴充套件到其他領域是需要新的訓練技術,還是僅僅需要在每個領域更好的隱式先驗資訊?
我們期望生成對抗網路最終在其他連續資料上能實現類似影象合成水平的成功,但它需要更好的隱式先驗資訊。要找到這些先驗資訊,就需要認真思考什麼是合理的、並在特定領域計算上是可行的。
對於結構化資料或不連續資料,我們尚不能確定。一種方法是使發生器和鑑別器都成為經過強化學習訓練的代理。但要使這種方法起作用可能需要大規模的計算資源。最後,這個問題可能只需要基礎研究的進展就能解決。
關於生成對抗網路訓練的全域性收斂,我們該作何評價?
訓練生成對抗網路與訓練其他神經網路不同,因為我們同時優化發生器和辨別器以達到相反的目的。在某些假設下,該同步優化是區域性漸近穩定的。
不幸的是,我們很難證明一般情況下的令人感興趣的資訊。這是因為鑑別器/發生器的損失是其引數的非凸函式。但所有神經網路模型都存在此問題!我們希望能以某種方式來解決同步優化產生的問題。這促使我們開始思考以下問題:
我們在這個問題上得到了突出進展。廣義而言,現有3種技術,所有這些技術均呈現出了有前景的成果,但均未研究完成:
簡化假設-第一種策略是簡化關於發生器和鑑別器的假設。例如,如果採用特殊技術和一些額外假設進行優化,則可以證明簡化的LGQ GAN(線性發生器、高斯資料和二次判別器)能夠全域性收斂。如果逐漸放寬這些假設,結果可能會很可觀。例如,我們可以遠離單峰分佈。這是很自然的就能想到的研究方式,因為“模式塌陷”是標準GAN的常見問題。
使用常規神經網路技術-第二種策略是應用用於分析常規神經網路(也是非凸型)的技術來回答有關生成對抗網路收斂的問題。例如,有人認為深度神經網路的非凸性不是問題,因為隨著網路越來越大,損失函式的較差區域性極小值會在指數變化中漸漸被忽略。該分析能否“引入生成對抗網路中?事實上,對用作分類器的深部神經網路進行分析,並觀察其是否適用於生成對抗網路,似乎是一種具有普適性的啟發方法。
博弈論-最終策略是使用博弈論的概念對生成對抗網路訓練建模。這些技術產生了可證明收斂到某種近似納什均衡的訓練過程,但卻使用了不合理的大資源約束。在這種情況下,下一步的工作是嘗試減少這些資源限制。
我們應如何評估生成對抗網路,又該在何時使用它們?
在評估生成對抗網路方面目前有很多方案,但幾乎沒有共識。建議包括:
-
Inception Score and FID——這兩個因素都使用預訓練的影象分類器,並且都有已知的問題。常見批評是,這些因素衡量的是“樣本質量”,而不是“樣本多樣性”。
-
MS-SSIM——使用MS-SSIM來單獨評估多樣性,但這種技術存在一些問題,而且還沒有真正廣泛使用。
-
AIS——在生成對抗網路輸出上建立高斯觀測模型,並使用退火演算法重要性取樣來預估該模型下的對數似然,但如果生成對抗網路發生器也是流模型的話,以這種方式計算的估計就是不準確的了。
-
幾何評分——計算生成的資料流形的幾何特性,並將這些特性與實際資料進行比較。
-
精確性和召回——嘗試測量生成對抗網路的“精確性”和“召回率”。
-
技能等級——表明訓練過的生成對抗網路鑑別器可以包含有用的資訊,以便進行評估。
這些只是大家提議的生成對抗網路評估方案的一小部分。雖然IS和FID相對比較流行,但是生成對抗網路評估問題顯然還未解決。最後,我們認為“如何評價生成對抗網路”這一問題源於“何時使用生成對抗網路”這一問題。因此,我們將這兩個問題合併為一個問題:
我們應該用生成對抗網路做什麼?如果你想要的是一個真實的密度模型,生成對抗網路可能不是最好的選擇。現在有很好的實驗證據表明,生成對抗網路只能學習目標資料集的“低支援度”表示,這意味著生成對抗網路測試集的絕大部分(隱含地)被指定為零概率。
與其擔心太多這個方面的事情,我們認為把生成對抗網路的研究重點放在那些好的甚至有用的任務上更有意義。生成對抗網路很可能非常適合感知任務,影象合成、影象轉換、影象填充和屬性操作等圖形應用程式都均屬於這一概念。
我們應該如何評價這些感知任務上的生成對抗網路?理想情況下,我們只需要一個測試評判員,但這非常昂貴。一個便宜的測試評論員只需要看分類器是否可以區分樣本中的真實和虛假。這叫做分類器雙樣本測試(C2STs)。雙樣本測試的主要問題是,哪怕發生器有一個小小的缺陷(比如說是樣本的系統性),它都會嚴重影響評估。
理想情況下,我們會有一個不受單一因素決定的整體評估。一種方法可能讓判別器對其顯性缺陷視而不見,但是一旦我們這樣做了,其他一些缺陷就有可能占主導地位,我們就又需要一個新的判別器,等等。如果我們反覆這樣做,我們可以得到一種“格蘭姆-施密特步驟”,該步驟建立一個寫有最重要的缺陷和忽略它們的判別器的有序列表。也許這可以通過在判別器啟用值上進行PCA(主成分分析),以及逐步剔除高方差成份來實現。
最後,我們可以在不考慮費用的情況下人為評估。這能夠驗證我們真正關心的事情。另外,我們可以通過預測人類的答案、只在預測不確定時與真人互動這種方法來降低成本。
生成對抗網路的訓練是如何調整批量資料的Large。
較大的批量資料(minibatch)有助於擴大影象分類,那麼它們也能幫助我們擴大生成對抗網路嗎?對於有效地使用高度類似的硬體加速器,較大的批量資料可能尤其重要。
乍一看,似乎答案應該是贊同,畢竟大多數生成對抗網路中的鑑別器只是一個影象分類器。如果在梯度噪聲上遇到障礙,更多的批處理(batch)可以加速訓練。然而,生成對抗網路有一個分類器沒有的障礙:訓練過程可能會出現偏差。所以,我們可以提出一些問題:
有證據表明,增加批訓練的數量可以提高定量結果並縮短訓練時間。如果這種現象很魯棒,那就表明梯度噪聲是一個主導因素。然而,這一點還沒有得到系統的研究,所以我們相信答案依然是開放的。
其它的訓練過程能更好地利用大批量批處理嗎?理論上,最佳傳輸生成對抗網路比普通生成對抗網路的收斂性更好,但由於它嘗試將批處理的樣本和訓練資料相對應地對齊,所以需要較大的批處理量。因此,它似乎很有希望成為大批量處理的備選項。
最後,非同步SGD可能成為充分利用新硬體的好選擇。在此設定中,限制因素主要是得根據之前的引數來計算梯度更新。但是,GAN實際上應該是受益於對之前引數的訓練,所以我們可能會問非同步SGD是否以一種特殊的方式與生成對抗網路訓練模型相互作用的。
對抗生成網路和對抗樣本的關係是怎樣的?
眾所周知,影象分類器會受到對抗樣本的攻擊:也就是人類無法察覺的干擾,這些干擾新增到影象中時會導致分類器錯誤輸出。我們還知道,分類問題通常是可以有效地學習的,但難以進行可靠的指數方式學習。
由於生成對抗網路鑑別器是一種影象分類器,所以人們可能會擔心它遇到對抗樣本。儘管有大量關於生成對抗網路和對抗樣本的文獻,但它們之間似乎沒有多少聯絡。因此,我們可以問這樣一個問題:
我們可以從何開始考慮這個問題呢?我們先假設一個固定的鑑別器為D。如果有一個生成器得到的樣本G(z) 被認為是假,而一個小的干擾項p,比如 G(z) + p被認為是真,那麼這裡將會存在一個對抗樣本D。對於生成對抗網路,我們關注的則是,生成器的梯度更新將生成一個新的生成器 G’,滿足G’(z) = G(z) + p。
這種擔心現實嗎?這說明對生成模型的蓄意攻擊可能會起作用,但我們更擔心的是某些稱為“意外攻擊”的東西。我們有理由相信這些意外攻擊存在的可能性較小。首先,生成器只允許在鑑別器再次更新之前進行一次梯度更新;相反,當前的對抗樣本通常會進行數十次的更新。
第二,根據先驗的批處理樣本,發生器進行了優化,而它的批處理樣本在每次梯度步驟中都是不同的。最後,優化是在生成器的引數下,而不是畫素下進行的。然而,這些論點中沒有一個能夠真正排除產生對抗樣本的發生器。我們認為這是一個意義重大的課題,有待進一步探索。
相關報道:
https://distill.pub/2019/gan-open-problems/
【 磐創粉絲福利 】 加磐小仙好友( 微訊號:cellerai )併發送關鍵字“ python基礎 ”即可 0元學習 線上精品課程 《Python基礎課程升級版》 。
你也許還想 看 :
● Rasa Stack:建立支援上下文的人工智慧助理和聊天機器人教程
歡迎掃碼關注:
點選下方 | 閱 讀 原 文 | 瞭解更多