GAN的數(shù)學(xué)推導(dǎo)和案例應(yīng)用

本章涉及到的知識點(diǎn)清單:

1、數(shù)學(xué)期望的定義

2、KL散度的定義

3、零和博弈

4、GAN的工作原理

5、GAN的目標(biāo)函數(shù)

6、求解D的最優(yōu)解

7、反求解G使得G和D的概率分布差異最小

8、案例之GAN實(shí)現(xiàn)擬合二次函數(shù)

在推導(dǎo)GAN公式之前,需要預(yù)備一些數(shù)學(xué)期望和KL散度的知識點(diǎn)

一、數(shù)學(xué)期望的定義

期望:在概率論中,將實(shí)驗(yàn)中每次可能產(chǎn)生的結(jié)果的概率乘以其結(jié)果的總和,反映隨機(jī)變量平均取值的大小。根據(jù)其隨機(jī)變量的取值范圍不同,分為離散型和連續(xù)型

對于連續(xù)型隨機(jī)變量x,其概率密度函數(shù)為f(x),則X的數(shù)學(xué)期望E(x)可以表示成微積分的形式

連續(xù)型期望

二、KL散度的定義

KL散度:在信息論中,用生成的概率分布Q來擬合逼近真實(shí)的概率分布P時(shí),所產(chǎn)生的信息損耗,即描述兩個概率分布的差異,其本身是非對稱的

設(shè)x是連續(xù)型隨機(jī)變量,其真實(shí)概率分布為P(x),擬合分布概率為Q(x),則P對Q的KL散度為

P對Q的KL散度

三、零和博弈

GAN被稱為對抗式神經(jīng)網(wǎng)絡(luò),啟發(fā)自博弈論中的二人零和博弈

零和博弈:指參與博弈的雙方,在嚴(yán)格的競爭下,一方的收益必然意味著另一方的損失,博弈過程中,雙方的各自收益和損失的相加總和永遠(yuǎn)為零,雙方完全不存在合作的可能。就好比下棋一樣,你和對手的每一步棋都是向著自己最有利的方向走,最終只有一方贏一方輸,而下棋的總成績永遠(yuǎn)為零

顯然,GAN也是由博弈雙方組成,分別為生成網(wǎng)絡(luò)G(Generator)和判別網(wǎng)絡(luò)D(Discriminator)

四、GAN的工作原理

GAN的工作過程

上圖中,x是真實(shí)數(shù)據(jù),Pdata(x)是x的概率分布,z是噪點(diǎn)數(shù)據(jù),P(z)是z的概率分布,其工作過程為:

(1):從噪聲z進(jìn)行隨機(jī)抽樣,傳入G網(wǎng)絡(luò),生成新數(shù)據(jù)G(z)和其概率分布Pg(G(z))

(2):將真實(shí)數(shù)據(jù)和G生成的新數(shù)據(jù)一起傳入D網(wǎng)絡(luò)進(jìn)行真假判別,通過sigmoid函數(shù)來輸出判定類別

(3):迭代優(yōu)化D和G損失函數(shù),根據(jù)D來調(diào)整G

(4):直到D和G達(dá)到收斂,即D無法判斷G產(chǎn)生數(shù)據(jù)的真假性,即Pg(G(z))已經(jīng)非常逼近Pdata(x)

至此,我們可以抽象看出GAN的目的,將隨機(jī)噪聲z通過G網(wǎng)絡(luò)得到一個和真實(shí)數(shù)據(jù)分布Pdata(x)差不多的生成分布Pg(G(z)),這個過程就是G和D相互博弈的過程

五、GAN的目標(biāo)函數(shù)

定義GAN的目標(biāo)函數(shù)為V(G,D),在博弈過程中,G希望減少V的值讓自己生成的分布無法識別,而D希望增大V的值讓自己可以高效的判別出數(shù)據(jù)的真假類別,則V(G,D)的表達(dá)式為

目標(biāo)函數(shù)

其中E表示真實(shí)數(shù)據(jù)x和噪點(diǎn)數(shù)據(jù)z的數(shù)學(xué)期望

