當前位置:
首頁 > 新聞 > GAN最新進展:8大技巧提高穩定性

GAN最新進展:8大技巧提高穩定性

新智元報道

來源:medium

編輯:肖琴

【新智元導讀】生成對抗網路GAN很強大,但也有很多造成GAN難以使用的缺陷。本文介紹了可以克服GAN訓練缺點的一些解決方案,有助於提高GAN性能。

生成對抗網路 (GAN) 是一類功能強大的神經網路,具有廣泛的應用前景。GAN 本質上是由兩個神經網路組成的系統——生成器 (Generator)鑒別器 (Discriminator)——二者相互競爭。

GAN 的原理示意圖

給定一組目標樣本,生成器試圖生成能夠欺騙鑒別器的樣本,使鑒別器認為這些樣本是真實的。鑒別器試圖從假的 (生成的) 樣本中分辨出真實的 (目標) 樣本。使用這種迭代訓練方法,我們最終能得到一個非常擅長生成足以以假亂真的樣本的生成器。

GAN 有很多應用,因為它們可以學習模仿幾乎所有類型的數據分布。通常,GAN 用於移除圖像偽影、超解析度、姿勢轉換,以及任何類型的圖像翻譯,例如下面這些:

使用 GAN 進行圖像翻譯 (Source:https://phillipi.github.io/pix2pix/)

然而,由於其無常的穩定性,GAN 非常難以使用。不用說,許多研究人員已經提出了很好的解決方案來減輕 GAN 訓練中涉及的一些問題。

然而,這一領域的研究進展如此之快,以至於很難跟蹤所有有趣的想法。本文列出了一些常用的使 GAN 訓練穩定的技術。

使用 GAN 的缺點

GAN 難以使用的原因有很多,這裡列出一些主要的原因。

1、模式坍塌 (Mode collapse)

自然數據分布是高度複雜且多模態的。也就是說,數據分布有很多「峰值」(peaks)「模式」(modes)。每個 mode 表示相似數據樣本的集中度,但與其他 mode 不同。

在 mode collapse 期間,生成器生成屬於一組有限模式集的樣本。當生成器認為它可以通過鎖定單個模式來欺騙鑒別器時,就會發生這種情況。也就是說,生成器僅從這種模式來生成樣本。

頂部的圖像表示沒有發生 mode collapse 的 GAN 的輸出。底部的圖像表示發生了 mode collapse 的 GAN 的輸出

(Source: https://arxiv.org/pdf/1611.02163.pdf)

鑒別器最終會發現這種模式下的樣本是假的。但生成器僅僅是鎖定到另一種模式。這個循環無限重複,從根本上限制了生成樣本的多樣性

2、收斂 (Convergence)

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

一個典型的 GAN 損失函數

3. 質量

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

4. 度量標準 (Metrics)

GAN 目標函數可以解釋生成器或鑒別器相對於其他方法的性能表現。然而,它並不代表輸出的質量或多樣性。因此,我們需要不同的度量標準。

8大技巧提高GAN性能

有很多技巧可以用來使 GAN 更加穩定或更加強大。這裡只解釋了相對較新的或較複雜的一些技術。

1、替代損失函數 (Alternative Loss Functions)

針對 GAN 的缺陷,最常用的一種修復方法是Wasserstein GAN。它本質上用Earth Mover distance(Wasserstein-1 distance 或 EM distance) 來替代傳統 GAN 的Jensen Shannon 散度。EM 距離的原始形式是難以處理的,因此我們使用它的 dual 形式。這要求鑒別器為 1-Lipschitz,它是通過削減鑒別器的權重來維持的。

使用 Earth Mover distance 的優點是,即使真實的數據和生成的數據分布不相交,它也是連續的,這與 JS 散度或 KL 散度不同。同時,生成的圖像質量與損失值之間存在相關性。缺點是,我們需要對每個生成器更新執行多個鑒別器更新。此外,作者認為,利用權重削減來確保 1-Lipschitz 約束是一種糟糕的方法。

即使分布不連續,earth mover distance(左)也是連續的,與 JS 散度 (右) 不同

另一個解決方案是使用均方損失 (mean squared loss)來替代對數損失。LSGAN 的作者認為,傳統的 GAN 損失函數並沒有提供太多的激勵來將生成的數據分布 「拉」 到接近真實數據分布的位置。

原始 GAN 損失函數中的 log loss 並不關心生成的數據與決策邊界的距離 (決策邊界將真實數據和虛假數據分開)。另一方面,LSGAN 對遠離決策邊界的生產樣本實施乘法,本質上是將生成的數據分布 「」 得更接近真實的數據分布。LSGAN 用均方損失代替對數損失來實現這一點。

2、Two Timescale Update Rule (TTUR)

在這種方法中,我們對鑒別器和生成器使用不同的學習率。通常,生成器使用較慢的更新規則 (update rule),鑒別器使用較快的更新規則。使用這種方法,我們可以以 1:1 的比例執行生成器和識別器的更新,只需要修改學習率。SAGAN 實現正是使用了這種方法。

3、梯度懲罰 (Gradient Penalty)

在 Improved Training of WGANs 這篇論文中,作者聲稱weight clipping會導致優化問題。

作者表示, weight clipping 迫使神經網路學習最優數據分布的 「更簡單的近似」,從而導致較低質量的結果。他們還聲稱,如果沒有正確設置 WGAN 超參數,那麼 weight clipping 會導致梯度爆炸或梯度消失問題。

作者在損失函數中引入了一個簡單的gradient penalty,從而緩解了上述問題。此外,與最初的 WGAN 實現一樣,保留了 1-Lipschitz 連續性。

與 WGAN-GP 原始論文一樣,添加了 gradient penalty 作為一個正則化器

DRAGAN 的作者聲稱,當 GAN 所玩的遊戲達到 「局部平衡狀態」 時,就會發生 mode collapse。他們還聲稱,鑒別器圍繞這些狀態產生的梯度是「尖銳的」。當然,使用 gradient penalty 可以幫助我們避開這些狀態,大大增強穩定性,減少模式崩潰。

4、譜歸一化 (Spectral Normalization)

Spectral Normalization 是一種權重歸一化技術,通常用於鑒別器上,以增強訓練過程。這本質上保證了鑒別器是K-Lipschitz連續的。

像 SAGAN 這樣的一些實現,也在生成器上使用 spectral Normalization。該方法比梯度懲罰法計算效率更高。

5、Unrolling 和 Packing

防止 mode hopping 的一種方法是預測未來,並在更新參數時預測對手。Unrolled GAN 使生成器能夠在鑒別器有機會響應之後欺騙鑒別器。

防止 mode collapse 的另一種方法是在將屬於同一類的多個樣本傳遞給鑒別器之前 「打包」 它們,即packing。這種方法被 PacGAN 採用,在 PacGAN 論文中,作者報告了 mode collapse 有適當減少。

6、堆疊 GAN

單個 GAN 可能不足以有效地處理任務。我們可以使用多個連續堆疊的 GAN,其中每個 GAN 可以解決問題中更簡單的一部分。例如,FashionGAN 使用兩個 GAN 來執行局部圖像翻譯。

FashionGAN 使用兩個 GAN 進行局部圖像翻譯

把這個概念發揮到極致,我們可以逐漸加大 GAN 所解決的問題的難度。例如,Progressive GAN (ProGAN)可以生成高質量的高解析度圖像。

7、Relativistic GAN

傳統的 GAN 測量生成的數據是真實數據的概率。 Relativistic GAN 測量生成的數據比真實數據 「更真實」 的概率。正如 RGAN 論文中提到的,我們可以使用適當的距離度量來度量這種「相對真實性」。

使用標準 GAN loss 時鑒別器的輸出 (圖 B)。圖 C 表示輸出曲線的實際樣子。圖 A 表示 JS 散度的最優解。

作者還提到,鑒別器的輸出在達到最優狀態時應該收斂到 0.5。然而,傳統的 GAN 訓練演算法強迫鑒別器對任何圖像輸出 「real」(即 1)。這在某種程度上阻止了鑒別器達到其最優值。 relativistic 方法也解決了這個問題,並取得了相當顯著的效果,如下圖所示:

經過 5000 次迭代後,標準 GAN(左) 和 relativistic GAN(右) 的輸出

8、自注意力機制

Self Attention GANs 的作者表示,用於生成圖像的卷積會查看局部傳播的信息。也就是說,由於它們限制性的 receptive field,它們錯過了全局性的關係。

將 attention map(在黃色框中計算) 添加到標準卷積操作中

Self-Attention GAN 允許對圖像生成任務進行注意力驅動的長期依賴建模。 Self-Attention 機制是對普通卷積運算的補充。全局信息 (遠程依賴) 有助於生成更高質量的圖像。網路可以選擇忽略注意機制,也可以將其與正常卷積一起考慮。

對紅點標記的位置的 attention map 的可視化

總結

研究社區已經提出了許多解決方案和技巧來克服 GAN 訓練的缺點。然而,由於新研究的數量龐大,很難跟蹤所有重要的貢獻。

由於同樣的原因,這篇文章中分享的細節並非詳盡無疑,可能在不久的將來就會過時。儘管如此,還是希望本文能夠成為人們尋找改進 GAN 性能的方法的一個指南。

囿於篇幅,本文中的參考文獻見原文:

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

【加入社群】

新智元AI技術 產業社群招募中,歡迎對AI技術 產業落地感興趣的同學,加小助手微信號:aiera2015_2入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 新智元 的精彩文章:

NeurIPS 2018開鑼,中國論文數全球第二!清華、中科院、北大排前三
Baidu開始To B!李彥宏加入BAT雲上大戰

TAG:新智元 |