摘要:測度是高維空間中長度面積體積概念的拓廣,可以理解為超體積。前作其實(shí)已經(jīng)針對第二點(diǎn)提出了一個(gè)解決方案,就是對生成樣本和真實(shí)樣本加噪聲,直觀上說,使得原本的兩個(gè)低維流形彌散到整個(gè)高維空間,強(qiáng)行讓它們產(chǎn)生不可忽略的重疊。
在GAN的相關(guān)研究如火如荼甚至可以說是泛濫的今天,一篇新鮮出爐的arXiv論文《Wasserstein GAN》卻在Reddit的Machine Learning頻道火了,連Goodfellow都在帖子里和大家熱烈討論,這篇論文究竟有什么了不得的地方呢??
要知道自從2014年Ian Goodfellow提出以來,GAN就存在著訓(xùn)練困難、生成器和判別器的loss無法指示訓(xùn)練進(jìn)程、生成樣本缺乏多樣性等問題。從那時(shí)起,很多論文都在嘗試解決,但是效果不盡人意,比如最有名的一個(gè)改進(jìn)DCGAN依靠的是對判別器和生成器的架構(gòu)進(jìn)行實(shí)驗(yàn)枚舉,最終找到一組比較好的網(wǎng)絡(luò)架構(gòu)設(shè)置,但是實(shí)際上是治標(biāo)不治本,沒有徹底解決問題。而今天的主角Wasserstein GAN(下面簡稱WGAN)成功地做到了以下爆炸性的幾點(diǎn):
徹底解決GAN訓(xùn)練不穩(wěn)定的問題,不再需要小心平衡生成器和判別器的訓(xùn)練程度
基本解決了collapse mode的問題,確保了生成樣本的多樣性?
訓(xùn)練過程中終于有一個(gè)像交叉熵、準(zhǔn)確率這樣的數(shù)值來指示訓(xùn)練的進(jìn)程,這個(gè)數(shù)值越小代表GAN訓(xùn)練得越好,代表生成器產(chǎn)生的圖像質(zhì)量越高(如題圖所示)
以上一切好處不需要精心設(shè)計(jì)的網(wǎng)絡(luò)架構(gòu),最簡單的多層全連接網(wǎng)絡(luò)就可以做到
那以上好處來自哪里?這就是令人拍案叫絕的部分了——實(shí)際上作者整整花了兩篇論文,在第一篇《Towards Principled Methods for Training Generative Adversarial Networks》里面推了一堆公式定理,從理論上分析了原始GAN的問題所在,從而針對性地給出了改進(jìn)要點(diǎn);在這第二篇《Wasserstein GAN》里面,又再從這個(gè)改進(jìn)點(diǎn)出發(fā)推了一堆公式定理,最終給出了改進(jìn)的算法實(shí)現(xiàn)流程,而改進(jìn)后相比原始GAN的算法實(shí)現(xiàn)流程卻只改了四點(diǎn):
判別器最后一層去掉sigmoid
生成器和判別器的loss不取log
每次更新判別器的參數(shù)之后把它們的值截?cái)嗟讲怀^一個(gè)固定常數(shù)c
不要用基于動(dòng)量的優(yōu)化算法(包括momentum和Adam),推薦RMSProp,SGD也行
算法截圖如下:
改動(dòng)是如此簡單,效果卻驚人地好,以至于Reddit上不少人在感嘆:就這樣?沒有別的了? 太簡單了吧!這些反應(yīng)讓我想起了一個(gè)頗有年頭的雞湯段子,說是一個(gè)工程師在電機(jī)外殼上用粉筆劃了一條線排除了故障,要價(jià)一萬美元——畫一條線,1美元;知道在哪畫線,9999美元。上面這四點(diǎn)改進(jìn)就是作者M(jìn)artin Arjovsky劃的簡簡單單四條線,對于工程實(shí)現(xiàn)便已足夠,但是知道在哪劃線,背后卻是精巧的數(shù)學(xué)分析,而這也是本文想要整理的內(nèi)容。
本文內(nèi)容分為五個(gè)部分:
原始GAN究竟出了什么問題?(此部分較長)
WGAN之前的一個(gè)過渡解決方案?
Wasserstein距離的優(yōu)越性質(zhì)
從Wasserstein距離到WGAN
總結(jié)
理解原文的很多公式定理需要對測度論、 拓?fù)鋵W(xué)等數(shù)學(xué)知識(shí)有所掌握,本文會(huì)從直觀的角度對每一個(gè)重要公式進(jìn)行解讀,有時(shí)通過一些低維的例子幫助讀者理解數(shù)學(xué)背后的思想,所以不免會(huì)失于嚴(yán)謹(jǐn),如有引喻不當(dāng)之處,歡迎在評論中指出。
以下簡稱《Wassertein GAN》為“WGAN本作”,簡稱《Towards Principled Methods for Training Generative Adversarial Networks》為“WGAN前作”。
WGAN源碼實(shí)現(xiàn):martinarjovsky/WassersteinGAN
第一部分:原始GAN究竟出了什么問題?
第一種原始GAN形式的問題
一句話概括:判別器越好,生成器梯度消失越嚴(yán)重。WGAN前作從兩個(gè)角度進(jìn)行了論證,第一個(gè)角度是從生成器的等價(jià)損失函數(shù)切入的。
首先從公式1可以得到,在生成器G固定參數(shù)時(shí)最優(yōu)的判別器D應(yīng)該是什么。對于一個(gè)具體的樣本,它可能來自真實(shí)分布也可能來自生成分布,它對公式1損失函數(shù)的貢獻(xiàn)是
然而GAN訓(xùn)練有一個(gè)trick,就是別把判別器訓(xùn)練得太好,否則在實(shí)驗(yàn)中生成器會(huì)完全學(xué)不動(dòng)(loss降不下去),為了探究背后的原因,我們就可以看看在極端情況——判別器最優(yōu)時(shí),生成器的損失函數(shù)變成什么。給公式2加上一個(gè)不依賴于生成器的項(xiàng),使之變成
流形(manifold)是高維空間中曲線、曲面概念的拓廣,我們可以在低維上直觀理解這個(gè)概念,比如我們說三維空間中的一個(gè)曲面是一個(gè)二維流形,因?yàn)樗谋举|(zhì)維度(intrinsic dimension)只有2,一個(gè)點(diǎn)在這個(gè)二維流形上移動(dòng)只有兩個(gè)方向的自由度。同理,三維空間或者二維空間中的一條曲線都是一個(gè)一維流形。
測度(measure)是高維空間中長度、面積、體積概念的拓廣,可以理解為“超體積”。
接著作者寫了很多公式定理從第二個(gè)角度進(jìn)行論證,但是背后的思想也可以直觀地解釋:
有了這些理論分析,原始GAN不穩(wěn)定的原因就徹底清楚了:判別器訓(xùn)練得太好,生成器梯度消失,生成器loss降不下去;判別器訓(xùn)練得不好,生成器梯度不準(zhǔn),四處亂跑。只有判別器訓(xùn)練得不好不壞才行,但是這個(gè)火候又很難把握,甚至在同一輪訓(xùn)練的前后不同階段這個(gè)火候都可能不一樣,所以GAN才那么難訓(xùn)練。
實(shí)驗(yàn)輔證如下:
WGAN前作Figure 2。先分別將DCGAN訓(xùn)練1,20,25個(gè)epoch,然后固定生成器不動(dòng),判別器重新隨機(jī)初始化從頭開始訓(xùn)練,對于第一種形式的生成器loss產(chǎn)生的梯度可以打印出其尺度的變化曲線,可以看到隨著判別器的訓(xùn)練,生成器的梯度均迅速衰減。注意y軸是對數(shù)坐標(biāo)軸。
第二種原始GAN形式的問題
一句話概括:最小化第二種生成器loss函數(shù),會(huì)等價(jià)于最小化一個(gè)不合理的距離衡量,導(dǎo)致兩個(gè)問題,一是梯度不穩(wěn)定,二是collapse mode即多樣性不足。WGAN前作又是從兩個(gè)角度進(jìn)行了論證,下面只說第一個(gè)角度,因?yàn)閷τ诘诙€(gè)角度我難以找到一個(gè)直觀的解釋方式,感興趣的讀者還是去看論文吧(逃)。
第一部分小結(jié):在原始GAN的(近似)最優(yōu)判別器下,第一種生成器loss面臨梯度消失問題,第二種生成器loss面臨優(yōu)化目標(biāo)荒謬、梯度不穩(wěn)定、對多樣性與準(zhǔn)確性懲罰不平衡導(dǎo)致mode collapse這幾個(gè)問題。
實(shí)驗(yàn)輔證如下:
WGAN前作Figure 3。先分別將DCGAN訓(xùn)練1,20,25個(gè)epoch,然后固定生成器不動(dòng),判別器重新隨機(jī)初始化從頭開始訓(xùn)練,對于第二種形式的生成器loss產(chǎn)生的梯度可以打印出其尺度的變化曲線,可以看到隨著判別器的訓(xùn)練,藍(lán)色和綠色曲線中生成器的梯度迅速增長,說明梯度不穩(wěn)定,紅線對應(yīng)的是DCGAN相對收斂的狀態(tài),梯度才比較穩(wěn)定。
第二部分:WGAN之前的一個(gè)過渡解決方案?
原始GAN問題的根源可以歸結(jié)為兩點(diǎn),一是等價(jià)優(yōu)化的距離衡量(KL散度、JS散度)不合理,二是生成器隨機(jī)初始化后的生成分布很難與真實(shí)分布有不可忽略的重疊。
WGAN前作其實(shí)已經(jīng)針對第二點(diǎn)提出了一個(gè)解決方案,就是對生成樣本和真實(shí)樣本加噪聲,直觀上說,使得原本的兩個(gè)低維流形“彌散”到整個(gè)高維空間,強(qiáng)行讓它們產(chǎn)生不可忽略的重疊。而一旦存在重疊,JS散度就能真正發(fā)揮作用,此時(shí)如果兩個(gè)分布越靠近,它們“彌散”出來的部分重疊得越多,JS散度也會(huì)越小而不會(huì)一直是一個(gè)常數(shù),于是(在第一種原始GAN形式下)梯度消失的問題就解決了。在訓(xùn)練過程中,我們可以對所加的噪聲進(jìn)行退火(annealing),慢慢減小其方差,到后面兩個(gè)低維流形“本體”都已經(jīng)有重疊時(shí),就算把噪聲完全拿掉,JS散度也能照樣發(fā)揮作用,繼續(xù)產(chǎn)生有意義的梯度把兩個(gè)低維流形拉近,直到它們接近完全重合。以上是對原文的直觀解釋。
在這個(gè)解決方案下我們可以放心地把判別器訓(xùn)練到接近最優(yōu),不必?fù)?dān)心梯度消失的問題。而當(dāng)判別器最優(yōu)時(shí),對公式9取反可得判別器的最小loss為
第三部分:Wasserstein距離的優(yōu)越性質(zhì)
第四部分:從Wasserstein距離到WGAN
既然Wasserstein距離有如此優(yōu)越的性質(zhì),如果我們能夠把它定義為生成器的loss,不就可以產(chǎn)生有意義的梯度來更新生成器,使得生成分布被拉向真實(shí)分布嗎?
上文說過,WGAN與原始GAN第一種形式相比,只改了四點(diǎn):
判別器最后一層去掉sigmoid
生成器和判別器的loss不取log
每次更新判別器的參數(shù)之后把它們的值截?cái)嗟讲怀^一個(gè)固定常數(shù)c
不要用基于動(dòng)量的優(yōu)化算法(包括momentum和Adam),推薦RMSProp,SGD也行
前三點(diǎn)都是從理論分析中得到的,已經(jīng)介紹完畢;第四點(diǎn)卻是作者從實(shí)驗(yàn)中發(fā)現(xiàn)的,屬于trick,相對比較“玄”。作者發(fā)現(xiàn)如果使用Adam,判別器的loss有時(shí)候會(huì)崩掉,當(dāng)它崩掉時(shí),Adam給出的更新方向與梯度方向夾角的cos值就變成負(fù)數(shù),更新方向與梯度方向南轅北轍,這意味著判別器的loss梯度是不穩(wěn)定的,所以不適合用Adam這類基于動(dòng)量的優(yōu)化算法。作者改用RMSProp之后,問題就解決了,因?yàn)镽MSProp適合梯度不穩(wěn)定的情況。
對WGAN作者做了不少實(shí)驗(yàn)驗(yàn)證,本文只提比較重要的三點(diǎn)。第一,判別器所近似的Wasserstein距離與生成器的生成圖片質(zhì)量高度相關(guān),如下所示(此即題圖):
最后補(bǔ)充一點(diǎn)論文沒提到,但是我個(gè)人覺得比較微妙的問題。判別器所近似的Wasserstein距離能夠用來指示單次訓(xùn)練中的訓(xùn)練進(jìn)程,這個(gè)沒錯(cuò);接著作者又說它可以用于比較多次訓(xùn)練進(jìn)程,指引調(diào)參,我倒是覺得需要小心些。比如說我下次訓(xùn)練時(shí)改了判別器的層數(shù)、節(jié)點(diǎn)數(shù)等超參,判別器的擬合能力就必然有所波動(dòng),再比如說我下次訓(xùn)練時(shí)改了生成器兩次迭代之間,判別器的迭代次數(shù),這兩種常見的變動(dòng)都會(huì)使得Wasserstein距離的擬合誤差就與上次不一樣。那么這個(gè)擬合誤差的變動(dòng)究竟有多大,或者說不同的人做實(shí)驗(yàn)時(shí)判別器的擬合能力或迭代次數(shù)相差實(shí)在太大,那它們之間還能不能直接比較上述指標(biāo),我都是存疑的。
第五部分:總結(jié)
WGAN前作分析了Ian Goodfellow提出的原始GAN兩種形式各自的問題,第一種形式等價(jià)在最優(yōu)判別器下等價(jià)于最小化生成分布與真實(shí)分布之間的JS散度,由于隨機(jī)生成分布很難與真實(shí)分布有不可忽略的重疊以及JS散度的突變特性,使得生成器面臨梯度消失的問題;第二種形式在最優(yōu)判別器下等價(jià)于既要最小化生成分布與真實(shí)分布直接的KL散度,又要較大化其JS散度,相互矛盾,導(dǎo)致梯度不穩(wěn)定,而且KL散度的不對稱性使得生成器寧可喪失多樣性也不愿喪失準(zhǔn)確性,導(dǎo)致collapse mode現(xiàn)象。
WGAN前作針對分布重疊問題提出了一個(gè)過渡解決方案,通過對生成樣本和真實(shí)樣本加噪聲使得兩個(gè)分布產(chǎn)生重疊,理論上可以解決訓(xùn)練不穩(wěn)定的問題,可以放心訓(xùn)練判別器到接近最優(yōu),但是未能提供一個(gè)指示訓(xùn)練進(jìn)程的可靠指標(biāo),也未做實(shí)驗(yàn)驗(yàn)證。
WGAN本作引入了Wasserstein距離,由于它相對KL散度與JS散度具有優(yōu)越的平滑特性,理論上可以解決梯度消失問題。接著通過數(shù)學(xué)變換將Wasserstein距離寫成可求解的形式,利用一個(gè)參數(shù)數(shù)值范圍受限的判別器神經(jīng)網(wǎng)絡(luò)來較大化這個(gè)形式,就可以近似Wasserstein距離。在此近似最優(yōu)判別器下優(yōu)化生成器使得Wasserstein距離縮小,就能有效拉近生成分布與真實(shí)分布。WGAN既解決了訓(xùn)練不穩(wěn)定的問題,也提供了一個(gè)可靠的訓(xùn)練進(jìn)程指標(biāo),而且該指標(biāo)確實(shí)與生成樣本的質(zhì)量高度相關(guān)。作者對WGAN進(jìn)行了實(shí)驗(yàn)驗(yàn)證。
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4456.html
摘要:判別器勝利的條件則是很好地將真實(shí)圖像自編碼,以及很差地辨識(shí)生成的圖像。 先看一張圖:下圖左右兩端的兩欄是真實(shí)的圖像,其余的是計(jì)算機(jī)生成的。過渡自然,效果驚人。這是谷歌本周在 arXiv 發(fā)表的論文《BEGAN:邊界均衡生成對抗網(wǎng)絡(luò)》得到的結(jié)果。這項(xiàng)工作針對 GAN 訓(xùn)練難、控制生成樣本多樣性難、平衡鑒別器和生成器收斂難等問題,提出了改善。尤其值得注意的,是作者使用了很簡單的結(jié)構(gòu),經(jīng)過常規(guī)訓(xùn)練...
摘要:前面兩個(gè)期望的采樣我們都熟悉,第一個(gè)期望是從真樣本集里面采,第二個(gè)期望是從生成器的噪聲輸入分布采樣后,再由生成器映射到樣本空間。 Wasserstein GAN進(jìn)展:從weight clipping到gradient penalty,更加先進(jìn)的Lipschitz限制手法前段時(shí)間,Wasserstein ?GAN以其精巧的理論分析、簡單至極的算法實(shí)現(xiàn)、出色的實(shí)驗(yàn)效果,在GAN研究圈內(nèi)掀起了一陣...
摘要:直接把應(yīng)用到領(lǐng)域主要是生成序列,有兩方面的問題最開始是設(shè)計(jì)用于生成連續(xù)數(shù)據(jù),但是自然語言處理中我們要用來生成離散的序列。如圖,針對第一個(gè)問題,首先是將的輸出作為,然后用來訓(xùn)練。 我來答一答自然語言處理方面GAN的應(yīng)用。直接把GAN應(yīng)用到NLP領(lǐng)域(主要是生成序列),有兩方面的問題:1. GAN最開始是設(shè)計(jì)用于生成連續(xù)數(shù)據(jù),但是自然語言處理中我們要用來生成離散tokens的序列。因?yàn)樯善?G...
摘要:也是相關(guān)的,因?yàn)樗鼈円呀?jīng)成為實(shí)現(xiàn)和使用的主要基準(zhǔn)之一。在本文發(fā)表之后不久,和中有容易獲得的不同實(shí)現(xiàn)用于測試你所能想到的任何數(shù)據(jù)集。在這篇文章中,作者提出了對訓(xùn)練的不同增強(qiáng)方案。在這種情況下,鑒別器僅用于指出哪些是值得匹配的統(tǒng)計(jì)信息。 本文不涉及的內(nèi)容首先,你不會(huì)在本文中發(fā)現(xiàn):復(fù)雜的技術(shù)說明代碼(盡管有為那些感興趣的人留的代碼鏈接)詳盡的研究清單(點(diǎn)擊這里進(jìn)行查看 鏈接:http://suo....
閱讀 1115·2021-10-14 09:42
閱讀 1417·2021-09-22 15:11
閱讀 3346·2019-08-30 15:56
閱讀 1282·2019-08-30 15:55
閱讀 3657·2019-08-30 15:55
閱讀 914·2019-08-30 15:44
閱讀 2054·2019-08-29 17:17
閱讀 2101·2019-08-29 15:37