生成對抗網絡的最新研究進展

雷鋒網 AI 科技評論按,生成對抗網絡是一類功能強大、應用廣泛的神經網絡。它們基本上是由兩個神經網絡組成的系統——生成器和判別器,這兩個網絡相互制約。計算機視覺和人工智能的愛好者 Bharath Raj 近日發佈以一篇博文,總結了生成對抗網絡的原理、缺點和為了克服這些缺點所做的研究的最新進展。雷鋒網 AI 科技評論編譯整理如下:

生成對抗網絡的工作原理

給定一組目標樣本,生成器試圖生成一些能夠欺騙判別器、使判別器相信它們是真實的樣本。判別器試圖從假(生成)樣本中解析真實(目標)樣本。使用這種迭代訓練方法,我們最終得到一個真正擅長生成類似於目標樣本的樣本的生成器。

GAN 有大量的應用程序,因為它們可以學習模擬幾乎任何類型的數據分佈。一般來說,GAN 可以用於處理超低分辨率的圖像以及任何類型的圖像翻譯等等,如下所示:

使用 GAN 進行圖像翻譯

然而,由於其變化無常、表現不穩定,很難用它們做一些事情。當然,許多研究人員已經提出了很好的解決方案,以減輕 GAN 網絡訓練中所涉及到的一些問題。然而,這一領域的研究進展速度如此之快,以至於人們來不及去追蹤很多有趣的想法。這個博客列出了一些常用的使 GAN 訓練表現穩定的技術。

使用 GAN 的缺點概述

GAN 很難用的原因有很多,本節的下面將列出其中一些原因。

1.模型崩潰(Mode collapse)

自然數據分佈是高度複雜和多模態的。也就是說,數據分佈有很多「峰值」或「模型」。每種模型代表相似數據樣本的濃度,且不同於其他模型。

在模型摺疊期間,生成器生成屬於一組有限模型的樣本。當生成器相信它可以通過鎖定到單個模型來騙過判別器時,就會發生這種情況。也就是說,生成器僅從該模型生成樣本。

頂部的圖像表示沒有模型摺疊的 GAN 的輸出,底部的圖像表示模型摺疊時的 GAN 輸出。

判別器最終發現這個模型的樣本是假的。因此,生成器只需鎖定到另一個模型。這個循環無限重複,這基本上限制了生成樣本的多樣性。要獲得更詳細的解釋,您可以查看此日誌。

2.收斂

在 GAN 訓練中,一個常見的問題是「我們什麼時候停止訓練它們?」「。由於判別器損耗降低(反之亦然)時,生成器損耗會增加,因此不能根據損耗函數的值判斷收斂性。如下圖所示:

典型 GAN 損失函數圖,請注意為何這張圖不能解釋收斂性。

3.質量

與前面的問題一樣,很難定量地判斷生成器何時會生成高質量的樣本。在損失函數中加入額外的感知正則化可以在一定程度上緩解這種情況。

4.度量

GAN 的目標函數解釋了和其對手相比,它的生成器或者判別器表現如何。然而,它並不代表輸出的質量或多樣性。因此,我們需要不同的度量標準來度量相同的內容。

術語

在深入研究有助於提高性能的技術之前,讓我們回顧一下一些術語。這將有助於理解下一節中所介紹的技術。

1.上確界和下確界

簡而言之,下確界是集合的最大下界,上確界是集合的最小上界。它們不同於最小值和最大值,因為上確界和下確界不一定屬於集合。

2.散度度量

散度度量表示兩個分佈之間的距離。傳統的 GAN 神經網絡基本上最大限度地減少了真實數據分佈和生成數據分佈之間的 Jensen Shannon 分歧。GAN 損失函數可以修改,以盡量減少其他散度度量,如 Kulback-Leibler 散度或總變化距離。

3.Kantorovich Rubenstein 對偶性

一些散度度量措施難以以其初始形式進行優化。然而,他們的對偶形式(用下確界代替上確界或者用上確界代替下確界)可能易於優化。對偶原則為將一種形式轉換為另一種形式奠定了框架。關於這一點的詳細解釋,你可以查看這篇博客

4.Lipschitz 連續性

一個 Lipschitz 連續函數的變化速度是有限的。對 Lipschitz 連續函數來說,函數曲線上任一點的斜率的絕對值不能超過實值 K。這樣的函數也被稱為 K-Lipschitz 連續函數。

Lipschitz 連續性對 GAN 網絡來說是必須的,因為它們會限制判別器的斜率。另外,Kantorovich-Rubinstein 對偶性要求它是 Wasserstein GAN。

提高性能的技術