G網(wǎng)絡(luò)是一個生成器,可以是全連接神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等等,通過噪點(diǎn)分布P(z),一般是高斯分布,得到一個生成數(shù)據(jù)的分布Pg(x),我們希望Pg(x)非??拷黀data(x),來擬合逼近真實(shí)分布

D網(wǎng)絡(luò)是一個判別函數(shù),需要解決傳統(tǒng)的二分類問題,其職責(zé)就是有效的區(qū)分真實(shí)分布和生成分布,即衡量Pg(x)和Pdata(x)之間的差距,并通過反復(fù)的迭代訓(xùn)練

六、求解D的最優(yōu)解

從目標(biāo)函數(shù)出發(fā),由于V是連續(xù)的,我們將V寫成微積分的形式來表示期望

目標(biāo)函數(shù)的積分形式1

設(shè)G(z)生成的數(shù)據(jù)是x,分別求出噪點(diǎn)z和噪點(diǎn)的微分dz表達(dá)式

z和dz關(guān)于x的表達(dá)式

帶入z和dz,可以得到

目標(biāo)函數(shù)的積分形式2

我們定義Pg(x)表示z的生成分布,則

生成分布Pg(x)

帶入目標(biāo)函數(shù)可得

目標(biāo)函數(shù)的積分形式3

現(xiàn)在要求V(D,G)關(guān)于D的最大值,則固定G來求D的偏導(dǎo)數(shù)

求解D的最大值

七、反求解G使得G和D的概率分布差異最小

從D(x)的最優(yōu)解D*(X)的表達(dá)式可以看到,我們期望當(dāng)G產(chǎn)生出來的擬合分布和真實(shí)分布一致時(shí),即

擬合分布和真實(shí)分布一致

在這個條件下,D*(x)=1/2,即此時(shí)D網(wǎng)絡(luò)已經(jīng)無法直接分辨出G產(chǎn)生出來的數(shù)據(jù)的真假性了

那么當(dāng)D滿足最優(yōu)解后,此時(shí)的G的解是什么呢?我們只需要帶入D*(x)反過來求解G即可

帶入D*(x)求出C(G)積分式

我們對上述積分表達(dá)式進(jìn)行等效處理,在log里面的分式上,分子分母同時(shí)除以2(分式不變原理),然后保持分母不變,將分子的1/2利用對數(shù)的乘法原理提到外面,則上式可以等效變形為

等效變化C(G)積分式

我們引入連續(xù)函數(shù)的KL散度將上式積分式整理成散度表達(dá)式

C(G)散度表達(dá)式

根據(jù)KL散度的定義,當(dāng)擬合分布Pg(x)完全等于真實(shí)分布Pdata(x)時(shí),KL=0,所以G網(wǎng)絡(luò)的最小值是-log4

由此證明了當(dāng)D網(wǎng)絡(luò)逼近其最優(yōu)解的同時(shí),G網(wǎng)絡(luò)也無限逼近其最小值

八、案例之GAN實(shí)現(xiàn)擬合二次函數(shù)

有G網(wǎng)絡(luò)和D網(wǎng)絡(luò)的意義,我們編寫如下代碼來擬合二次函數(shù),其中G網(wǎng)絡(luò)只是一個全連接網(wǎng)絡(luò),利用梯度下降來反向傳播更新其權(quán)重

G網(wǎng)絡(luò)和D網(wǎng)絡(luò)

迭代5000次后的博弈結(jié)果為

訓(xùn)練開始的生成分布
訓(xùn)練結(jié)束的生成分布

從結(jié)果上可以看到,G網(wǎng)絡(luò)生成的分布(綠色)已經(jīng)非常逼近真實(shí)分布(藍(lán)色),且D網(wǎng)絡(luò)的判別能力逼近50%,G網(wǎng)絡(luò)的最優(yōu)值逼近-log4=1.38629達(dá)到了很好的收斂效果

案例代碼見:GAN擬合二次函數(shù)案例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容