【GAN优化】详解对偶与WGAN
越學(xué)習(xí)越發(fā)現(xiàn)自己知之甚少,道阻且長,還是認(rèn)真看下這篇文章,好好琢磨琢磨GAN吧。
今天將和大家一起學(xué)習(xí)在GAN界占有重要位置的WGAN,它提出了一種新的距離度量,較之前的f散度,它的數(shù)學(xué)性質(zhì)更為優(yōu)秀。我們將先通過一個(gè)例子細(xì)說一下f散度的問題,然后介紹Wasserstein距離并用一個(gè)小例子給出計(jì)算方法,最后利用對(duì)偶理論求解Wasserstein距離。
作者&編輯 | 小米粥
說到對(duì)GAN的理解,我們不能簡(jiǎn)單停留在“生成器產(chǎn)生樣本,判別器分辨樣本真假”的階段了,在經(jīng)過第二篇文章后,對(duì)GAN的理解應(yīng)該是:先學(xué)習(xí)一個(gè)關(guān)于生成器定義的隱式概率分布和訓(xùn)練數(shù)據(jù)集的本質(zhì)概率分布之間的距離度量,然后優(yōu)化生成器來縮減這個(gè)距離度量。今天的主要內(nèi)容依舊圍繞這個(gè)距離度量來展開。
1 度量的問題
在第二篇文章的最后,我們簡(jiǎn)要討論了f散度的問題。實(shí)際中,生成器定義的隱式概率分布和訓(xùn)練數(shù)據(jù)集的本質(zhì)概率分布幾乎不存在重疊部分,而且隨著數(shù)據(jù)維度增加,這個(gè)趨勢(shì)會(huì)更加嚴(yán)重,那么采樣計(jì)算得來的f散度距離不僅不連續(xù),而且?guī)缀跆幪帉?dǎo)數(shù)為0。
用一個(gè)非常簡(jiǎn)單的例子來解釋一下,在二維空間有兩個(gè)無任何重合的均勻分布,其中
我們來計(jì)算一下兩個(gè)分布的KL散度,JS散度,總變差。
可以看出,當(dāng)P和Q沒有重合或者重合部分可忽略時(shí),其f散度值為常數(shù);當(dāng)兩者完全重合時(shí),f散度值為0。這樣的話,f散度無法為生成器提供可以減少損失函數(shù)的梯度信息,生成器無法訓(xùn)練獲得優(yōu)化方向。
對(duì)于此問題的一種解決方案是:通過對(duì)數(shù)據(jù)集中的樣本和生成器生成的樣本增加噪聲,使得原本的兩個(gè)低維概率分布“彌散”到整個(gè)高維空間,強(qiáng)行讓它們產(chǎn)生不可忽略的重疊,此時(shí)的f散度便能“指示”出兩個(gè)分布的距離。在訓(xùn)練過程中,我們可以先添加方差比較大的噪聲,以盡可能使兩個(gè)分布產(chǎn)生較大重疊部分,隨著兩個(gè)分布距離的拉近,可以逐漸降低噪聲的方差,直至最后可以去掉噪聲完全靠JS散度來指示生成器的學(xué)習(xí)。
但是為了本質(zhì)地解決問題,我們需要尋找一種更合理的距離度量。直觀上,該距離最好處處連續(xù),在兩個(gè)分布不重合的位置處處可導(dǎo)且導(dǎo)數(shù)不能為0。
2 Wasserstein距離
Wasserstein距離是一個(gè)數(shù)學(xué)性質(zhì)非常良好距離度量,數(shù)學(xué)形式稍微有點(diǎn)復(fù)雜。我們用一個(gè)小例子來引入,定義兩個(gè)離散概率分布P和Q,其隨機(jī)變量取值只能為1,2,3,4。如何對(duì)P調(diào)整使其等于Q?
其實(shí)是很簡(jiǎn)單的一個(gè)問題,我們逐位置來分解計(jì)算,對(duì)于P的1位置,其值為0.25,我們將這0.25保持在1位置,即可有如下分解矩陣:
對(duì)于P的2位置,其值為0.25,我們也將這0.25全部保持在2位置,即有分解矩陣:
對(duì)于P的3位置,其值為0.5,我們將其中的0.25放置到1位置,將0.25放置到2位置,即有分解矩陣:
類似的,P的4位置為0,不用做任何分解和移動(dòng),這樣我們可看到經(jīng)過逐個(gè)位置分解和移動(dòng)后,新的分布已經(jīng)和Q完全一樣了,如下:
然后,我們?cè)倏紤]關(guān)于路程的移動(dòng)耗費(fèi)問題。如果定義從1位置到2位置路程為1,從1位置到3位置路程為2......對(duì)P的1位置,將0.25保留在1位置不產(chǎn)生移動(dòng)耗費(fèi),對(duì)P的2位置,將0.25保留在2位置也不產(chǎn)生移動(dòng)耗費(fèi),但是對(duì)P的3位置,將0.25移動(dòng)到1位置,需要耗費(fèi):0.25*(3-1)=0.5;將0.25移動(dòng)到2位置,需要耗費(fèi):0.25*(2-1)=0.25,故整個(gè)方案將產(chǎn)生0.75的耗費(fèi)。當(dāng)然,我們也可以有其他傳輸方案,例如:
可以證明的是總存在一個(gè)耗費(fèi)最小的方案。Wasserstein距離便是某一種最小耗費(fèi)方案對(duì)應(yīng)的總耗費(fèi)值。
在數(shù)學(xué)形式上,
Π是兩個(gè)分布構(gòu)成的全部可能的聯(lián)合分布的集合,γ是該集合中的一個(gè)聯(lián)合分布,且該聯(lián)合分布要求:
簡(jiǎn)而言之就是,γ定義一個(gè)傳輸方案,d定義了路程函數(shù),對(duì)每個(gè)方案求積分計(jì)算總傳輸耗費(fèi)值,最后在所有這些方案中取最小耗費(fèi)值的傳輸方案,其對(duì)應(yīng)的總耗費(fèi)值即為距離。
在WGAN中,
當(dāng)然也可以定義2-Wasserstein距離:
或者k-Wasserstein距離:
針對(duì)于剛開始提出的小例子,我們用Wasserstein則可得到:
可以看出Wasserstein距離處處連續(xù),而且?guī)缀跆幪幙蓪?dǎo),數(shù)學(xué)性質(zhì)非常好,能夠在兩個(gè)分布沒有重疊部分的時(shí)候,依舊給出合理的距離度量。
3?對(duì)偶問題
如果要計(jì)算Wasserstein距離,那需要遍歷所有滿足條件的聯(lián)合概率分布,然后計(jì)算每個(gè)聯(lián)合概率分布下的總消耗值,最后取最小的總消耗值,在維度較高時(shí),該問題幾乎不可解決。與之前fGAN有點(diǎn)類似,當(dāng)一個(gè)優(yōu)化問題難以求解時(shí),可以考慮將其轉(zhuǎn)化為比較容易求解的對(duì)偶問題。關(guān)于對(duì)偶理論,其最早源于求解線性規(guī)劃問題,每個(gè)線性規(guī)劃問題都有一個(gè)與之對(duì)應(yīng)的對(duì)偶問題,對(duì)偶問題是以原問題的約束條件和目標(biāo)函數(shù)為基礎(chǔ)構(gòu)造而來的,對(duì)于一個(gè)不易求解的線性規(guī)劃問題,當(dāng)求解成功對(duì)偶問題時(shí),其原問題也自然解決。
據(jù)此,我們先將Wasserstein距離表示成線性規(guī)劃的形式,定義向量(即將聯(lián)合概率分布“離散化”并拉成列向量):
定義向量:
對(duì)于兩個(gè)約束條件,定義矩陣:
定義向量:
定義了這些復(fù)雜的矩陣和向量后,我們的Wasserstein距離則可以表達(dá)成以下線性規(guī)劃的形式:
對(duì)偶理論是一個(gè)非常漂亮的理論,尤其是對(duì)于強(qiáng)對(duì)偶問題,有:
即只需求解原問題的對(duì)偶問題,得到對(duì)偶問題的解的同時(shí)也得到了原問題的解。即使對(duì)于弱對(duì)偶問題,雖不能精確求解,但是給出了原問題的下界:
在第二篇的fGAN中,我們便給出了f散度的一個(gè)下界,不過幸運(yùn)的是,這次面對(duì)的是一個(gè)強(qiáng)對(duì)偶問題:
對(duì)于原問題的對(duì)偶問題,我們定義向量:
其限制條件要求,
即
綜上所述,有
現(xiàn)在,定義一個(gè)神經(jīng)網(wǎng)絡(luò)F(x)來擬合一下上個(gè)式子的f(x),采用抽樣計(jì)算的方式,就有了WGAN的判別器(現(xiàn)在叫critic)損失函數(shù):
critic不像原始GAN的判別器具有分別真假樣本的具象意義了,它的輸出代表什么無從知曉。它像一個(gè)“部件”,使用這個(gè)訓(xùn)練好的部件再加上對(duì)樣本的充分采樣,便能得到兩個(gè)分布的Wasserstein距離,自然而然,生成器的優(yōu)化目標(biāo)是使得Wasserstein距離最小。
這里面存在一個(gè)比較難解決的問題,1-Lipschitz限制即要求在任意點(diǎn),函數(shù)的一階導(dǎo)數(shù)在[-1,1]的范圍內(nèi),這個(gè)限制在神經(jīng)網(wǎng)絡(luò)中并不容易實(shí)現(xiàn),之后的許多GAN便是圍繞這點(diǎn)來展開的。
其實(shí)今天著重把Wasserstein距離和計(jì)算方法介紹了下,對(duì)于比較有難度的Lipschitz限制并未討論,在接下來的兩篇文章中,我們將分別從解決1-Lipschitz限制和IPM的角度繼續(xù)深入GAN的目標(biāo)函數(shù)。
[1]?Arjovsky M, Chintala S, Bottou L. Wasserstein GAN[J]. 2017.
[2]?Hong Y , Hwang U , Yoo J , et al. How Generative Adversarial Networks and Their Variants Work: An Overview[J]. ACM Computing Surveys, 2017.
[3]Wasserstein GAN and the Kantorovich-Rubinstein Duality.? https://vincentherrmann.github.io/blog/wasserstein/
總結(jié)
這篇文章帶領(lǐng)大家領(lǐng)略了一下WGAN,學(xué)習(xí)了一種新的距離度量,展示了使用對(duì)偶方法轉(zhuǎn)化Wasserstein距離,最后留了一個(gè)大坑,解決1-Lipschitz問題,
下期預(yù)告:Lipschitz限制與SNGAN
GAN群
有三AI建立了一個(gè)GAN群,便于有志者相互交流。感興趣的同學(xué)也可以微信搜索xiaozhouguo94,備注"加入有三-GAN群"。
知識(shí)星球推薦
有三AI知識(shí)星球由言有三維護(hù),內(nèi)設(shè)AI知識(shí)匯總,AI書籍,網(wǎng)絡(luò)結(jié)構(gòu),看圖猜技術(shù),項(xiàng)目開發(fā),Github推薦,AI1000問等系統(tǒng)性學(xué)習(xí)板塊。
轉(zhuǎn)載文章請(qǐng)后臺(tái)聯(lián)系
侵權(quán)必究
往期精選
【GAN優(yōu)化】GAN優(yōu)化專欄上線,首談生成模型與GAN基礎(chǔ)
【GAN的優(yōu)化】從KL和JS散度到fGAN
【技術(shù)綜述】有三說GANs(上)
【模型解讀】歷數(shù)GAN的5大基本結(jié)構(gòu)
【完結(jié)】深度學(xué)習(xí)CV算法工程師從入門到初級(jí)面試有多遠(yuǎn),大概是25篇文章的距離
【完結(jié)】?jī)?yōu)秀的深度學(xué)習(xí)從業(yè)者都有哪些優(yōu)秀的習(xí)慣
【完結(jié)】給新手的12大深度學(xué)習(xí)開源框架快速入門項(xiàng)目
【完結(jié)】總結(jié)12大CNN主流模型架構(gòu)設(shè)計(jì)思想
【AI不惑境】數(shù)據(jù)壓榨有多狠,人工智能就有多成功
【AI不惑境】網(wǎng)絡(luò)深度對(duì)深度學(xué)習(xí)模型性能有什么影響?
【AI不惑境】網(wǎng)絡(luò)的寬度如何影響深度學(xué)習(xí)模型的性能?
【AI不惑境】學(xué)習(xí)率和batchsize如何影響模型的性能?
【AI不惑境】殘差網(wǎng)絡(luò)的前世今生與原理
【AI不惑境】移動(dòng)端高效網(wǎng)絡(luò),卷積拆分和分組的精髓
總結(jié)
以上是生活随笔為你收集整理的【GAN优化】详解对偶与WGAN的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NLP】 NLP专栏栏主自述,说不出口
- 下一篇: 【GAN优化】GAN优化专栏栏主小米粥自