翻譯博客:GAN?—?Why it is so hard to train Generative Adversarial Networks!
通常情況下,識(shí)別莫奈的繪畫要比模仿莫奈的繪畫更容易。在GAN中也是同樣的道理,生成模型(創(chuàng)造數(shù)據(jù))要比判別模型(處理數(shù)據(jù))難很多。通過研究,我們了解了在訓(xùn)練GAN過程中遇到的一些基本問題。我們將研究一些分歧,以便指明我們的研究方向。在研究這些問題之前,我們回顧一下GAN方程式。
GAN
GAN采用標(biāo)準(zhǔn)或均勻分布來提供噪聲,并利用深度網(wǎng)絡(luò)生成模型
來創(chuàng)建圖像
。

在GAN中,我們增加了判別器來區(qū)分判別器的輸入是來自于真實(shí)數(shù)據(jù)還是生成的數(shù)據(jù)。輸出值來估計(jì)是真的概率。

目標(biāo)函數(shù)與梯度
GAN定義了通過極小極大化游戲,其目標(biāo)函數(shù)為:

以下圖標(biāo)總結(jié)了我們?nèi)绾问褂孟鄳?yīng)的梯度來訓(xùn)練判別器和生成器

GAN問題
許多GAN模型面臨以下幾個(gè)主要問題:
1.不收斂:模型參數(shù)震蕩,動(dòng)搖,不收斂。
2.模式崩潰:有限的樣本導(dǎo)致生成器崩潰。
3.梯度弱化:判別器太成功了,生成器梯度消失,什么也沒學(xué)到。
生成器和辨別器不平衡導(dǎo)致過擬合,高度敏感的超參選擇。
模型
真實(shí)數(shù)據(jù)分布具有多模態(tài)性。例如,MNIST有10個(gè)模型從數(shù)字‘0’到數(shù)字‘9’。以下樣本由兩個(gè)不同的GAN產(chǎn)生。上面一行生成了10個(gè)模型而下面一行只創(chuàng)建了一個(gè)模型(數(shù)字‘6’)。該問題屬于模式崩潰當(dāng)只有少量的模型數(shù)據(jù)被生成。

納什均衡
GAN是基于零和非合作游戲The zero-sum non-cooperative game。如果一方贏則另一方輸。零和游戲也叫極小極大化游戲。你的對手想要最大化它的行為,但是你的行為是將他們最小化。在博弈過程中,當(dāng)判別模型和生成模型達(dá)到了納什均衡時(shí)GAN模型收斂。這也是下面公式的最優(yōu)解:

因?yàn)殡p方都想破壞對方,所以當(dāng)一方無論對手可能做什么都不會(huì)改變其動(dòng)作時(shí),就會(huì)發(fā)生納什均衡??紤]兩個(gè)對手A和B,分別控制和
值。A想最大化值
而B想最小化它。

則納什均衡為。這也是唯一狀態(tài)你的對手的任何行為都無關(guān)緊要了。對手的任何狀態(tài)都不會(huì)改變游戲的結(jié)果。
那么是否可以通過梯度下降方法找到納什均衡呢?我們更新參數(shù)和
基于值函數(shù)的梯度。

其中是學(xué)習(xí)率。當(dāng)將
,
和
的訓(xùn)練過程圖示出來,我們意識(shí)到我們的解永遠(yuǎn)不會(huì)收斂。

如果我們增加學(xué)習(xí)率或者訓(xùn)練模型的長度,我們發(fā)現(xiàn)參數(shù)和
非常不穩(wěn)定。

我們的例子充分展示了一些代價(jià)函數(shù)不會(huì)因?yàn)樘荻认陆祵?dǎo)致收斂,特別是對于非凸函數(shù)。我們可以直觀地看待這個(gè)問題:你的對手總是對你的行為采取對策,這使得模型更難以收斂。
基于KL-Divergence的生成模型
為了理解GAN中的收斂問題,我們將研究KL-divergence和JS-divergence。在提出GAN之前,很多生成模型創(chuàng)建模型來最大化最大似然估計(jì)MLE。例如,找到最好的模型參數(shù)適合大部分的訓(xùn)練數(shù)據(jù)。

這與最小化KL-divergence相同,其測量概率分布(估計(jì)分布)如何偏離預(yù)期概率分布
(實(shí)際分布)。

KL-divergence是非對稱的

對于區(qū)域,
下降到0。例如,在下面的圖右中,紅色的曲線對應(yīng)
。當(dāng)
其中
接近0時(shí),紅色曲線下降到0。

