GAN效能不穩?這九大技術可“鎮住”四類缺陷

AI科技大本營發表於2019-02-21

640?wx_fmt=jpeg


作者 | Bharath Raj

譯者 | ang010ela

編輯 | 一一

出品 | AI科技大本營


儘管 GAN 領域的進步令人印象深刻,但其在應用過程中仍然存在一些困難。本文梳理了 GAN 在應用過程中存在的一些難題,並提出了最新的解決方法。


使用 GAN 的缺陷


眾所周知,GAN 是由 Generator 生成網路和 Discriminator 判別網路組成的。


1. Mode collapse(模型奔潰)


注:Mode collapse 是指 GAN 生成的樣本單一,其認為滿足某一分佈的結果為 true,其他為 False,導致以上結果。


自然資料分佈是非常複雜,且是多峰值的(multimodal)。也就是說資料分佈有很多的峰值(peak)或眾數(mode)。每個 mode 都表示相似資料樣本的聚集,但與其他 mode 是不同的。


在 mode collapse 過程中,生成網路 G 會生成屬於有限集 mode 的樣本。當 G 認為可以在單個 mode 上欺騙判別網路 D 時,G 就會生成該 mode 外的樣本。     


640?wx_fmt=png

上圖表示 GAN 的輸出沒有 mode collapse. 下圖則出現了 mode collapse。


判別網路最後會判別來自該 mode 的樣本是假的。最後,生成網路 G 會簡單地鎖定到另一個 mode。該迴圈會無限進行,就會限制生成樣本的多樣性。


2. Convergence(收斂)


GAN 訓練過程中遇到的一個問題是什麼時候停止訓練?因為判別網路 D 損失降級會改善生成網路 G 的損失(反之亦然),因此無法根據損失函式的值來判斷收斂,如下圖所示:


640?wx_fmt=png

典型的GAN損失函式圖。注意該如何從這個圖中解釋收斂性。


3. Quality(質量)


與前面提到的收斂問題一樣,很難量化地判斷生成網路 G 什麼時候會生成高質量的樣本。另外,在損失函式中加入感知正則化則在一定程度上可緩解該問題。


4. Metrics(度量)


GAN 的目標函式解釋了生成網路 G 或 判別網路 D 如何根據元件來執行,但它卻不表示輸出的質量和多樣性。因此,需要許多不同的度量指標來進行衡量。


改善效能的技術


下面總結了一些可以使 GAN 更加穩定使用的技術。


1. Alternative Loss Functions (替代損失函式)


