直觀理解GAN公式含義,直擊靈魂

理解GAN的基本思想

1.GAN是幹什麼的

GAN於2014年Goodfellow提出,提出的出發點&創新點是:

①我們能不能通過深度學習生成圖片?

我們通過Generative Adversarial Network [對抗生成網絡]生成圖片。GAN的類型 是一種“方法論”而不是網絡結構 ,既可以用於與NN結合,也可以與CNN結合。

②如何解決?

生成器:Generatior

決策器:Discriminator

理解這兩個結構有助於後面的公式推導,也就是說:

  • G負責從某種分佈的噪音中生成一幅圖片,做爲fake image,生成的越“真”越好。

  • D負責監測/評價G生成的fake image,判斷生成樣本Real or Fake。
    在這裏插入圖片描述

2.理解GAN的價值函數

2.1如何直觀理解公式

minGmaxDV(D,G)=ExPdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))] \min_{G}\max_{D}V(D,G) = E_{x-P_{data}(x)}[logD(x)] +E_{z-p_{z}(z)}[log(1-D(G(z)))]

  • 首先爲什麼不用傳統機器學習的Loss function而使用V(D, G)?

Value Function【價值函數】這個概念來自於強化學習(Reinforcement Learning),這裏不多說,簡而言之它的意思是:在狀態t下通過觀測自己的狀態而做出一個決策,這個決策使得t+1時刻進入新的狀態,而這種轉移帶來的收益記作Reward(R1, R2, R3…Rt)。狀態結束時我們希望Value Function收益最大。

  • 理解價值函數Value Function

這裏說一個形象的小故事。

小天家祖傳三代鑑賞師,從小家裏就培養他接觸家族事業——成爲最偉大的Discriminator。從他還不會說話的時候就讓他學習鑑賞,大量瀏覽贗品於真跡,未來的生活裏,他鑑別成功的次數越多,他賺的錢就越多,Reward越多。這是小天家的理念。

小華家祖傳三代仿製大師,一生坑人無數,從小家裏就培養他接觸家族手藝,成爲偉大的——Generator。從還不會走路就開始學習製作仿品,未來的生活中,製作的仿品一旦被發現就要坐牢甚至被追殺,富貴險中求,越少被拆穿,Reward越多,這是小華家的理念。

**GAN就是爲了生成以假亂真的樣品,如果我們頂級的Discriminator都鑑別不出Generator生成的Fake Image,那麼纔算成功的GAN。**所以這裏用Value Function 表示目的是爲了獲取最大收益就可以形象的理解了

2.2分析GAN公式細節——max部分

補充:公式中的 x 表是真品; z 表示噪聲;D(x)表示真品概率;G(z)表示通過噪聲生成的贗品;

我們希望得到最大的V,對於D(鑑別師,以下都簡稱D):

對於王牌判別器D

  • 面對符合真品分佈的x數據,我們希望D(x)能夠趨近於1;

  • 面對造假生成的贗品G(z)數據,我們希望D(G(z))趨近於0;

f(n){D(x)>1D(G(x))>0=>{log(D(x))>0log(1D(G(x)))>0 f(n) \begin{cases} D(x) &->&1\\ D(G(x))&->&0 \end{cases} => \begin{cases} log(D(x)) &->&0\\ log( 1-D(G(x)) ) &->&0 \end{cases}

注:對於log函數,在(0,1]上獲得的最大值就是0;

2.3分析GAN公式細節——min部分

我們希望得到最小的V,對於G(贗品師,以下都簡稱G)

對於王牌生成器G

  • 面對噪聲z分佈的數據可以產生很難分辨的G(x)

我們希望 D(G(z)) 會被誤認爲真品,所以D(G(z)) -> 1,以至於
log(1D(G(z)))  >   log(1-D(G(z))) \ \ -> \ \ -\infty
使得代價函數V趨近於最小值。

2.4分佈

抽象的理解是:真實圖片是一種複合某一分佈的數據。每一個真實圖片都可能符合Pdata分佈。

虛假的圖片:來自於複合噪聲分佈的數據所創建出來。每一個噪聲數據都可能符合Pz分佈。

2.5期望

數學中最常見的求最值得手段就是期望
E(x)=xf(x) E(x) = \int_{-\infty}^\infty xf(x)
所以
ExPdata(x)[logD(x)]=xPdata(x)logD(x)dx E_{x-P_{data}(x)}[logD(x)]=\int_{x} P_{data}(x)*logD(x)dx

ExPz(x)[log(1D(G(z)))]=xPz(z)logD(z)dz E_{x-P_{z}(x)}[log(1-D(G(z)))]=\int_{x} P_{z}(z)*logD(z)dz

結合上述兩個式子,目標是將G(z)->x ;生成得G(z)能夠符合x原畫的分佈。
V=x[Pdata(x)logD(x)+Pg(x)log(1D(x))]dx V =\int_{x} [P_{data}(x)*logD(x) + P_{g(x)}log(1-D(x))] dx

3總結

minGmaxDV(D,G)=ExPdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))] \min_{G}\max_{D}V(D,G) = E_{x-P_{data}(x)}[logD(x)] +E_{z-p_{z}(z)}[log(1-D(G(z)))]

  • 一步一步創建一個discriminator(D) & generator(G)
  • D的目標師最好的區分real and fake Image
  • 綜上所述我們能得到一個近似的全局最優解是 Pg的分佈會逐漸趨近Pdata分佈。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章