這有什么含義?當(dāng)它失去圖像中的一些模型時(shí),KL-divergence可以懲罰生成器:當(dāng)
但是
時(shí),懲罰率高。但是,它會(huì)接受一些看起來非真實(shí)的圖像。當(dāng)
但是
時(shí),懲罰率低。(更好的質(zhì)量但是更少的樣本)。
一些生成模型采用MLE來生成模型。最初認(rèn)為KL-divergence導(dǎo)致交叉的圖像質(zhì)量(模糊圖像)。但要注意的是,一些經(jīng)驗(yàn)實(shí)驗(yàn)可能會(huì)對這一說法提出異議。
JS-Divergence
JS-divergence的定義如下:


JS-divergence是對稱的。與KL-divergence不同,它將懲罰不良的圖片(當(dāng)且
)。在GAN中,如果判別器是最優(yōu)的(在區(qū)分圖片時(shí)具有良好的性能),生成模型的目標(biāo)函數(shù)變?yōu)椋?/p>

因此,優(yōu)化生成模型被視為對JS-divergence進(jìn)行優(yōu)化。在實(shí)驗(yàn)中,與使用KL-divergence的其它生成模型相比,GAN能夠產(chǎn)生更好的圖像。因此,早期研究者設(shè)想優(yōu)化JS-divergence而不是KL-divergence來創(chuàng)建質(zhì)量高的但是缺乏多樣性的圖像。但是,一些研究者已經(jīng)質(zhì)疑了這類說法,因?yàn)槭褂肕LE的GAN實(shí)驗(yàn)產(chǎn)生的圖像質(zhì)量相似但仍然存在圖像多樣性問題。但是,在正對GAN訓(xùn)練中JS-divergence所面臨的缺陷方面,已經(jīng)做了許多努力。無論辯論如何,這些成功都非常重要。因此,接下來我們將深入探討JS-divergence的問題。
JS-Divergence中的梯度消失
當(dāng)判別器最優(yōu)時(shí),生成模型的目標(biāo)函數(shù)為:

當(dāng)生成的圖像的數(shù)據(jù)分布與真實(shí)圖像的數(shù)據(jù)分布
不匹配時(shí),JS-divergence梯度會(huì)發(fā)生什么?考慮一個(gè)例子,
和
服從高斯分布,且
的均值為0。.考慮不同均值下的
來研究
的梯度。

這里,我們給出了和
之間的JS-divergence
,其中
的均值在0到30之間。如下圖所示,JS-divergence的梯度消失了從
到
。當(dāng)這些區(qū)域的代價(jià)飽和時(shí),GAN的生成器的學(xué)習(xí)會(huì)極其緩慢。特別是在早期訓(xùn)練中,
和
是非常不同的,并且生成器學(xué)習(xí)的非常慢。

不穩(wěn)定的梯度
由于梯度消失,原始GAN論文提出了另一種代價(jià)函數(shù)來解決梯度消失問題。

根據(jù)Arjovsky的另一篇論文,相應(yīng)的梯度為:

它包括了一個(gè)反向KL-divergence項(xiàng),Arjovsky使用它來解釋為什么GAN與基于KL-divergence的生產(chǎn)模型相比具有更高的質(zhì)量但多樣性少的圖像。但同樣的分析聲稱梯度波動(dòng)并導(dǎo)致模型不穩(wěn)定。為了說明這一點(diǎn),Arjovsky凍結(jié)生產(chǎn)器并持續(xù)訓(xùn)練判別器。隨著更大的變體,生成器的梯度開始增加。

上面的實(shí)驗(yàn)不是我們?nèi)绾斡?xùn)練GAN。然而,在數(shù)學(xué)上,Arjovsky顯示第一個(gè)GAN生成器的目標(biāo)函數(shù)具有消失的梯度,而替代代價(jià)函數(shù)具有波動(dòng)的梯度,導(dǎo)致模型的不穩(wěn)定性。自最初的GAN以來,尋找新的代價(jià)函數(shù),如LSGAN,WGAN,WGAN-GP,BEGAN等。有些方法基于新的數(shù)學(xué)模型,其他方法基于直覺通過實(shí)驗(yàn)備份。目標(biāo)是找到具有更平滑和非消失梯度的代價(jià)函數(shù)。
然而,2017年谷歌大腦論文“GAN創(chuàng)建平等?”聲稱:最終,我們沒有發(fā)現(xiàn)任何經(jīng)過測試的算法始終由于原始算法的證據(jù)。
如果任何新提出的代價(jià)函數(shù)在提高圖像質(zhì)量方面取得了巨大成功,我們就不會(huì)有這種爭論。關(guān)于Arjovsky數(shù)學(xué)模型中原始代價(jià)函數(shù)的的世界末日圖片也沒有完全實(shí)現(xiàn)。但我會(huì)謹(jǐn)慎地提醒讀者過早的斷言代價(jià)函數(shù)并不重要。我認(rèn)為訓(xùn)練GAN容易失敗,不應(yīng)該在一開始時(shí)嘗試許多成本函數(shù),而是應(yīng)該在隨機(jī)嘗試代價(jià)函數(shù)之前調(diào)試設(shè)計(jì)和代碼。接下來嘗試調(diào)整超參數(shù),因?yàn)镚AN模型對它們很敏感。
為什么GAN中模式會(huì)崩潰?
模式崩潰是GAN中最難解決的問題之一。徹底崩潰不常見,但經(jīng)常發(fā)生部分崩潰。下面帶有相同下劃線顏色的圖像看起來相似,模式開始崩潰。