修復 GAN 缺陷的最流行的補丁是  Wasserstein GAN (https://arxiv.org/pdf/1701.07875.pdf)。該 GAN 用 Earth Mover distance ( Wasserstein-1 distance 或 EM distance) 來替換傳統 GAN 的 Jensen Shannon divergence ( J-S 散度) 。EM 距離的原始形式很難理解,因此使用了雙重形式。這需要判別網路是 1-Lipschitz,通過修改判別網路的權重來維護。


使用 Earth Mover distance 的優勢在於即使真實的生成資料分佈是不相交的,它也是連續的。同時,在生成的影像質量和損失值之間存在一定關係。使用 Earth Mover distance 的劣勢在於對於每個生成模型 G  都要執行許多判別網路 D 的更新。而且,研究人員認為權重修改是確保 1-Lipschitz 限制的極端方式。


640?wx_fmt=png

左圖中 earth mover distance 是連續的, 即便其分佈並不連續, 這不同於優圖中的 the Jensen Shannon divergence。


另一個解決方案是使用均方損失( mean squared loss )替代對數損失( log loss )。LSGAN (https://arxiv.org/abs/1611.04076)的作者認為傳統 GAN 損失函式並不會使收集的資料分佈接近於真實資料分佈。


原來 GAN  損失函式中的對數損失並不影響生成資料與決策邊界(decision boundary)的距離。另一方面,LSGAN 也會對距離決策邊界較遠的樣本進行懲罰,使生成的資料分佈與真實資料分佈更加靠近,這是通過將均方損失替換為對數損失來完成的。


2. Two Timescale Update Rule (TTUR)


在 TTUR 方法中,研究人員對判別網路 D 和生成網路 G 使用不同的學習速度。低速更新規則用於生成網路 G ,判別網路 D使用 高速更新規則。使用 TTUR 方法,研究人員可以讓生成網路 G 和判別網路 D 以 1:1 的速度更新。 SAGAN (https://arxiv.org/abs/1805.08318) 就使用了 TTUR 方法。


3. Gradient Penalty (梯度懲罰)


論文Improved Training of WGANs(https://arxiv.org/abs/1704.00028)中,作者稱權重修改會導致優化問題。權重修改會迫使神經網路學習學習更簡單的相似(simpler approximations)達到最優資料分佈,導致結果質量不高。同時如果 WGAN 超引數設定不合理,權重修改可能會出現梯度消失或梯度爆炸的問題,論文作者在損失函式中加入了一個簡單的梯度懲罰機制以緩解該問題。


640?wx_fmt=png

加入 Gradient Penalty 作為正則化器


DRAGAN (https://arxiv.org/abs/1705.07215)的作者稱,當 GAN 的博弈達到一個區域性平衡態(local equilibrium state),就會出現 mode collapse 的問題。而且判別網路 D 在這種狀態下產生的梯度是非常陡(sharp)的。一般來說,使用梯度懲罰機制可以幫助避免這種狀態的產生,極大增強 GAN 的穩定性,儘可能減少 mode collapse 問題的產生。


4. Spectral Normalization(譜歸一化)


Spectral normalization 是用在判別網路 D 來增強訓練過程的權重正態化技術 (weight normalization technique),可以確保判別網路 D 是 K-Lipschitz 連續的。 SAGAN (https://arxiv.org/abs/1805.08318)這樣的實現也在判別網路 D 上使用了譜正則化。而且該方法在計算上要比梯度懲罰方法更加高效。


5. Unrolling and Packing (展開和打包)


文章 Mode collapse in GANs(http://aiden.nibali.org/blog/2017-01-18-mode-collapse-gans/)中提到一種預防 mode hopping 的方法就是在更新引數時進行預期對抗(anticipate counterplay)。展開的 GAN ( Unrolled GANs )可以使用生成網路 G 欺騙判別網路 D,然後判別網路 D 就有機會進行響應。


另一種預防 mode collapse 的方式就是把多個屬於同一類的樣本進行打包,然後傳遞給判別網路 D 。PacGAN (https://arxiv.org/abs/1712.04086)就融入了該方法,並證明可以減少 mode collapse 的發生。


6. 多個 GAN


一個 GAN 可能不足以有效地處理任務,因此研究人員提出使用多個連續的 GAN ,每個 GAN 解決任務中的一些簡單問題。比如,FashionGAN(https://www.cs.toronto.edu/~urtasun/publications/zhu_etal_iccv17.pdf)就使用 2 個 GAN 來執行影像定位翻譯。

640?wx_fmt=png

FashionGAN 使用兩個 GANs 進行影像定位翻譯。


因此,可以讓 GAN 慢慢地解決更難的問題。比如 Progressive GANs (ProGANs,https://arxiv.org/abs/1710.10196) 就可以生成解析度極高的高質量影像。


7. Relativistic GANs(相對生成對抗網路)


傳統的 GAN 會測量生成資料為真的可能性。Relativistic GANs 則會測量生成資料“逼真”的可能性。研究人員可以使用相對距離測量方法(appropriate distance measure)來測量相對真實性(relative realism),相關論文連結:https://arxiv.org/abs/1807.00734。

640?wx_fmt=png

圖 A 表示 JS 散度的最優解,圖 B 表示使用標準 GAN 損失時判別網路 D 的輸出,圖 C 表示輸出曲線的實際圖。


在論文中,作者提到判別網路 D 達到最優狀態時,D 的輸出應該聚集到 0.5。但傳統的 GAN 訓練演算法會讓判別網路 D 對影像輸出“真實”(real,1)的可能性,這會限制判別網路 D 達到最優效能。不過這種方法可以很好地解決這個問題,並得到不錯的結果。

640?wx_fmt=png

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


8. Self Attention Mechanism(自注意力機制)


Self Attention GANs(https://arxiv.org/abs/1805.08318)作者稱用於生成影像的卷積會關注本地傳播的資訊。也就是說,由於限制性接收域這會錯過廣泛傳播關係。


640?wx_fmt=png

將 attention map (在黃色框中計算)新增到標準卷積操作中。


Self-Attention Generative Adversarial Network 允許影像生成任務中使用注意力驅動的、長距依賴的模型。自注意力機制是對正常卷積操作的補充,全域性資訊(長距依賴)會用於生成更高質量的影像,而用來忽略注意力機制的神經網路會考慮注意力機制和正常的卷積。(相關論文連結:https://arxiv.org/pdf/1805.08318.pdf)。


640?wx_fmt=png

使用紅點標記的視覺化 attention map。


9. 其他技術


其他可以用來改善 GAN 訓練過程的技術包括:

  • 特徵匹配

  • Mini Batch Discrimination(小批量判別)

  • 歷史平均值

  • One-sided Label Smoothing(單側標籤平滑)

  • Virtual Batch Normalization(虛擬批量正態化)


更多相關技術見:

https://github.com/soumith/ganhacks。


原文連結:

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


(本文為 AI科技大本營編譯文章,轉載請微信聯絡 1092722531)

精彩推薦

640?wx_fmt=jpeg

640?wx_fmt=jpeg

推薦閱讀:

                         640?wx_fmt=png

點選“閱讀原文”,檢視歷史精彩文章。

相關文章