有許多技巧和技術可以用來使 GAN 更加穩定和強大。在這篇博客中,為了簡潔起見,我只解釋了一些相對較新或複雜的技術。在本節末尾,我列出了其他各種方法和技巧。

1.損失函數

關於 GAN 的缺點,最受歡迎的修復方法之一是 Wasserstein GAN。它的基本原理是用地球移動距離(Wasserstein-1 distance 距離或 EM 距離)取代了傳統的 GAN 的 Jensen Shannon 發散。EM 距離的原始形式是難以處理的,因此我們使用它的對偶形式(由 Kantorovich-Rubenstein 對偶計算)。這就要求判別器是 1-lipschitz,它通過剪切判別器的權重來保持。

使用移動距離的優點是,它是連續的,即使實際和生成的數據在分佈上沒有交集。此外,生成的圖像質量與損失值(源)之間存在相關性。缺點是,對每個生成器更新,我們都需要根據原始實現來進行判別器更新。此外,作者聲稱,降低權重是確保 1-lipschitz 約束的一種糟糕方法。

與 Jensen-Shannon 散度(右)不同,地球運動距離(左)是連續的,雖然它的分佈不是連續的。有關詳細說明,請參閱這篇文章。

另一個有趣的解決方案是使用均方損失而不是對數損失。LSGAN 的作者認為,傳統的 GAN 損失函數並沒有提供太多的激勵來「拉動」生成的數據分佈接近真實的數據分佈。

原始 GAN 損失函數中的對數損失不影響生成數據與決策邊界之間的距離(決策邊界將真實和虛假數據分開)。另一方面,LSGAN 對遠離決策邊界的生成樣本進行懲罰,本質上是將生成的數據分佈「拉近」實際數據分佈。它通過用均方損失代替對數損失來做到這一點。有關這一點的詳細解釋,請訪問此博客。

2.兩個時間刻度更新規則(TTUR)

在這種方法中,我們對判別器和生成器使用不同的速率進行學習。通常,生成器使用較慢的更新規則,判別器使用較快的更新規則。使用這種方法,我們可以以 1:1 的比率執行生成器和判別器更新,且只需調整學習速率。值得注意的是,SAGAN 實現使用了此方法。

3.梯度懲罰

本文改進了 WGAN 的訓練,作者聲稱,降低權重(最初在 WGAN 中執行)會導致優化問題。他們聲稱,權重的降低迫使神經網絡學習「更簡單的近似」達到最佳的數據分佈,導致低質量的結果。他們還聲稱,如果 WGAN 超參數設置不正確,那麼降低權重會導致梯度問題爆發或者消失。作者在損失函數中加入了一個簡單的梯度懲罰,從而減輕了上述問題。此外,1-lipschitz 的連續性保持不變,正如最初的 WGAN 實施一樣。

DRAGAN 的作者認為,當 GAN 玩的遊戲(即判別器和生成器相互對抗)達到「局部平衡狀態」時,模式就會崩潰。他們還認為,這些判別器所產生的梯度是「尖銳的」。當然,使用梯度懲罰將有助於我們繞過這些狀態,大大提高穩定性,減少模式崩潰。

4.譜歸一化

譜歸一化是一種權重歸一化技術,通常用於判別器以強化訓練過程。這基本上確保了判別器是 K-Lipschitz 連續的。

像 SAGAN 這樣的一些實現也在生成器上使用了譜歸一化。文中還指出,該方法比梯度懲罰法計算效率高。

5.展開和打包

正如這篇優秀的博客所述,防止模式崩潰的一個方法是在更新參數時預測對策。當判別器有機會作出反應(考慮到反作用)后,展開的 GAN 使生成器能夠愚弄判別器。

另一種防止模式崩潰的方法是「打包」屬於同一類的幾個樣本,然後將其傳遞給判別器。這種方法被納入了 PacGAN 中,在這裡有模式崩潰的減少的報道。

6.成堆的 GAN

單個 GAN 可能不夠強大,無法有效地處理任務。我們可以使用連續放置的多個 GAN,其中每個 gan 解決問題的一個更簡單的版本。例如,FashionGAN 使用兩個 GAN 來執行本地化圖像翻譯。

Fashiongan 使用兩個 gan 來執行本地化圖像翻譯

把這個概念推向極端,我們可以逐漸增加向我們的 GAN 提出的問題的難度。例如,漸進式 GAN(ProGAN)可以生成高質量、高分辨率的圖像。

7.Relativistic GANs

傳統的 GAS 測量生成數據真實的概率。Relativistic GANs 測量生成的數據比實際數據「更真實」的概率。我們可以使用一個合適的距離來測量這個「相對真實性」,正如「RGAN」論文中所提到的那樣。

