理解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如何直觀理解公式
- 首先爲什麼不用傳統機器學習的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;
注:對於log函數,在(0,1]上獲得的最大值就是0;
2.3分析GAN公式細節——min部分
我們希望得到最小的V,對於G(贗品師,以下都簡稱G)
對於王牌生成器G
- 面對噪聲z分佈的數據可以產生很難分辨的G(x)
我們希望 D(G(z)) 會被誤認爲真品,所以D(G(z)) -> 1,以至於
使得代價函數V趨近於最小值。
2.4分佈
抽象的理解是:真實圖片是一種複合某一分佈的數據。每一個真實圖片都可能符合Pdata分佈。
虛假的圖片:來自於複合噪聲分佈的數據所創建出來。每一個噪聲數據都可能符合Pz分佈。
2.5期望
數學中最常見的求最值得手段就是期望
所以
結合上述兩個式子,目標是將G(z)->x ;生成得G(z)能夠符合x原畫的分佈。
3總結
- 一步一步創建一個discriminator(D) & generator(G)
- D的目標師最好的區分real and fake Image
- 綜上所述我們能得到一個近似的全局最優解是 Pg的分佈會逐漸趨近Pdata分佈。