2.2 判別器:有問(wèn)題?GAN來(lái)了!
GAN由生成器G和判別器D組成。
其實(shí)上面我們已經(jīng)基本介紹了生成器G的由來(lái)了,并且我們遇到了一個(gè)問(wèn)題: 極其復(fù)雜的計(jì)算方式導(dǎo)致使用極大似然估計(jì)根本無(wú)從下手啊?。?!
為了解決這個(gè)問(wèn)題,我們引入了判別器D!
現(xiàn)在GAN的結(jié)構(gòu)就完備了!!
對(duì)于生成器G:
-
G 是一個(gè)函數(shù),輸入 ,輸出(上面已經(jīng)介紹了)
-
先驗(yàn)分布 , 和G共同決定的分布
對(duì)于判別器D:
- D是一個(gè)函數(shù),輸入,輸出一個(gè)scalar
- D用于評(píng)估和之間的差異(解決上一小節(jié)提出的問(wèn)題)
那么,GAN的最終目標(biāo)-->用符號(hào)化語(yǔ)言表示就是:
我們的目標(biāo)是得到使得式子最小的生成器.
關(guān)于V:
給定G, 衡量的就是分布和的差異。
因此,也就是我們需要的使得差異最小的 G .
詳細(xì)解釋 V(G,D) :
對(duì)于:
固定G ,最優(yōu) 最大化:
假設(shè)D(x) 可以表達(dá)任何函數(shù)
此時(shí)再固定 x ,則對(duì)于 ,我們可將其看成是關(guān)于D的函數(shù):
解得
即:
則此時(shí)對(duì)于原式 V(G,D) (將代入):
JSD表示JS散度,它是KL散度的一種變形,也表示兩個(gè)分布之間的差異:
與KL散度不同,JS散度是對(duì)稱(chēng)的。
以上的公式推導(dǎo),證明了確實(shí)是衡量了 和 之間的差異。
此時(shí),最優(yōu)的G:
也就是使得最小的G
當(dāng)時(shí),表示兩個(gè)分布完全相同。
對(duì)于 ,令
我們?cè)撊绾蝺?yōu)化從而獲得呢???
我們希望通過(guò)最小化損失函數(shù)L(G) ,找到最優(yōu)的G。
這一步可以通過(guò)梯度下降實(shí)現(xiàn):
具體算法參考:
第一代:
- 給定(隨機(jī)初始化)
-
確定 使得 V(,D) 最大。此時(shí) V(,) 表示和 的JS散度
-
梯度下降: .得到
第二代:
- 給定
-
確定 使得V(,D) 最大。此時(shí)V(,)表示和的JS散度
-
梯度下降: .得到
。。。
后面的依此類(lèi)推
以上算法有一個(gè)問(wèn)題: 如何確定使得 V (D ,G**)**** 最大???**
也就是:給定 G,如何計(jì)算
回答:
從采樣
從采樣
因此我們可以將從期望值計(jì)算改寫(xiě)為對(duì)樣本計(jì)算(近似估計(jì)):
這很自然地讓我們想到二分類(lèi)問(wèn)題中常使用的交叉熵loss
因此,我們不妨聯(lián)想:
D是一個(gè)二分類(lèi)器,參數(shù)是
來(lái)自的采樣作為正樣本
來(lái)自的采樣作為負(fù)樣本
那么此時(shí),我們就將問(wèn)題轉(zhuǎn)化成了一個(gè)二分類(lèi)問(wèn)題:
交叉熵loss大 -->和 JS散度小
交叉熵loss小 -->和 JS散度大
此時(shí),D就是可以使用一個(gè)神經(jīng)網(wǎng)絡(luò)作為二分類(lèi)器,那么確定D,也就是可以使用梯度下降來(lái)優(yōu)化獲得D的最終參數(shù)。
GAN的最終算法流程:
初始化參數(shù)(for D)和(for G)
對(duì)于訓(xùn)練的每一輪:
第一部分 學(xué)習(xí)優(yōu)化判別器D:
-
從采樣
-
從 采樣
-
通過(guò)生成器 獲得生成樣本
-
梯度下降更新來(lái)最大化 :
:
注:以上第一部分可以重復(fù)多次:此過(guò)程本質(zhì)上是在測(cè)量?jī)煞植贾g的JS散度
第二部分 學(xué)習(xí)優(yōu)化生成器G:
- 再?gòu)?img src="http://file1.elecfans.com/web2/M00/81/D7/wKgaomQTyYKAF5b1AAAHD9c90W4110.jpg" alt="圖片" />采樣另一組
- 梯度下降更新來(lái)最小化 : : .實(shí)際上第一項(xiàng)與G無(wú)關(guān),梯度下降只需最小化即可。
注:以上過(guò)程僅一次
最后的話(huà):
其實(shí)在GAN之前,就已經(jīng)有Auto-Encoder,VAE這樣的方法來(lái)使用神經(jīng)網(wǎng)絡(luò)做生成式任務(wù)了。
GAN的最大的創(chuàng)新就是在于非常精妙地引入了判別器,從樣本的維度解決了衡量?jī)蓚€(gè)分布差異的問(wèn)題。
這種生成器和判別器對(duì)抗學(xué)習(xí)的模式,也必將在各種生成式任務(wù)中發(fā)揮其巨大的威力。
-
GaN
+關(guān)注
關(guān)注
19文章
1910瀏覽量
72755 -
生成器
+關(guān)注
關(guān)注
7文章
313瀏覽量
20957 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5471瀏覽量
120903
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論