首頁(yè)技術(shù)文章正文

GAN中判別器與極大似然估計(jì)的關(guān)聯(lián)

更新時(shí)間:2018-12-13 來(lái)源:黑馬程序員 瀏覽量:

在GAN中,對(duì)于判別器D來(lái)說(shuō),實(shí)際上就是一個(gè)普通的二分類問(wèn)題。

根據(jù)文章《交叉熵,KL散度以及多分類問(wèn)題下的極大似然估計(jì)》當(dāng)中的思考,對(duì)于二分類問(wèn)題的極大似然估計(jì),有如下式子成立:

L(X,Y,θ)=∫x∫yp(x,y)logq(y|x)dydx=∫p(x)[p(yi=1|xi)logq(yi=1|xi)+p(yi=0|xi)logq(yi=0|xi)]dx
L(X,Y,θ)=∫x∫yp(x,y)log?q(y|x)dydx=∫p(x)[p(yi=1|xi)log?q(yi=1|xi)+p(yi=0|xi)log?q(yi=0|xi)]dx
那么,將上式的最后一步重新寫成聯(lián)合概率的形式,有 
L(X,Y,θ)=∫[p(x,y=1)logq(y=1|x)+p(x,y=0)logq(y=0|x)]dx=∫[p(x,y=1)logq(y=1|x)+p(x,y=0)logq(y=0|x)]dx
L(X,Y,θ)=∫[p(x,y=1)log?q(y=1|x)+p(x,y=0)log?q(y=0|x)]dx=∫[p(x,y=1)log?q(y=1|x)+p(x,y=0)log?q(y=0|x)]dx
對(duì)應(yīng)到GAN中來(lái),D分類器要做的就是給定一個(gè)x,需要判斷這個(gè)樣本x是屬于real data還是generated data,如果我們把屬于real data當(dāng)作y=1,generated data當(dāng)作y=0,那么便有 
L(X,Y,θ)=∫[p(x,y=1)logq(y=1|x)+p(x,y=0)logq(y=0|x)]dx=∫[p(x∈real)logq(y=1|x)+p(x∈fake)logq(y=0|x)]dx=∫pr(x)logq(y=1|x)dx+∫pg(x)logq(y=0|x)]dx=∫pr(x)logD(x)dx+∫pg(x)log(1?D(x))dx=Epr(x)[log(D(x))]+Epg(x)[log(1?D(x))]
L(X,Y,θ)=∫[p(x,y=1)log?q(y=1|x)+p(x,y=0)log?q(y=0|x)]dx=∫[p(x∈real)log?q(y=1|x)+p(x∈fake)log?q(y=0|x)]dx=∫pr(x)log?q(y=1|x)dx+∫pg(x)log?q(y=0|x)]dx=∫pr(x)log?D(x)dx+∫pg(x)log?(1?D(x))dx=Epr(x)[log?(D(x))]+Epg(x)[log?(1?D(x))]
判別器
判別器作為一個(gè)二分類器,其目標(biāo)函數(shù)是極大似然估計(jì),那么當(dāng)D(x)取什么值的時(shí)候,似然函數(shù)達(dá)到最大值呢?因?yàn)橛?nbsp;
L(D)=∫[pr(x)logD(x)+pg(x)log(1?D(x))]dx
L(D)=∫[pr(x)log?D(x)+pg(x)log?(1?D(x))]dx

從積分的微觀角度來(lái)解決這個(gè)問(wèn)題的話,實(shí)際上這個(gè)式子可以變形為 
L(D)=∑i=1N[pr(xi)logD(xi)+pg(xi)log(1?D(xi))]Δx=∑i=1Nf(D(xi))Δx
L(D)=∑i=1N[pr(xi)log?D(xi)+pg(xi)log?(1?D(xi))]Δx=∑i=1Nf(D(xi))Δx

其中,有兩個(gè)點(diǎn):
Δx=|x|NΔx=|x|N,意思是說(shuō)把x的定義域等分成N份
xi+1=xi+Δxxi+1=xi+Δx
由于對(duì)所有的采樣點(diǎn)xixi來(lái)說(shuō),ΔxΔx都相同的,因此如果能夠使得求和里面的每一項(xiàng)f(D)都能夠達(dá)到最大值,那么自然就取得了L(D)的最大值。而f(D)的最大值可以通過(guò)對(duì)D求導(dǎo)獲得:

?f(D)?D=pr(x)?D(x)(pr(x)+pg(x))D(x)(1?D(x))
?f(D)?D=pr(x)?D(x)(pr(x)+pg(x))D(x)(1?D(x))

令導(dǎo)數(shù)為0,可以求得能夠使得似然函數(shù)最大的最優(yōu)判別器為:
D?(x)=pr(x)pr(x)+pg(x)
D?(x)=pr(x)pr(x)+pg(x)
幾個(gè)概率的思考
這里的思考主要來(lái)自于上面的式子。

概率p(y=1|x)p(y=1|x)的分布
在GAN中,給定一個(gè)樣本x,它有可能來(lái)自于真實(shí)的數(shù)據(jù),即x~pr(x)x~pr(x),也有可能來(lái)自于生成的假的數(shù)據(jù)分布,即x~pg(x)x~pg(x),而這兩個(gè)分布可能存在重疊區(qū)域,也有可能存在不重疊的區(qū)域 
- 在重疊區(qū)域概率分布p(y=1|x)p(y=1|x)為一個(gè)0到1的某個(gè)數(shù) 
- 在不重疊區(qū)域分為兩種情況:一種是只有真實(shí)數(shù)據(jù)樣本的分布,那么p(y=1|x)=1p(y=1|x)=1;另一種是只有生成數(shù)據(jù)樣本的分布,那么p(y=1|x)=0p(y=1|x)=0 
- 假如在一維的x軸上,從左側(cè)到右側(cè)依次是:只有真實(shí)數(shù)據(jù)分布,有重疊區(qū)域,只有生成數(shù)據(jù)分布,那么p(y=1|x)p(y=1|x)的形狀便是從左側(cè)到右側(cè)依次是:恒等于1,根據(jù)實(shí)際數(shù)據(jù)情況而波動(dòng),恒等于0

各個(gè)概率之間的關(guān)系
有這幾種概率 
- p(y=1|x)p(y=1|x),上面已經(jīng)討論過(guò)了 
- p(x,y=1)p(x,y=1),它實(shí)際上等于pr(x)pr(x),也就是真實(shí)數(shù)據(jù)的分布 
- p(x|y=1)=p(x,y=1)p(y=1)p(x|y=1)=p(x,y=1)p(y=1)
這些概率之間的關(guān)系,可以參考之前思考過(guò)的二維高斯分布的情況。

作者:黑馬程序員云計(jì)算大數(shù)據(jù)培訓(xùn)學(xué)院
首發(fā):http://cloud.itheima.com/


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!