生成對抗網(wǎng)絡(luò)GAN很強(qiáng)大,但也有很多造成GAN難以使用的缺陷。本文介紹了可以克服GAN訓(xùn)練缺點(diǎn)的一些解決方案,有助于提高GAN性能。
生成對抗網(wǎng)絡(luò) (GAN) 是一類功能強(qiáng)大的神經(jīng)網(wǎng)絡(luò),具有廣泛的應(yīng)用前景。GAN 本質(zhì)上是由兩個神經(jīng)網(wǎng)絡(luò)組成的系統(tǒng)——生成器 (Generator)和鑒別器 (Discriminator)——二者相互競爭。
GAN 的原理示意圖
給定一組目標(biāo)樣本,生成器試圖生成能夠欺騙鑒別器的樣本,使鑒別器認(rèn)為這些樣本是真實(shí)的。鑒別器試圖從假的 (生成的) 樣本中分辨出真實(shí)的 (目標(biāo)) 樣本。使用這種迭代訓(xùn)練方法,我們最終能得到一個非常擅長生成足以以假亂真的樣本的生成器。
GAN 有很多應(yīng)用,因?yàn)樗鼈兛梢詫W(xué)習(xí)模仿幾乎所有類型的數(shù)據(jù)分布。通常,GAN 用于移除圖像偽影、超分辨率、姿勢轉(zhuǎn)換,以及任何類型的圖像翻譯,例如下面這些:
使用 GAN 進(jìn)行圖像翻譯 (Source:https://phillipi.github.io/pix2pix/)
然而,由于其無常的穩(wěn)定性,GAN 非常難以使用。不用說,許多研究人員已經(jīng)提出了很好的解決方案來減輕 GAN 訓(xùn)練中涉及的一些問題。
然而,這一領(lǐng)域的研究進(jìn)展如此之快,以至于很難跟蹤所有有趣的想法。本文列出了一些常用的使 GAN 訓(xùn)練穩(wěn)定的技術(shù)。
使用 GAN 的缺點(diǎn)
GAN 難以使用的原因有很多,這里列出一些主要的原因。
1、模式坍塌 (Modecollapse)
自然數(shù)據(jù)分布是高度復(fù)雜且多模態(tài)的。也就是說,數(shù)據(jù)分布有很多“峰值”(peaks)或“模式”(modes)。每個 mode 表示相似數(shù)據(jù)樣本的集中度,但與其他 mode 不同。
在 mode collapse 期間,生成器生成屬于一組有限模式集的樣本。當(dāng)生成器認(rèn)為它可以通過鎖定單個模式來欺騙鑒別器時(shí),就會發(fā)生這種情況。也就是說,生成器僅從這種模式來生成樣本。
頂部的圖像表示沒有發(fā)生 mode collapse 的 GAN 的輸出。底部的圖像表示發(fā)生了 mode collapse 的 GAN 的輸出
(Source: https://arxiv.org/pdf/1611.02163.pdf)
鑒別器最終會發(fā)現(xiàn)這種模式下的樣本是假的。但生成器僅僅是鎖定到另一種模式。這個循環(huán)無限重復(fù),從根本上限制了生成樣本的多樣性。
2、收斂 (Convergence)
GAN 訓(xùn)練中一個常見的問題是 “我們應(yīng)該在什么時(shí)候停止訓(xùn)練?”。由于鑒別器損失降低時(shí),生成器損失增加 (反之亦然),我們不能根據(jù)損失函數(shù)的值來判斷收斂性。如下圖所示:
一個典型的 GAN 損失函數(shù)
3. 質(zhì)量
與前一個問題一樣,很難定量地判斷生成器何時(shí)產(chǎn)生高質(zhì)量的樣品。在損失函數(shù)中加入額外的感知正則化可以在一定程度上緩解這種情況。
4. 度量標(biāo)準(zhǔn) (Metrics)
GAN 目標(biāo)函數(shù)可以解釋生成器或鑒別器相對于其他方法的性能表現(xiàn)。然而,它并不代表輸出的質(zhì)量或多樣性。因此,我們需要不同的度量標(biāo)準(zhǔn)。
8大技巧提高GAN性能
有很多技巧可以用來使 GAN 更加穩(wěn)定或更加強(qiáng)大。這里只解釋了相對較新的或較復(fù)雜的一些技術(shù)。
1、替代損失函數(shù) (Alternative Loss Functions)
針對 GAN 的缺陷,最常用的一種修復(fù)方法是Wasserstein GAN。它本質(zhì)上用Earth Mover distance(Wasserstein-1 distance 或 EM distance) 來替代傳統(tǒng) GAN 的Jensen Shannon 散度。EM 距離的原始形式是難以處理的,因此我們使用它的 dual 形式。這要求鑒別器為 1-Lipschitz,它是通過削減鑒別器的權(quán)重來維持的。
使用 Earth Mover distance 的優(yōu)點(diǎn)是,即使真實(shí)的數(shù)據(jù)和生成的數(shù)據(jù)分布不相交,它也是連續(xù)的,這與 JS 散度或 KL 散度不同。同時(shí),生成的圖像質(zhì)量與損失值之間存在相關(guān)性。缺點(diǎn)是,我們需要對每個生成器更新執(zhí)行多個鑒別器更新。此外,作者認(rèn)為,利用權(quán)重削減來確保 1-Lipschitz 約束是一種糟糕的方法。
即使分布不連續(xù),earth mover distance(左)也是連續(xù)的,與 JS 散度 (右) 不同
另一個解決方案是使用均方損失 (mean squared loss)來替代對數(shù)損失。LSGAN 的作者認(rèn)為,傳統(tǒng)的 GAN 損失函數(shù)并沒有提供太多的激勵來將生成的數(shù)據(jù)分布 “拉” 到接近真實(shí)數(shù)據(jù)分布的位置。
原始 GAN 損失函數(shù)中的 log loss 并不關(guān)心生成的數(shù)據(jù)與決策邊界的距離 (決策邊界將真實(shí)數(shù)據(jù)和虛假數(shù)據(jù)分開)。另一方面,LSGAN 對遠(yuǎn)離決策邊界的生產(chǎn)樣本實(shí)施乘法,本質(zhì)上是將生成的數(shù)據(jù)分布 “拉” 得更接近真實(shí)的數(shù)據(jù)分布。LSGAN 用均方損失代替對數(shù)損失來實(shí)現(xiàn)這一點(diǎn)。
2、Two Timescale Update Rule(TTUR)
在這種方法中,我們對鑒別器和生成器使用不同的學(xué)習(xí)率。通常,生成器使用較慢的更新規(guī)則 (update rule),鑒別器使用較快的更新規(guī)則。使用這種方法,我們可以以 1:1 的比例執(zhí)行生成器和識別器的更新,只需要修改學(xué)習(xí)率。SAGAN 實(shí)現(xiàn)正是使用了這種方法。
3、梯度懲罰 (GradientPenalty)
在 Improved Training of WGANs 這篇論文中,作者聲稱weight clipping會導(dǎo)致優(yōu)化問題。
作者表示, weight clipping 迫使神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)最優(yōu)數(shù)據(jù)分布的 “更簡單的近似”,從而導(dǎo)致較低質(zhì)量的結(jié)果。他們還聲稱,如果沒有正確設(shè)置 WGAN 超參數(shù),那么 weight clipping 會導(dǎo)致梯度爆炸或梯度消失問題。
作者在損失函數(shù)中引入了一個簡單的gradient penalty,從而緩解了上述問題。此外,與最初的 WGAN 實(shí)現(xiàn)一樣,保留了 1-Lipschitz 連續(xù)性。
與 WGAN-GP 原始論文一樣,添加了 gradient penalty 作為一個正則化器
DRAGAN的作者聲稱,當(dāng) GAN 所玩的游戲達(dá)到 “局部平衡狀態(tài)” 時(shí),就會發(fā)生 mode collapse。他們還聲稱,鑒別器圍繞這些狀態(tài)產(chǎn)生的梯度是“尖銳的”。當(dāng)然,使用 gradient penalty 可以幫助我們避開這些狀態(tài),大大增強(qiáng)穩(wěn)定性,減少模式崩潰。
4、譜歸一化 (Spectral Normalization)
Spectral Normalization 是一種權(quán)重歸一化技術(shù),通常用于鑒別器上,以增強(qiáng)訓(xùn)練過程。這本質(zhì)上保證了鑒別器是K-Lipschitz連續(xù)的。
像 SAGAN 這樣的一些實(shí)現(xiàn),也在生成器上使用 spectral Normalization。該方法比梯度懲罰法計(jì)算效率更高。
5、Unrolling 和Packing
防止 mode hopping 的一種方法是預(yù)測未來,并在更新參數(shù)時(shí)預(yù)測對手。Unrolled GAN 使生成器能夠在鑒別器有機(jī)會響應(yīng)之后欺騙鑒別器。
防止 mode collapse 的另一種方法是在將屬于同一類的多個樣本傳遞給鑒別器之前 “打包” 它們,即packing。這種方法被 PacGAN 采用,在 PacGAN 論文中,作者報(bào)告了 mode collapse 有適當(dāng)減少。
6、堆疊 GAN
單個 GAN 可能不足以有效地處理任務(wù)。我們可以使用多個連續(xù)堆疊的 GAN,其中每個 GAN 可以解決問題中更簡單的一部分。例如,F(xiàn)ashionGAN 使用兩個 GAN 來執(zhí)行局部圖像翻譯。
FashionGAN 使用兩個 GAN 進(jìn)行局部圖像翻譯
把這個概念發(fā)揮到極致,我們可以逐漸加大 GAN 所解決的問題的難度。例如,Progressive GAN (ProGAN)可以生成高質(zhì)量的高分辨率圖像。
7、Relativistic GAN
傳統(tǒng)的 GAN 測量生成的數(shù)據(jù)是真實(shí)數(shù)據(jù)的概率。 Relativistic GAN 測量生成的數(shù)據(jù)比真實(shí)數(shù)據(jù) “更真實(shí)” 的概率。正如 RGAN 論文中提到的,我們可以使用適當(dāng)?shù)木嚯x度量來度量這種“相對真實(shí)性”。
使用標(biāo)準(zhǔn) GAN loss 時(shí)鑒別器的輸出 (圖 B)。圖 C 表示輸出曲線的實(shí)際樣子。圖 A 表示 JS 散度的最優(yōu)解。
作者還提到,鑒別器的輸出在達(dá)到最優(yōu)狀態(tài)時(shí)應(yīng)該收斂到 0.5。然而,傳統(tǒng)的 GAN 訓(xùn)練算法強(qiáng)迫鑒別器對任何圖像輸出 “real”(即 1)。這在某種程度上阻止了鑒別器達(dá)到其最優(yōu)值。 relativistic 方法也解決了這個問題,并取得了相當(dāng)顯著的效果,如下圖所示:
經(jīng)過 5000 次迭代后,標(biāo)準(zhǔn) GAN(左) 和 relativistic GAN(右) 的輸出
8、自注意力機(jī)制
Self Attention GANs 的作者表示,用于生成圖像的卷積會查看局部傳播的信息。也就是說,由于它們限制性的 receptive field,它們錯過了全局性的關(guān)系。
將 attention map(在黃色框中計(jì)算) 添加到標(biāo)準(zhǔn)卷積操作中
Self-Attention GAN 允許對圖像生成任務(wù)進(jìn)行注意力驅(qū)動的長期依賴建模。 Self-Attention 機(jī)制是對普通卷積運(yùn)算的補(bǔ)充。全局信息 (遠(yuǎn)程依賴) 有助于生成更高質(zhì)量的圖像。網(wǎng)絡(luò)可以選擇忽略注意機(jī)制,也可以將其與正常卷積一起考慮。
對紅點(diǎn)標(biāo)記的位置的 attention map 的可視化
總結(jié)
研究社區(qū)已經(jīng)提出了許多解決方案和技巧來克服 GAN 訓(xùn)練的缺點(diǎn)。然而,由于新研究的數(shù)量龐大,很難跟蹤所有重要的貢獻(xiàn)。
由于同樣的原因,這篇文章中分享的細(xì)節(jié)并非詳盡無疑,可能在不久的將來就會過時(shí)。盡管如此,還是希望本文能夠成為人們尋找改進(jìn) GAN 性能的方法的一個指南。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100712 -
GaN
+關(guān)注
關(guān)注
19文章
1933瀏覽量
73286
發(fā)布評論請先 登錄
相關(guān)推薦
評論