首頁 > AI資訊 > 最新資訊 > 史上最全GAN綜述2020版:算法、理論及應用

史上最全GAN綜述2020版:算法、理論及應用

新火種    2023-10-31

選自arXiv

作者:Jie Gui、葉杰平、陶大程等

機器之心編譯

參與:郭元晨、Geek AI

自從 2014 年 Ian GoodFellow 提出 GAN 模型,生成對抗網絡迅速成為了最火的生成式模型。時至今日,基于 GAN 設計的新型算法如雨后春筍般紛紛涌現了出來、對于 GAN 存在的模式坍塌和收斂性等理論問題的深入分析層出不窮,其應用也廣泛滲透到了諸如計算機視覺、自然語言處理、醫療人工智能等領域中。本文是一份出自陶大程、葉杰平老師等大牛之手的 GAN 詳細綜述,介紹了近年來有關 GAN 模型的相關研究進展,并指出了今后該領域的發展方向。

論文地址: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 變體。

InfoGAN

ConditionalGANs(cGANs)

CycleGAN

f-GAN

IntegralProbabilityMetrics(IPMs)

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 的訓練:

目標函數

訓練技巧

架構

GAN 的評價指標

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

InceptionScore(IS)

Modescore(MS)

FrechetInceptionDistance(FID)

Multi-scalestructuralsimilarity(MS-SSIM)

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

任務驅動的 GAN

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

半監督學習

遷移學習

強化學習

多模態學習

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 最成功的的應用是在圖像處理和計算機視覺方面,例如圖像超分辨率、圖像生成與操作和視頻處理。

超分辨率

圖像合成和操作

紋理合成

目標檢測

視頻應用

序列數據

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 小節)。

Tags:
相關推薦
免責聲明
本文所包含的觀點僅代表作者個人看法,不代表新火種的觀點。在新火種上獲取的所有信息均不應被視為投資建議。新火種對本文可能提及或鏈接的任何項目不表示認可。 交易和投資涉及高風險,讀者在采取與本文內容相關的任何行動之前,請務必進行充分的盡職調查。最終的決策應該基于您自己的獨立判斷。新火種不對因依賴本文觀點而產生的任何金錢損失負任何責任。

熱門文章