GAN论文详细解读+思想
論文地址:?[PDF] Generative Adversarial Nets | Semantic Scholar
注:由于這篇精讀是之前總結(jié)在word中,里面公式不能直接copy到這里,我就直接截圖了,省事但帶來(lái)的問(wèn)題是有個(gè)別公式截圖被水印擋了一點(diǎn),大家可以打開論文尋找相應(yīng)的公式哈,很方便。
Intro
深度學(xué)習(xí)不僅僅是講深度神經(jīng)網(wǎng)絡(luò),它更多的是對(duì)整個(gè)數(shù)據(jù)分布的一個(gè)特征的表示。
深度學(xué)習(xí)在生成模式上做的比較差的原因:在最大化似然函數(shù)的時(shí)候,我們要對(duì)這個(gè)概率分布進(jìn)行很多近似,近似會(huì)帶來(lái)很多計(jì)算上的困難。因此GAN就是一個(gè)不需要近似函數(shù)且計(jì)算上更好的模型。
生成模型是一個(gè)MLP,輸入是一個(gè)隨機(jī)的噪音,MLP會(huì)把一個(gè)產(chǎn)生噪音的分布(通常是高斯分布)可以映射到任何一個(gè)我們想要去擬合的分布。如果判別模型也是MLP的情況下,我們就可以通過(guò)誤差的反向傳遞,進(jìn)而不需要通過(guò)像馬爾科夫鏈一樣來(lái)對(duì)一個(gè)分布進(jìn)行復(fù)雜的采樣,進(jìn)而在計(jì)算上有優(yōu)勢(shì)。
Relat
作者發(fā)現(xiàn)之前的方法都是想辦法構(gòu)造出一個(gè)分布函數(shù)出來(lái),然后把函數(shù)提供一些參數(shù)進(jìn)行學(xué)習(xí),這些參數(shù)通過(guò)最大化它的對(duì)數(shù)似然函數(shù)來(lái)做。但他的缺點(diǎn)就是在維度比較高的時(shí)候計(jì)算量很大。而GAN是通過(guò)學(xué)一個(gè)模型來(lái)近似分布。但缺點(diǎn)是他最后不知道分布長(zhǎng)什么樣子,但計(jì)算上比較容易。
?
作者后來(lái)發(fā)現(xiàn)對(duì)于f的期望求導(dǎo)等價(jià)于他對(duì)于f自己求導(dǎo)。這也是為什么我們通過(guò)誤差的反向傳遞對(duì)GAN進(jìn)行求解。
Adversarial nets
其中z是隨機(jī)噪音向量,Pz是一個(gè)分布,θ都是需要學(xué)習(xí)的參數(shù)。的作用是將z輸入然后產(chǎn)生一個(gè)x向量。的作用是將x向量輸入,然后產(chǎn)生一個(gè)標(biāo)量,這個(gè)標(biāo)量是判斷輸入的x向量是否是真實(shí)值還是G生成值(越靠近真實(shí)值就越接近1,否則接近0),由于我們本身知道x是G生成的還是真實(shí)值,因此我們可以直接將數(shù)據(jù)標(biāo)上真實(shí)值為1,G生成為0。然后采用一些數(shù)據(jù)訓(xùn)練一個(gè)二分類。
?
?
-----------------------------------------------------------------------------------------------------------------------------
這個(gè)是網(wǎng)絡(luò)的目標(biāo)函數(shù),其中的x代表真實(shí)圖片(向量),z代表噪因圖片(隨機(jī)向量)。
當(dāng)D(辨別器)訓(xùn)練的很好的時(shí)候:D(x)=1,D(G(z))=0,因此V(D,G)=0。
但往往D不可能訓(xùn)練的那么好,又因?yàn)橛衛(wèi)og,因此V(D,G)<0。我們?cè)谟?xùn)練D的時(shí)候是看V(D,G)的,這也是為什么是要MAX~D的原因。而訓(xùn)練G的時(shí)候,只需要看即可,而G的目的是盡可能的讓D給他生成的圖片打分高,因此盡可能讓D(G(z))趨向于1,1-D(G(z))趨向于0,因此log(1-D(G(z)))趨向于無(wú)窮小。這也是MIN~G的原因。
?
需要注意的是剛開始訓(xùn)練的時(shí)候G生產(chǎn)的圖片效果很差,很容易讓D(G(z))=0,這就導(dǎo)致了log(1-D(G(z)))=0,因此會(huì)導(dǎo)致對(duì)他求梯度再進(jìn)行更新,會(huì)出現(xiàn)求不動(dòng)的現(xiàn)象。因此作者建議訓(xùn)練G的時(shí)候求MAX~G,用log(D(G(z)))來(lái)求。
Theroretical
????????綠色分布代表G生成的數(shù)據(jù),黑色點(diǎn)陣分布代表真實(shí)數(shù)據(jù),藍(lán)色點(diǎn)陣分布代表D(判別器)的判別分布。
????????(a)剛開始訓(xùn)練的時(shí)候由于D沒(méi)有訓(xùn)練,所以藍(lán)色點(diǎn)陣是無(wú)規(guī)則波動(dòng)。此時(shí)G生成的數(shù)據(jù)在真實(shí)數(shù)據(jù)右側(cè),D根據(jù)真實(shí)值分高,G生成的數(shù)據(jù)分低原則進(jìn)行學(xué)習(xí),進(jìn)而產(chǎn)生(b)的藍(lán)色點(diǎn)陣分布。
?????????隨后G訓(xùn)練更新參數(shù)(將生成的數(shù)據(jù)波峰左移)使其更接近真實(shí)值。然后再訓(xùn)練D,讓其產(chǎn)生新的藍(lán)色點(diǎn)陣分布。
????????最后讓G產(chǎn)生的數(shù)據(jù)分布與真實(shí)分布幾乎重合,此時(shí)的D無(wú)法區(qū)分G產(chǎn)生的數(shù)據(jù)真假。
算法:
????????先制造m個(gè)隨機(jī)噪音向量,和m個(gè)從database中提取出來(lái)的真實(shí)數(shù)據(jù)
????????隨后開始將數(shù)據(jù)傳入中開始計(jì)算辨別器的參數(shù)求梯度來(lái)更新辨別器,迭代k輪。?
????????然后再制造m個(gè)隨機(jī)噪音向量,然后把這m個(gè)隨機(jī)噪音向量代入來(lái)更新生成器,計(jì)算機(jī)生成器的梯度進(jìn)而更新生成器,迭代k輪。k是超參數(shù)。?
結(jié)論部分:
目標(biāo)函數(shù)最優(yōu)解:生成器學(xué)到的分布和真實(shí)數(shù)據(jù)的分布相等時(shí)?
最優(yōu)解時(shí):
當(dāng)G固定住的時(shí)候,辨別器D的最優(yōu)解是
Pdata(x)是指我把x放入真實(shí)數(shù)據(jù)分布中的數(shù)值是多少
Pg(x)是指我把x放入G學(xué)習(xí)到的分布中的數(shù)值是多少
Pdata和Pg分布數(shù)值都是0-1之間,因此D*G(x)的數(shù)值也在0-1之間。
當(dāng)Pdata(x)==Pg(x),那么D*G(x)=1/2。意味著辨別器D最優(yōu)解的時(shí)候輸出的值永遠(yuǎn)都是1/2,
表示這兩個(gè)分布是完全重合,D無(wú)法區(qū)分開。
D是通過(guò)從兩個(gè)分布(真實(shí)的數(shù)據(jù)和生成的數(shù)據(jù))分別采樣,用V(D,G)這個(gè)目標(biāo)函數(shù)訓(xùn)練一個(gè)二分類的分類器,如果這個(gè)分類器的值都是1/2,就證明這兩個(gè)分布完全重合了。
Two Sample Test方法:用來(lái)區(qū)分兩塊數(shù)據(jù)是不是來(lái)源于同一個(gè)分布。
下面開始證明(MAX~D)最優(yōu)解公式:
---------------------------------------------------------------------------------------------------------------------------------
?
這個(gè)是求f(x)的期望公式,且x來(lái)自p的分布。
---------------------------------------------------------------------------------------------------------------------------------
?
上下公式通過(guò)x=g(z)來(lái)推導(dǎo)。
????????又因?yàn)镻data(x)和Pg(x)都是常量所以分別設(shè)為a,b,我們想要求D(x),我們需要設(shè)D(x)為y,因此,這個(gè)是一個(gè)凸函數(shù),因此可以通過(guò)求導(dǎo))來(lái)求得最大值因此y=a/(a+b),因此也就是D(x)=Pdata(x)/{Pdata(x)+Pg(x)}。?
求完MAX~D,然后就該求MIN~G。
把D*G(x)帶入V(D,G)中得C(G),且C(G)求得最小值時(shí)Pdata(x)=Pg(x)
?
KL散度:公式:,其中x來(lái)自于p分布。?
KL散度的意義:已知p的情況下,需要多少個(gè)比特能把q表達(dá)出來(lái)。
且KL散度一定是大于等于0,且等于0時(shí),q==p。
由于中
?
的log中的分子的范圍都是0-1,而分母的范圍都是0-2,而KL散度公式中分子分母范圍都需要是0-1,因此需要將log中分母乘1/2,使分母的范圍從0-2變成0-1。Log中分母乘1/2,分子也要乘1/2,因此相當(dāng)于(-log2)*2=-log4。所以C(G)變?yōu)?#xff1a;
由于KL散度當(dāng)?shù)扔?時(shí)才取到最小,所以Pdata=(Pdata+Pg)/2 ????Pg=(Pdata+Pg)/2 ?=>Pdata=Pg
GAN思想淺入:
GAN網(wǎng)絡(luò)由generator(生成器)和discriminator(分辨器)組成。
所謂對(duì)抗的思想可以認(rèn)為,generator是個(gè)做假鈔的販子,discriminator是個(gè)警察,第一次先將白紙給generator,生成一張假鈔,然后discrimination進(jìn)行檢查(discrimination根據(jù)他所掌握真鈔的某個(gè)特征來(lái)判斷是否是假鈔),每一輪剛開始檢查的時(shí)候discrimination都沒(méi)有發(fā)現(xiàn)是假鈔,通過(guò)updata他的參數(shù)最終學(xué)會(huì)了真鈔的其他某個(gè)特征,然后discrimination發(fā)現(xiàn)是假鈔后,generator會(huì)updata他的參數(shù)。優(yōu)化后第二輪generator繼續(xù)生成一張假鈔.....
??一張圖片通過(guò)generator后是出來(lái)一張圖片,而出來(lái)的圖片通過(guò)discrimination后出來(lái)的是數(shù)值(數(shù)值越大,證明假鈔越逼真)
Generator想要自己生成的假鈔通過(guò)discrimination出來(lái)的分?jǐn)?shù)越來(lái)越高,所以不斷updata自己的參數(shù),discrimination為了讓自己能識(shí)別出是假鈔(為了使,通過(guò)自己出來(lái)后的分?jǐn)?shù)低而updata自己的參數(shù))
總結(jié)
以上是生活随笔為你收集整理的GAN论文详细解读+思想的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蓝牙血压计医疗方案设计
- 下一篇: 电子地图开发方式