漸漸體會(huì)到GAN訓(xùn)練難確實(shí)是一個(gè)讓人頭疼的問(wèn)題竭贩,一個(gè)多月前我曾粗略地了解了一下WGAN,知道這是一個(gè)著眼于提高GAN訓(xùn)練穩(wěn)定性的成果逃片,但后來(lái)發(fā)現(xiàn),我對(duì)其原理理解得還不是很充足份招。于是我把WGAN的一作作者M(jìn)artin Arjovsky在2017年先后參與的三篇相關(guān)論文找來(lái)看,對(duì)WGAN的來(lái)龍去脈有了一個(gè)更清晰的理解狞甚。
Towards Principled Methods for Training GenerativeAdversarial Networks
這篇論文是WGAN發(fā)表前的鋪墊锁摔,它最大的貢獻(xiàn)是從理論上解釋了GAN訓(xùn)練不穩(wěn)定的原因。
人們?cè)趹?yīng)用GAN時(shí)經(jīng)常發(fā)現(xiàn)一個(gè)現(xiàn)象:不能把Discriminator訓(xùn)練得太好哼审,否則Generator的性能很難提升上去谐腰。該文以此為出發(fā)點(diǎn),分析了GAN目標(biāo)函數(shù)的理論缺陷棺蛛。
原始目標(biāo)函數(shù)的缺陷
在最早提出GAN的論文中怔蚌,Goodfellow把GAN的目標(biāo)函數(shù)設(shè)置為:
他也證明了巩步,固定Generator時(shí)旁赊,最優(yōu)的Discriminator是
然后在面對(duì)最優(yōu)Discriminator時(shí),Generator的優(yōu)化目標(biāo)就變成了
可以把上述公式簡(jiǎn)潔地寫(xiě)成JS散度的形式:
也就是說(shuō)椅野,如果把Discriminator訓(xùn)練到極致终畅,那么整個(gè)GAN的訓(xùn)練目標(biāo)就成了最小化真實(shí)數(shù)據(jù)分布與合成數(shù)據(jù)分布之間的JS散度。
該文花了大量的篇幅進(jìn)行數(shù)學(xué)推導(dǎo)竟闪,證明在一般的情況下离福,上述有關(guān)JS散度的目標(biāo)函數(shù)會(huì)帶來(lái)梯度消失的問(wèn)題。也就是說(shuō)炼蛤,如果Discriminator訓(xùn)練得太好妖爷,Generator就無(wú)法得到足夠的梯度繼續(xù)優(yōu)化,而如果Discriminator訓(xùn)練得太弱理朋,指示作用不顯著絮识,同樣不能讓Generator進(jìn)行有效的學(xué)習(xí)。這樣一來(lái)嗽上,Discriminator的訓(xùn)練火候就非常難把控次舌,這就是GAN訓(xùn)練難的根源。
該文還用實(shí)驗(yàn)對(duì)這一結(jié)論進(jìn)行了驗(yàn)證:讓Generator固定兽愤,然后從頭開(kāi)始訓(xùn)練Discriminator跷乐,繪制出Generator目標(biāo)函數(shù)梯度和訓(xùn)練迭代次數(shù)的關(guān)系如下贿讹。
可以看到,經(jīng)過(guò)25 epochs的訓(xùn)練以后,Generator得到的梯度已經(jīng)非常小了鼓黔,出現(xiàn)了明顯的梯度消失問(wèn)題。
-logD目標(biāo)函數(shù)的缺陷
Goodfellow提到過(guò)可以把Generator的目標(biāo)函數(shù)改為-logD的形式糊余,在實(shí)際應(yīng)用中纳本,人們也發(fā)現(xiàn)這個(gè)形式更好用,該文把這個(gè)技巧稱(chēng)為the - log D alternative土思。此時(shí)Generator的梯度是:
該文證明在最優(yōu)的Discriminator下务热,這個(gè)梯度可以轉(zhuǎn)化為KL散度和JS散度的組合:
該文對(duì)這一結(jié)論有兩點(diǎn)評(píng)論:
1. 該公式的第二項(xiàng)意味著最大化真實(shí)數(shù)據(jù)分布和生成數(shù)據(jù)分布之間的JS散度忆嗜,也就是讓兩者差異化更大,這顯然違背了最初的優(yōu)化目標(biāo)崎岂,算是一種缺陷捆毫。
2. 同時(shí),第一項(xiàng)的KL散度會(huì)被最小化冲甘,這會(huì)帶來(lái)嚴(yán)重的mode dropping問(wèn)題绩卤。
關(guān)于上述第二點(diǎn),下面補(bǔ)充一點(diǎn)說(shuō)明江醇。
mode dropping在更多的情況下被稱(chēng)作mode collapse濒憋,指的是生成樣本只集中于部分的mode從而缺乏多樣性的情況。例如陶夜,MNIST數(shù)據(jù)分布一共有10個(gè)mode(0到9共10個(gè)數(shù)字)凛驮,如果Generator生成的樣本幾乎只有其中某個(gè)數(shù)字,那么就是出現(xiàn)了很?chē)?yán)重的mode collapse現(xiàn)象条辟。
接下來(lái)解釋為什么上述的KL散度
會(huì)導(dǎo)致mode collapse黔夭。借用網(wǎng)上某博客的圖,真實(shí)的數(shù)據(jù)分布記為P羽嫡,生成的數(shù)據(jù)分布記為Q本姥,圖的左邊表示兩個(gè)分布的輪廓,右邊表示兩種KL散度的分布(由于KL散度的不對(duì)稱(chēng)性杭棵,KL(P||Q)與KL(Q||P)是不同的)婚惫。
右圖藍(lán)色的曲線(xiàn)代表KL(Q||P),相當(dāng)于上述的
可以看到魂爪,KL(Q||P)會(huì)更多地懲罰q(x) > 0而p(x) -> 0的情況(如x = 2附近)先舷,也就是懲罰“生成樣本質(zhì)量不佳”的錯(cuò)誤;另一方面甫窟,當(dāng)p(x) > 0而q(x) -> 0時(shí)(如x = -3附近)密浑,KL(Q||P)給出的懲罰幾乎是0,表示對(duì)“Q未能廣泛覆蓋P涉及的區(qū)域”不在乎粗井。如此一來(lái)尔破,為了“安全”起見(jiàn),最終的Q將謹(jǐn)慎地覆蓋P的一小部分區(qū)域浇衬,即Generator會(huì)生成大量高質(zhì)量卻缺乏多樣性的樣本懒构,這就是mode collapse問(wèn)題。
另外耘擂,通過(guò)類(lèi)似的分析可以知道胆剧,KL(P||Q)則會(huì)導(dǎo)致Generator生成多樣性強(qiáng)卻低質(zhì)量的樣本。
除了上述的缺陷,該文還通過(guò)數(shù)學(xué)證明這種-logD的目標(biāo)函數(shù)還存在梯度方差較大的缺陷秩霍,導(dǎo)致訓(xùn)練的不穩(wěn)定篙悯。然后同樣通過(guò)實(shí)驗(yàn)直觀地驗(yàn)證了這個(gè)現(xiàn)象,如下圖铃绒,在訓(xùn)練的早期(訓(xùn)練了1 epoch和訓(xùn)練了10 epochs)鸽照,梯度的方差很大,因此對(duì)應(yīng)的曲線(xiàn)看起來(lái)比較粗颠悬,直到訓(xùn)練了25 epochs以后GAN收斂了才出現(xiàn)方差較小的梯度矮燎。
小結(jié)
該文通過(guò)嚴(yán)謹(jǐn)?shù)睦碚撏茖?dǎo)分析了當(dāng)前GAN訓(xùn)練難的根源:原始的目標(biāo)函數(shù)容易導(dǎo)致梯度消失;改進(jìn)后的-logD trick雖然解決了梯度消失的問(wèn)題赔癌,然而又帶來(lái)了mode collapse诞外、梯度不穩(wěn)定等問(wèn)題,同樣存在理論缺陷灾票。既然深入剖析了問(wèn)題的根源峡谊,該文自然在最后也提出了一個(gè)解決方案,然而該方案畢竟不如后來(lái)的WGAN那樣精巧铝条,因此我把這部分略過(guò)了靖苇。
Wasserstein GAN
EM距離
這是最早提出WGAN的論文席噩,沿著上篇論文的思路班缰,該文認(rèn)為需要對(duì)“生成分布與真實(shí)分布之間的距離”探索一種更合適的度量方法。作者們把眼光轉(zhuǎn)向了Earth-Mover距離悼枢,簡(jiǎn)稱(chēng)EM距離埠忘,又稱(chēng)Wasserstein距離。
EM距離的定義為:
解釋如下:是和組合起來(lái)的所有可能的聯(lián)合分布的集合馒索,對(duì)于每一個(gè)可能的聯(lián)合分布而言莹妒,可以從中采樣得到一個(gè)真實(shí)樣本和一個(gè)生成樣本,并算出這對(duì)樣本的距離绰上,所以可以計(jì)算該聯(lián)合分布下樣本對(duì)距離的期望值旨怠。在所有可能的聯(lián)合分布中能夠?qū)@個(gè)期望值取到的下界,就定義為EM距離蜈块。
Earth-Mover的本意是推土機(jī)的意思鉴腻,這個(gè)命名很貼切,因?yàn)閺闹庇^上理解百揭,EM距離就是在衡量把Pr這堆“沙土”“推”到Pg這個(gè)“位置”所要花費(fèi)的最小代價(jià)爽哎,其中的γ就是一種“推土”方案。
該文接下來(lái)又通過(guò)數(shù)學(xué)證明器一,相比JS课锌、KL等距離,EM距離的變化更加敏感祈秕,能提供更有意義的梯度渺贤,理論上顯得更加優(yōu)越雏胃。
WGAN
作者們自然想到把EM距離用到GAN中。直接求解EM距離是很難做到的志鞍,不過(guò)可以用一個(gè)叫Kantorovich-Rubinstein duality的理論把問(wèn)題轉(zhuǎn)化為:
這個(gè)公式的意思是對(duì)所有滿(mǎn)足1-Lipschitz限制的函數(shù)取到的上界丑掺。簡(jiǎn)單地說(shuō),Lipschitz限制規(guī)定了一個(gè)連續(xù)函數(shù)的最大局部變動(dòng)幅度述雾,如K-Lipschitz就是:街州。
然后可以用神經(jīng)網(wǎng)絡(luò)的方法來(lái)解決上述優(yōu)化問(wèn)題:
這個(gè)神經(jīng)網(wǎng)絡(luò)和GAN中的Discriminator非常相似,只存在一些細(xì)微的差異玻孟,作者把它命名為Critic以便與Discriminator作區(qū)分唆缴。兩者的不同之處在于:
1. Critic最后一層拋棄了sigmoid,因?yàn)樗敵龅氖且话阋饬x上的分?jǐn)?shù)黍翎,而不像Discriminator輸出的是概率面徽。
2. Critic的目標(biāo)函數(shù)沒(méi)有l(wèi)og項(xiàng),這是從上面的推導(dǎo)得到的匣掸。
3. Critic在每次更新后都要把參數(shù)截?cái)嘣谀硞€(gè)范圍趟紊,即weight clipping,這是為了保證上面講到的Lipschitz限制碰酝。
4. Critic訓(xùn)練得越好霎匈,對(duì)Generator的提升更有利,因此可以放心地多訓(xùn)練Critic送爸。
這樣的簡(jiǎn)單修改就是WGAN的核心了铛嘱,雖然數(shù)學(xué)證明很復(fù)雜,最后的變動(dòng)卻十分簡(jiǎn)潔袭厂∧牛總結(jié)出來(lái)的WGAN算法為:
GAN與WGAN的對(duì)比如下圖:
WGAN的優(yōu)越之處
最后,該文用一系列的實(shí)驗(yàn)說(shuō)明了WGAN的幾大優(yōu)越之處:
1. 不再需要糾結(jié)如何平衡Generator和Discriminator的訓(xùn)練程度纹磺,大大提高了GAN訓(xùn)練的穩(wěn)定性:Critic(Discriminator)訓(xùn)練得越好帖烘,對(duì)提升Generator就越有利。
2. 即使網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)得比較簡(jiǎn)陋橄杨,WGAN也能展現(xiàn)出良好的性能秘症,包括避免了mode collapse的現(xiàn)象,體現(xiàn)了出色的魯棒性讥珍。
3. Critic的loss很準(zhǔn)確地反映了Generator生成樣本的質(zhì)量历极,因此可以作為展現(xiàn)GAN訓(xùn)練進(jìn)度的定性指標(biāo)。
Improved Training ofWasserstein GANs
緊接著上面的工作衷佃,這篇論文對(duì)剛提出的WGAN做了一點(diǎn)小改進(jìn)趟卸。
作者們發(fā)現(xiàn)WGAN有時(shí)候也會(huì)伴隨樣本質(zhì)量低、難以收斂等問(wèn)題。WGAN為了保證Lipschitz限制锄列,采用了weight clipping的方法图云,然而這樣的方式可能過(guò)于簡(jiǎn)單粗暴了,因此他們認(rèn)為這是上述問(wèn)題的罪魁禍?zhǔn)住?/p>
具體而言邻邮,他們通過(guò)簡(jiǎn)單的實(shí)驗(yàn)竣况,發(fā)現(xiàn)weight clipping會(huì)導(dǎo)致兩大問(wèn)題:模型建模能力弱化,以及梯度爆炸或消失筒严。
他們提出的替代方案是給Critic loss加入gradient penalty (GP)丹泉,這樣,新的網(wǎng)絡(luò)模型就叫WGAN-GP鸭蛙。
GP項(xiàng)的設(shè)計(jì)邏輯是:當(dāng)且僅當(dāng)一個(gè)可微函數(shù)的梯度范數(shù)(gradient norm)在任意處都不超過(guò)1時(shí)摹恨,該函數(shù)滿(mǎn)足1-Lipschitz條件。至于為什么限制Critic的梯度范數(shù)趨向1(two-sided penalty)而不是小于1(one-sided penalty)娶视,作者給出的解釋是晒哄,從理論上最優(yōu)Critic的梯度范數(shù)應(yīng)當(dāng)處處接近1,對(duì)Lipschitz條件的影響不大肪获,同時(shí)從實(shí)驗(yàn)中發(fā)現(xiàn)two-sided penalty效果比one-sided penalty略好寝凌。
另一個(gè)值得注意的地方是,用于計(jì)算GP的樣本是生成樣本和真實(shí)樣本的線(xiàn)性插值孝赫,直接看算法流程更容易理解:
最后较木,該論文也通過(guò)實(shí)驗(yàn)說(shuō)明,WGAN-GP在訓(xùn)練的速度和生成樣本的質(zhì)量上寒锚,都略勝WGAN一籌劫映。