A Review on Generative Adversarial Networks: Algorithms, Theory and Applications

論文地址:https://arxiv.org/pdf/2001.06937.pdf

近年來,生成對抗網絡(GAN)是一個熱門的研究課題。2014 年至今,人們對 GAN 進行了廣泛的研究,並提出了大量算法。但是,很少有全面的研究來解釋不同 GAN 變體之間的聯繫以及它們演變的方式。在本文中,我們嘗試從算法、理論和應用的角度對多種 GAN 方法進行綜述。首先,我們詳細介紹了大多數 GAN 算法的研究動機、數學表徵和架構。此外,GAN 已經在一些特定應用上與其它機器學習算法相結合,如半監督學習、遷移學習和強化學習。本文比較了這些 GAN 方法的異同。其次,我們研究了與 GAN 相關的理論問題。第三,我們闡述了 GAN 在圖像處理與計算機視覺、自然語言處理、音樂、語音與音頻、醫學以及數據科學中的典型應用。最後,我們指出了 GAN 的一些未來的開放性研究問題。
 

算法

在本節中,我們首先介紹最原始的 GAN。然後,介紹其具有代表性的變體、訓練及評估方式以及任務驅動的 GAN。

生成對抗網絡

當模型都是神經網絡時,GAN 架構實現起來非常直觀。爲了學習生成器在數據 x 上的分佈 p_g,首先定義一個關於輸入噪聲變量的先驗分佈 p_z(z)[3],其中 z 是噪聲變量。接着,GAN 表示了從噪聲空間到數據空間的映射 G(z, θ_g),其中 G 是一個由參數爲 θ_g 的神經網絡表示的可微函數。除了 G 之外,另一個神經網絡 D(x, θ_d) 也用參數 θ_d 定義,D(x) 的輸出是一個標量。D(x) 表示了 x 來自真實數據而不是來自生成器 G 的概率。我們對判別器 D 進行訓練,以最大化爲訓練數據和生成器 G 生成的假樣本提供正確標籤的概率。同時,我們訓練 G,最小化 log(1-D(G(z)))。

  • 目標函數

GAN 可以使用各種不同的目標函數。

  • 最原始的極大極小博弈

GAN [3] 的目標函數是

其中 D(x) 是 [1, 0]^T 和 [D(x), 1 - D(x)]^T 間的交叉熵。類似地,log(1-D(G(z))) 是 [0, 1]^T 和 [D(G(z)), 1 - D(G(z))]^T 間的交叉熵。對於一個固定的 G,[3] 中給出了最優的判別器 D:

(1) 式中的極大極小博弈可以被重新形式化爲:

兩個概率分佈 p(x) 和 q(x) 之間的 KL 散度和 JS 散度定義如下:

因此,(3) 式等價於

因此,GAN 的目標函數和 KL 散度與 JS 散度都相關。

  • 非飽和博弈

實際上,公式 (1) 可能無法爲 G 提供足夠大的梯度使其很好地學習。一般來說,G 在學習過程的早期性能很差,產生的樣本與訓練數據有明顯的差異。因此,D 可以以高置信度拒絕 G 生成的樣本。在這種情況下,log(1-D(G(z))) 是飽和的。我們可以訓練 G 以最大化 log(D(G(z))),而非最小化 log(1-D(G(z)))。生成器的損失則變爲

這個新的目標函數可以在訓練過程中使 D 和 G 的達到相同的不動點,但是在學習初期就提供了大得多的梯度。非飽和博弈是啓發式的,而非理論驅動的。然而,非飽和博弈還存在其它問題,如用於訓練 G 的數值梯度不穩定。在最優的 D*_G 下,有

因此 E_(x~p_g)[-log(D*_G(x))] 等價於

根據 (3) 式和 (6) 式,有

因此 E_(x~p_g)[log^(1 - D*_G(x))] 等價於

將 (11) 式代入 (9) 式,可以得到

從 (12) 式可以看出,對非飽和博弈中的替代 G 損失函數的優化是矛盾的,因爲第一項目標是使生成的分佈與實際分佈之間的差異儘可能小,而由於負號的存在,第二項目標是使得這兩個分佈之間的差異儘可能大。這將爲訓練 G 帶來不穩定的數值梯度。此外,KL 散度是非對稱度量,這可以從以下兩個例子中反映出來

對 G 的兩種誤差的懲罰是完全不同的。第一種誤差是 G 產生了不真實的樣本,對應的懲罰很大。第二種誤差是 G 未能產生真實的樣本,而懲罰很小。第一種誤差是生成的樣本不準確,而第二種誤差是生成的樣本不夠多樣化。基於這個原理,G 傾向於生成重複但是安全的樣本,而不願意冒險生成不同但不安全的樣本,這會導致模式坍塌(mode collapse)問題。

  • 最大似然博弈

在 GAN 中,有許多方法可以近似 (1) 式。假設判別器是最優的,我們想最小化