當使用標準 GAN(圖 B)損失的時候,生成器的輸出。圖 C 是輸出曲線的實際樣子。圖 A 表示 JS 散度的最優解。

作者還提到,當判別器輸出達到最佳狀態時,它應該收斂到 0.5。然而,傳統的 GAN 訓練算法強制判別器為任何圖像輸出「真實」(即 1)。這在某種程度上阻止了判別器達到其最佳值。Relativistic GANs 也解決了這個問題,並且有相當顯著的結果,如下所示。

經過 5000 次迭代后的標準 GAN(左)和 Relativistic GAN(右)的輸出。

8.自我關注機制

「Self Attention GANs」的作者聲認為,用於生成圖像的卷積着眼於局部傳播的信息。也就是說,由於接受領域有限,這些卷積錯過了全局關係。

將注意力圖(在黃色框中計算)添加到標準卷積操作中。

自我關注生成對抗網絡允許對圖像生成任務進行關注驅動的遠程依賴性建模。自我注意機制是對正常卷積運算的補充。全局信息(長距離相關性)有助於生成更高質量的圖像。網絡可以選擇忽略注意機制,或者將其與普通卷積一起考慮。要獲得詳細的解釋,你可以查看他們的論文

以紅點標記的位置的注意地圖可視化。

其他技術

以下是一些附加技術的列表(並非詳盡列表)用於改進 GAN 訓練:

  • 特徵匹配

  • 小批量鑒別

  • 歷史平均值

  • 單面標籤平滑

  • 虛擬批處理規範化

你可以在這篇文章這篇博文中了解更多關於這些技術的信息。在這個 GitHub 存儲庫中列出了更多的技術。

指標

既然我們已經知道了改進訓練的方法,那麼如何來證明呢?以下指標通常用來衡量 GAN 的性能:

1.初始得分

初始分數衡量生成數據的「真實性」。

初始分數

方程有兩個分量 p(y_x)和 p(y)。這裡,x 是由生成器生成的圖像,p(y_x)是通過預先訓練的初始網絡(如在原始實現中對 ImageNet 數據集進行預訓練)傳遞圖像 x 時獲得的概率分佈。另外,p(y)是邊緣概率分佈,可以通過對生成圖像(x)的幾個不同樣本求 p(y_x)的平均值來計算。這兩個術語代表了真實圖像所需的兩種不同品質:

  • 生成的圖像必須具有「有意義」的對象(對象清晰,不模糊)。這意味着 p(y_x)應該具有「低熵」。換句話說,我們的初始網絡必須可以非常清楚地確定生成的圖像屬於特定的類。

  • 生成的圖像應該是「多樣的」。這意味着 p(y)應該具有「高熵」。換句話說,生成器應該生成圖像,使每個圖像代表不同的類標籤(理想情況下)。


P(y_x)和 P(y)的理想圖。像圖中這樣的一對會有很大的 kL 發散。

如果一個隨機變量是高度可預測的,那麼它的熵就很低(即 p(y)必須是一個具有尖峰的分佈)。相反,如果它是不可預測的,那麼它具有高熵(即 p(y_x)必須是均勻分佈)。如果這兩個特徵都得到滿足,我們就會認為 p(y_x)和 p(y)之間的 KL 差異很大。當然,一個大的初始分數(IS)是更好的。為了更深入地分析初始分數,您可以閱讀這篇論文。

2.Fréchet 距離(FID)

初始分數的一個缺點是,實際數據的統計數據不會與生成數據的統計數據進行比較。Fréchet 距離通過比較真實圖像和生成圖像的平均值和協方差來解決這個缺點。Fréchet 初始距離(FID)執行相同的分析,但它通過預先訓練的 inception-v3 網絡傳遞真實和生成的圖像而生成特徵圖。方程描述如下:

FID 比較實際和生成的數據分佈的平均值和協方差。tr 代表 trace。

較低的 FID 分數更好,因為它表示生成圖像的統計數據與真實圖像的統計數據非常相似。

結論

為了克服 GAN 訓練的不足,學術提出了許多解決方案和方法。然而,由於新研究的數量巨大,很難對所有的新成功進行跟進。由於同樣的原因,本博客中分享的細節並不詳盡,在不久的將來可能會過時。不過,我希望這篇博客能為人們提供一個指導,幫助他們尋找提高他們的工作表現的方法。

via:https://medium.com/beyondminds/advances-in-generative-adversarial-networks-7bad57028032

雷鋒網編譯。


想在手機閱讀更多電腦與科技資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems