神經網絡——(GAN之二)

1. GAN的理論

在圖片生成過程中,我們的目標其實是存在一定的分佈的,假設在整個圖像空間中,藍色部分的點可以生成人臉,其他區域的臉則不能生成人臉。那麼,我們的目的是尋找藍色區域的概率密度函數
在這裏插入圖片描述

1.1 最大似然估計與GAN在這裏插入圖片描述

一般的思路是:我們通過sample數據集,去估計給定數據(輸入數據)的分佈,記爲Pdata(x)P_{data}(x),因此,使用網絡的目的是,找到一堆參數GG所構成的分佈PG(x;θ)P_{G}(x;\theta)Pdata(x)P_{data}(x)越接近越好。

那麼,使用最大似然估計即爲:
L=i=1mPG(xi,θ) L = \prod_{i=1}^{m}P_G(x^i,\theta)
在這裏插入圖片描述
然後我們在後面減一項,該項與PG(x;θ)P_G(x;\theta)沒有關係,就變成下面這個式子,就可以整理成KL Divergence的形式。
在這裏插入圖片描述
而Generator的作用就是,將輸入映射成各種形狀的分佈。
在這裏插入圖片描述
那麼,在不知道PGP_GPdataP_{data}的情況下,怎麼樣去解這個式子呢?
在這裏插入圖片描述
在這裏插入圖片描述

那麼Discriminator的作用是什麼呢?其實就是衡量PGP_GPdataP_{data}的差別有多大,然後就其實是一個分類的函數

在這裏插入圖片描述
然後得到的最佳的值,其實就是一個JS Divergence的解。當生成數據與原始數據差距很大時,D可以輕易的分辨出來,否則的話,D很難分辨出來。

在這裏插入圖片描述

1.2 數學推導

在這裏插入圖片描述
考慮到sample 出來的每一個樣本都是獨立的,於是可以把這個積分拆開來計算,即要優化下面的式子:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
所以,現在問題就可以變成下面這個式子:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

G3是最好的選擇,因爲滿足arg minG\argmin_G要求藍色的線最小,而maxD\max_D代表紅色的點。
在這裏插入圖片描述
同理,對於L(G)L(G)也是一樣的。那麼,在第一次迭代之後,得到G0G_0之後,我們需要找到D0D_0^*使得V(G0,D)V(G_0,D)最大(對應圖中的紅點)。
在這裏插入圖片描述
然後當我們更新了GG變成G1G_1之後,我們需要重新找一個DD來滿足要求。但是這樣的有一個前提假設D0D1D_0^* \approx D_1^*

在訓練過程中要更新GG所以V(G,D)V(G,D)的分佈形狀也會發生改變,因此,V(G,D)V(G,D)GG的變化過程中不會發生太大的改變,也就是說,我們在訓練過程中,對於G,不能訓練的太多(不能讓他們的分佈形狀變化太多)而對於D來說,我們需要訓練到底,因爲我們要求最大值。
在這裏插入圖片描述
在這裏插入圖片描述

1.3 算法

D 最好能夠多train幾次,
在這裏插入圖片描述
G不能多train,否則的話找的divergence就不是原來D中對應的那個divergence。
在這裏插入圖片描述
在GAN的論文中提到,一開始,我們的優化目標應該是log(1D(G(zi)))\log(1-D(G(z^i))),但是考慮到他的趨勢一開始微分的結果非常小,所以在訓練的過程中會出現一些問題
在這裏插入圖片描述
於是,優化的目標函數就變成了相同趨勢的log(D(x))-\log(D(x))

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章