在 GAN 框架中有其它可能的方法逼近最大似然 [17]。圖 1 展示了對於原始零和博弈、非飽和博弈以及最大似然博弈的比較。

由圖 1 可以得到三個觀察結果。

首先,當樣本可能來自於生成器的時候,即在圖的左端,最大似然博弈和原始極大極小博弈都受到梯度彌散的影響,而啓發式的非飽和博弈不存在此問題。

第二,最大似然博弈還存在一個問題,即幾乎所有梯度都來自曲線的右端,這意味着每個 minibatch 中只有極少一部分樣本主導了梯度的計算。這表明減小樣本方差的方法可能是提高基於最大似然博弈的 GAN 性能的重要研究方向。

第三,基於啓發式的非飽和博弈的樣本方差較低,這可能是它在實際應用中更成功的可能原因。

M.Kahng 等人 [124] 提出了 GAN Lab,爲非專業人士學習 GAN 和做實驗提供了交互式可視化工具。Bau 等人 [125] 提出了一個分析框架來可視化和理解 GAN。

代表性的 GAN 變體

與 GAN [126]-[131] 相關的論文有很多,例如 CSGAN [132] 和 LOGAN [133]。在本小節中,我們將介紹一些具有代表性 GAN 變體。

  1. InfoGAN
  2. ConditionalGANs(cGANs)
  3. CycleGAN
  4. f-GAN
  5. IntegralProbabilityMetrics(IPMs)
  6. LossSensitiveGAN(LS-GAN)

