盡管 GAN 領(lǐng)域的進(jìn)步令人印象深刻,但其在應(yīng)用過程中仍然存在一些困難。本文梳理了 GAN 在應(yīng)用過程中存在的一些難題,并提出了最新的解決方法。
使用 GAN 的缺陷
眾所周知,GAN 是由 Generator 生成網(wǎng)絡(luò)和 Discriminator 判別網(wǎng)絡(luò)組成的。
1. Modecollapse(模型奔潰)
注:Mode collapse 是指 GAN 生成的樣本單一,其認(rèn)為滿足某一分布的結(jié)果為 true,其他為 False,導(dǎo)致以上結(jié)果。
自然數(shù)據(jù)分布是非常復(fù)雜,且是多峰值的(multimodal)。也就是說數(shù)據(jù)分布有很多的峰值(peak)或眾數(shù)(mode)。每個 mode 都表示相似數(shù)據(jù)樣本的聚集,但與其他 mode 是不同的。
在 modecollapse 過程中,生成網(wǎng)絡(luò) G 會生成屬于有限集 mode 的樣本。當(dāng) G 認(rèn)為可以在單個 mode 上欺騙判別網(wǎng)絡(luò) D 時,G 就會生成該 mode 外的樣本。
上圖表示 GAN 的輸出沒有 mode collapse. 下圖則出現(xiàn)了 mode collapse。
判別網(wǎng)絡(luò)最后會判別來自該 mode 的樣本是假的。最后,生成網(wǎng)絡(luò) G 會簡單地鎖定到另一個 mode。該循環(huán)會無限進(jìn)行,就會限制生成樣本的多樣性。
2. Convergence(收斂)
GAN 訓(xùn)練過程中遇到的一個問題是什么時候停止訓(xùn)練?因為判別網(wǎng)絡(luò) D 損失降級會改善生成網(wǎng)絡(luò) G 的損失(反之亦然),因此無法根據(jù)損失函數(shù)的值來判斷收斂,如下圖所示:
典型的GAN損失函數(shù)圖。注意該如何從這個圖中解釋收斂性。
3. Quality(質(zhì)量)
與前面提到的收斂問題一樣,很難量化地判斷生成網(wǎng)絡(luò) G 什么時候會生成高質(zhì)量的樣本。另外,在損失函數(shù)中加入感知正則化則在一定程度上可緩解該問題。
4. Metrics(度量)
GAN 的目標(biāo)函數(shù)解釋了生成網(wǎng)絡(luò) G 或 判別網(wǎng)絡(luò) D 如何根據(jù)組件來執(zhí)行,但它卻不表示輸出的質(zhì)量和多樣性。因此,需要許多不同的度量指標(biāo)來進(jìn)行衡量。
改善性能的技術(shù)
下面總結(jié)了一些可以使 GAN 更加穩(wěn)定使用的技術(shù)。
1. Alternative Loss Functions (替代損失函數(shù))
修復(fù) GAN 缺陷的最流行的補(bǔ)丁是 Wasserstein GAN (https://arxiv.org/pdf/1701.07875.pdf)。該 GAN 用 Earth Mover distance( Wasserstein-1 distance 或 EM distance) 來替換傳統(tǒng) GAN 的 Jensen Shannon divergence ( J-S 散度)。EM 距離的原始形式很難理解,因此使用了雙重形式。這需要判別網(wǎng)絡(luò)是 1-Lipschitz,通過修改判別網(wǎng)絡(luò)的權(quán)重來維護(hù)。
使用 Earth Mover distance 的優(yōu)勢在于即使真實的生成數(shù)據(jù)分布是不相交的,它也是連續(xù)的。同時,在生成的圖像質(zhì)量和損失值之間存在一定關(guān)系。使用 Earth Mover distance 的劣勢在于對于每個生成模型 G 都要執(zhí)行許多判別網(wǎng)絡(luò) D 的更新。而且,研究人員認(rèn)為權(quán)重修改是確保 1-Lipschitz 限制的極端方式。
左圖中 earth mover distance 是連續(xù)的, 即便其分布并不連續(xù), 這不同于優(yōu)圖中的 the Jensen Shannon divergence。
另一個解決方案是使用均方損失( mean squared loss )替代對數(shù)損失( log loss )。LSGAN (https://arxiv.org/abs/1611.04076)的作者認(rèn)為傳統(tǒng) GAN 損失函數(shù)并不會使收集的數(shù)據(jù)分布接近于真實數(shù)據(jù)分布。
原來 GAN 損失函數(shù)中的對數(shù)損失并不影響生成數(shù)據(jù)與決策邊界(decision boundary)的距離。另一方面,LSGAN 也會對距離決策邊界較遠(yuǎn)的樣本進(jìn)行懲罰,使生成的數(shù)據(jù)分布與真實數(shù)據(jù)分布更加靠近,這是通過將均方損失替換為對數(shù)損失來完成的。
2. Two Timescale Update Rule(TTUR)
在 TTUR 方法中,研究人員對判別網(wǎng)絡(luò) D 和生成網(wǎng)絡(luò) G 使用不同的學(xué)習(xí)速度。低速更新規(guī)則用于生成網(wǎng)絡(luò) G ,判別網(wǎng)絡(luò) D使用 高速更新規(guī)則。使用 TTUR 方法,研究人員可以讓生成網(wǎng)絡(luò) G 和判別網(wǎng)絡(luò) D 以 1:1 的速度更新。 SAGAN (https://arxiv.org/abs/1805.08318) 就使用了 TTUR 方法。
3. GradientPenalty (梯度懲罰)
論文Improved Training of WGANs(https://arxiv.org/abs/1704.00028)中,作者稱權(quán)重修改會導(dǎo)致優(yōu)化問題。權(quán)重修改會迫使神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)學(xué)習(xí)更簡單的相似(simpler approximations)達(dá)到最優(yōu)數(shù)據(jù)分布,導(dǎo)致結(jié)果質(zhì)量不高。同時如果 WGAN 超參數(shù)設(shè)置不合理,權(quán)重修改可能會出現(xiàn)梯度消失或梯度爆炸的問題,論文作者在損失函數(shù)中加入了一個簡單的梯度懲罰機(jī)制以緩解該問題。
加入 GradientPenalty 作為正則化器
DRAGAN (https://arxiv.org/abs/1705.07215)的作者稱,當(dāng) GAN 的博弈達(dá)到一個局部平衡態(tài)(local equilibrium state),就會出現(xiàn) mode collapse 的問題。而且判別網(wǎng)絡(luò) D 在這種狀態(tài)下產(chǎn)生的梯度是非常陡(sharp)的。一般來說,使用梯度懲罰機(jī)制可以幫助避免這種狀態(tài)的產(chǎn)生,極大增強(qiáng) GAN 的穩(wěn)定性,盡可能減少 mode collapse 問題的產(chǎn)生。
4. Spectral Normalization(譜歸一化)
Spectral normalization 是用在判別網(wǎng)絡(luò) D 來增強(qiáng)訓(xùn)練過程的權(quán)重正態(tài)化技術(shù) (weight normalization technique),可以確保判別網(wǎng)絡(luò) D 是 K-Lipschitz 連續(xù)的。SAGAN(https://arxiv.org/abs/1805.08318)這樣的實現(xiàn)也在判別網(wǎng)絡(luò) D 上使用了譜正則化。而且該方法在計算上要比梯度懲罰方法更加高效。
5. Unrolling andPacking (展開和打包)
文章 Mode collapse in GANs(http://aiden.nibali.org/blog/2017-01-18-mode-collapse-gans/)中提到一種預(yù)防 mode hopping 的方法就是在更新參數(shù)時進(jìn)行預(yù)期對抗(anticipate counterplay)。展開的 GAN ( Unrolled GANs )可以使用生成網(wǎng)絡(luò) G 欺騙判別網(wǎng)絡(luò) D,然后判別網(wǎng)絡(luò) D 就有機(jī)會進(jìn)行響應(yīng)。
另一種預(yù)防 mode collapse 的方式就是把多個屬于同一類的樣本進(jìn)行打包,然后傳遞給判別網(wǎng)絡(luò) D 。PacGAN (https://arxiv.org/abs/1712.04086)就融入了該方法,并證明可以減少 mode collapse 的發(fā)生。
6. 多個 GAN
一個 GAN 可能不足以有效地處理任務(wù),因此研究人員提出使用多個連續(xù)的 GAN ,每個 GAN 解決任務(wù)中的一些簡單問題。比如,F(xiàn)ashionGAN(https://www.cs.toronto.edu/~urtasun/publications/zhu_etal_iccv17.pdf)就使用 2 個 GAN 來執(zhí)行圖像定位翻譯。
FashionGAN 使用兩個 GANs 進(jìn)行圖像定位翻譯。
因此,可以讓 GAN 慢慢地解決更難的問題。比如 Progressive GANs (ProGANs,https://arxiv.org/abs/1710.10196) 就可以生成分辨率極高的高質(zhì)量圖像。
7. Relativistic GANs(相對生成對抗網(wǎng)絡(luò))
傳統(tǒng)的 GAN 會測量生成數(shù)據(jù)為真的可能性。Relativistic GANs 則會測量生成數(shù)據(jù)“逼真”的可能性。研究人員可以使用相對距離測量方法(appropriate distance measure)來測量相對真實性(relative realism),相關(guān)論文鏈接:https://arxiv.org/abs/1807.00734。
圖 A 表示 JS 散度的最優(yōu)解,圖 B 表示使用標(biāo)準(zhǔn) GAN 損失時判別網(wǎng)絡(luò) D 的輸出,圖 C 表示輸出曲線的實際圖。
在論文中,作者提到判別網(wǎng)絡(luò) D 達(dá)到最優(yōu)狀態(tài)時,D 的輸出應(yīng)該聚集到 0.5。但傳統(tǒng)的 GAN 訓(xùn)練算法會讓判別網(wǎng)絡(luò) D 對圖像輸出“真實”(real,1)的可能性,這會限制判別網(wǎng)絡(luò) D 達(dá)到最優(yōu)性能。不過這種方法可以很好地解決這個問題,并得到不錯的結(jié)果。
經(jīng)過 5000 次迭代后,標(biāo)準(zhǔn) GAN (左)和相對 GAN (右)的輸出。
8. Self Attention Mechanism(自注意力機(jī)制)
Self Attention GANs(https://arxiv.org/abs/1805.08318)作者稱用于生成圖像的卷積會關(guān)注本地傳播的信息。也就是說,由于限制性接收域這會錯過廣泛傳播關(guān)系。
將 attention map (在黃色框中計算)添加到標(biāo)準(zhǔn)卷積操作中。
Self-Attention Generative Adversarial Network 允許圖像生成任務(wù)中使用注意力驅(qū)動的、長距依賴的模型。自注意力機(jī)制是對正常卷積操作的補(bǔ)充,全局信息(長距依賴)會用于生成更高質(zhì)量的圖像,而用來忽略注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)會考慮注意力機(jī)制和正常的卷積。(相關(guān)論文鏈接:https://arxiv.org/pdf/1805.08318.pdf)。
使用紅點(diǎn)標(biāo)記的可視化 attention map。
9. 其他技術(shù)
其他可以用來改善 GAN 訓(xùn)練過程的技術(shù)包括:
特征匹配
Mini Batch Discrimination(小批量判別)
歷史平均值
One-sided Label Smoothing(單側(cè)標(biāo)簽平滑)
Virtual Batch Normalization(虛擬批量正態(tài)化)
-
GaN
+關(guān)注
關(guān)注
19文章
1943瀏覽量
73585 -
Model
+關(guān)注
關(guān)注
0文章
340瀏覽量
25083
原文標(biāo)題:GAN性能不穩(wěn)?這九大技術(shù)可“鎮(zhèn)住”四類缺陷
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論