讓我們來觀察它會(huì)發(fā)生什么。GAN生成器的目標(biāo)是創(chuàng)建可以最大程度地欺騙判別器D的圖像。

但是我們來考慮一個(gè)極端情況,其中G被廣泛訓(xùn)練而沒有對D進(jìn)行更新。生成的圖像將會(huì)收斂找到最佳的圖像,該圖像能夠糊弄D,從判別器角度看是最逼真的圖像。在這個(gè)極端情況下,
將獨(dú)立于
。

模式崩潰為單點(diǎn)。與相關(guān)的梯度接近0。

當(dāng)我們在判別器中重新開始訓(xùn)練時(shí),檢測生成圖像的最有效方法是檢測這種單一模型。由于生成器已經(jīng)對的影響不敏感,因此來自判別器的梯度可能會(huì)將單點(diǎn)推到下一個(gè)最脆弱的模式。生成器在訓(xùn)練中產(chǎn)生這種不平衡的模式,這會(huì)降低其檢測其它模型的能力?,F(xiàn)在,兩個(gè)網(wǎng)絡(luò)都過于適應(yīng)利用短期對手的弱點(diǎn)。這變成了貓捉老鼠游戲,模型不會(huì)收斂。
在下圖中,Unroll GAN設(shè)法生成所有8種預(yù)期的數(shù)據(jù)模式。第二行顯示另一個(gè)GAN,當(dāng)判別器趕上時(shí),模式崩潰并旋轉(zhuǎn)到另一個(gè)模式。

在訓(xùn)練期間,不斷更新判別器以檢測對手。因此,生成器不太可能過度擬合。在實(shí)踐中,我們對模式崩潰的理解仍然有限。我們上面的直觀解釋可能過于簡單了。通過經(jīng)驗(yàn)實(shí)驗(yàn)開發(fā)并驗(yàn)證了緩解方法。然而,GAN訓(xùn)練仍然是一個(gè)啟發(fā)式過程。部分崩潰仍然很常見。
但是模式崩潰并不都是壞消息。在使用GAN的樣式遷移中,我們很樂意將一個(gè)圖像轉(zhuǎn)換為一個(gè)好的圖像,而不是找到所有變體。實(shí)際上,局部模式崩潰的專業(yè)性有時(shí)會(huì)產(chǎn)生更高質(zhì)量的圖像。
超參和訓(xùn)練
如果沒有合適的超參,沒有代價(jià)函數(shù)可以工作,調(diào)整它們需要時(shí)間和耐心。新的成本函數(shù)可能會(huì)引入具有敏感性能的超餐數(shù)。
平衡判別器和生成器
不收斂以及模式崩潰經(jīng)常被解釋為判別器和生成器不平衡。顯而易見的解決方案是平衡它們的訓(xùn)練避免過擬合。然而,很少取得進(jìn)展,但并非因?yàn)槿狈L試。一些研究人員認(rèn)為,這不是一個(gè)可行或理想的目標(biāo),因?yàn)榱己玫呐袆e器可以提供良好的反饋。因此,一些注意力轉(zhuǎn)移到具有非消失梯度的成本函數(shù)。
代價(jià)VS圖像質(zhì)量
在判別模型中,損失函數(shù)測量預(yù)測的準(zhǔn)確性,我們使用它來監(jiān)控訓(xùn)練的進(jìn)度。但是,GAN的損失函數(shù)測量我們比對手相比的表現(xiàn)。通常情況下,生成器代價(jià)會(huì)增加,但圖像質(zhì)量實(shí)際上正在提高。我們回過頭來手動(dòng)檢查生成的圖像以驗(yàn)證進(jìn)度。這使得模型比較更加困難,從而導(dǎo)致難以在一次運(yùn)行中選擇最佳模型。這也使調(diào)優(yōu)過程變得復(fù)雜。