有一個叫做「The GAN Zoo」的網站(https://github.com/hindupuravinash/the-gan-zoo),列舉了許多 GAN 的變體。更多詳細信息請訪問該網站。

GAN 的訓練

儘管理論上存在特有的解決方案,但由於多種原因 [29],[32],[179],GAN 的訓練是困難且常常不穩定的。其中一個困難是來自這樣一個事實:即 GAN 的最佳權重對應於損失函數的鞍點,而非極小值點。

關於 GAN 訓練的論文很多。Yadav 等人 [180] 用預測方法使 GAN 訓練更加穩定。[181] 通過使用獨立的學習率,爲判別器和生成器提出了兩個時間尺度更新規則(TTUR),以確保模型可以收斂到穩定的局部納什均衡。Arjovsky [179] 爲全面瞭解 GAN 的訓練動力學(training dynamics)進行了理論探究,分析了爲什麼 GAN 難以訓練,研究並嚴格證明了訓練 GAN 時出現的損失函數飽和和不穩定等問題,提出瞭解決這類問題的一個實用且具有理論依據的方向,並引入了新的工具來研究它們。Liang 等人 [182] 認爲 GAN 的訓練是一個連續的學習問題 [183]。

改善 GAN 訓練的一種方法是評估訓練中可能發生的經驗性「症狀」。這些症狀包括:生成器坍塌至對於不同的輸入只能生成極其相似的樣本 [29];判別器損失迅速收斂至零 [179],不能爲生成器提供梯度更新;使生成器、判別器這一對模型難以收斂 [32]。

我們將從三個角度介紹 GAN 的訓練:

  1. 目標函數
  2. 訓練技巧
  3. 架構

GAN 的評價指標

在本小節中,我們說明用於 GAN 的一些評價指標 [215],[216]:

  1. InceptionScore(IS)
  2. Modescore(MS)
  3. FrechetInceptionDistance(FID)
  4. Multi-scalestructuralsimilarity(MS-SSIM)

如何爲 GAN 選擇一個好的評價指標仍然是一個難題 [225]。Xu 等人 [219] 提出了對 GAN 評價指標的實證研究。Karol Kurach [224] 對 GAN 中的正則化和歸一化進行了大規模的研究。還有一些其它對於 GAN 比較性的研究,例如 [226]。參考文獻 [227] 提出了幾種作爲元度量的度量依據,以指導研究人員選擇定量評價指標。恰當的評價指標應該將真實樣本與生成的假樣本區分開,驗證模式下降(mode drop)或模式坍塌,以及檢測過擬合。希望將來會有更好的方法來評價 GAN 模型的質量。

任務驅動的 GAN

本文的重點關注 GAN 模型。目前,對於涉及特定任務的緊密相關的領域,已經有大量的文獻。

  1. 半監督學習
  2. 遷移學習
  3. 強化學習
  4. 多模態學習

GAN 已被用於特徵學習領域,例如特徵選擇 [277],哈希 [278]-[285] 和度量學習 [286]。MisGAN [287] 可以通過 GAN 利用不完整數據進行學習。[288] 中提出了進化型 GAN(Evolutionary GAN)。Ponce 等人 [289] 結合 GAN 和遺傳算法爲視覺神經元演化圖像。GAN 還被用於其它機器學習任務 [290],例如主動學習 [291],[292],在線學習 [293],集成學習 [294],零樣本學習 [295],[296] 和多任務學習 [297]。

理論

最大似然估計(MLE)

並不是所有生成模型都使用 MLE。一些生成模型不使用 MLE,但可以被修改爲使用 MLE(GAN 就屬於此類)。可以簡單地證明,最小化 p_data(x) 和 p_g(x) 之間的 KL 散度(KLD)等價於最大化樣本數 m 增加時的對數似然:

爲了保證符號一致性,將模型概率分佈 p_θ(x)替換爲 p_g(x)。有關 MLE 和其他統計估計量的更多信息,請參閱 [298] 的第 5 章。

模式坍塌

GAN 很難訓練,並且在 [26],[29] 已經觀察到它們經常受到模式坍塌 [299],[300] 的影響,其中生成器學習到僅僅根據少數幾種數據分佈模式生成樣本,而忽視了許多其它的模式(即使整個訓練數據中都存在來自缺失模式的樣本)。在最壞的情況下,生成器僅生成單個樣本(完全坍塌)[179],[301]。

在本小節中,我們首先引入 GAN 模式坍塌的兩種觀點:散度觀點和算法觀點。然後,我們將介紹通過提出新的目標函數或新的架構以解決模式坍塌的方法,包括基於目標函數的方法和基於架構的方法。

其它理論問題

其它理論問題包括:

1. GAN 是否真正學到了分佈?

2. 散度/距離

3. 逆映射

4. 數學觀點(例如優化)

5. 記憶

應用

如前所述,GAN 是可以由隨機向量 z 生成逼真的樣本的強大的生成模型。我們既不需要知道顯式的真實數據分佈,或進行其他任何數學假設。這些優點使 GAN 可以被廣泛應用於許多領域,例如圖像處理和計算機視覺、序列數據等。

圖像處理和計算機視覺

GAN 最成功的的應用是在圖像處理和計算機視覺方面,例如圖像超分辨率、圖像生成與操作和視頻處理。

  1. 超分辨率
  2. 圖像合成和操作
  3. 紋理合成
  4. 目標檢測
  5. 視頻應用

序列數據

GAN 也在序列數據上取得了一定成就如自然語言、音樂、語音、音頻 [376], [377]、時間序列 [378]–[381] 等。

開放性研究問題

GAN 領域仍然存在許多開放性研究問題。

將 GAN 用於離散數據:GAN 依賴於生成參數關於生成樣本是完全可微的。因此,GAN 無法直接生成離散數據,例如哈希編碼和獨熱(one-hot)向量。解決此類問題非常重要,因爲它可以釋放 GAN 在自然語言處理和哈希計算中的潛力。Goodfellow 提出了三種解決這個問題的方法 [103]:使用 Gumbel-softmax [448],[449] 或離散分佈 [450];利用強化算法 [451];訓練生成器以採樣可轉換爲離散值的連續值(例如,直接對單詞的嵌入向量進行採樣)。

還有其他方法朝着該研究方向發展。Song 等人 [278] 使用了一個連續函數來近似哈希值的符號函數。Gulrajani 等人 [19] 用連續生成器建模離散數據。Hjelm 等人 [452] 引入了一種用離散數據訓練 GAN 的算法,該算法利用來自判別器的估計差異度量來計算生成樣本的重要性權重,從而爲訓練生成器提供了策略梯度。可以在 [453],[454] 中找到其它的相關工作。在這個有趣的領域需要有更多的工作出現。

新的散度:研究者提出了一系列用於訓練 GAN 的新的積分概率度量(IPM),如 Fisher GAN [455],[456],均值和協方差特徵匹配 GAN(McGan)[457] 和 Sobolev GAN [458]。是否還有其它有趣的散度類別?這值得進一步的研究。

估計不確定性:通常來說,我們擁有的數據越多,估計的不確定性會越小。GAN 不會給出生成訓練樣本的分佈,但 GAN 想要生成和訓練樣本分佈相同的新樣本。因此,GAN 既沒有似然也沒有明確定義的後驗分佈。目前已經有關於這個方向研究的初步嘗試,例如 Bayesian GAN [459]。儘管我們可以利用 GAN 生成數據,但是如何度量訓練好的生成器的不確定性呢?這是另一個值得未來研究的有趣問題。

理論:關於泛化問題,Zhang 等人 [460] 提出了在不同評價指標下的真實分佈和學習到的分佈之間的泛化界。當用神經距離進行評價時,[460] 中的泛化界表明,只要判別器的集合足夠小,無論假設集或生成器集合的大小如何,泛化性都是可以保證的。Arora 等人 [306] 提出了一種新穎的測試方法,使用離散概率的「生日悖論」來估計支撐集大小,並且表明即使圖像具有較高的視覺質量,GAN 也會受到模式坍塌的影響。更深入的理論分析非常值得研究。我們如何經驗性地測試泛化性?有用的理論應當能夠選擇模型的類別、容量和架構。這是一個值得未來工作深入研究的有趣問題。

其它:GAN 領域還有許多其它重要的研究問題,如評估方式(詳見 3.4 小節)和模式坍縮(詳見 4.2 小節)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章