論文札記之-GenerativeAdversarialNets

name真難起a發表於2017-01-27
值此歲末之際,又逢DL浪潮之巔,深覺應該整理下看過的一些 papers,寫寫自己粗鄙的見解,第一篇就從目前熱門的 GAN 開始吧

摘要
    GAN 是一個框架 ,有兩個 model,一個是用於刻畫資料分佈的生成式模型 G ; 另一個是判別模型 D ,用於判斷資料是從 G 生成的還是從訓練樣本中取樣的。理所應當的, G 模型要讓 D 模型相信資料是從自身產生的,因此目標就是 “maximize the probability of D making a mistake” 。作為一個判別模型,D 的目標更明確,就是讓模型的判別誤差最小。所以,GAN 框架就是一個 minmax two-player game。模型就是函式,對於任意函式 G 、 D , 在 G 覆蓋所有的訓練資料的情況下,並且 D = 1/2 的時候,minmax 目標函式存在唯一解。也就是說 GAN 的最優化的目標是讓判別模型 D 失去了分類能力,證明過程不復雜,稍後分解。Goodfellow 稱,我的框架很給力,不需要馬爾科夫鏈、近似推斷等方法,只需要兩個 MLP 加上 bp , Mission Success !

框架

   為了能夠直觀的看出 GAN 的框架,摳一張圖來說明下。

     框架

    左邊就是沒有加入對抗的訓練過程,判別模型 D 希望能幹儘量擬合訓練資料的分佈。右邊就是加入了對抗 G 的訓練過程,G 學習 加入 noise z 後的資料分佈,x = G( z; theta(G) ) 讓 D 判別 x 的來源,有了一個框架圖,是不是 so easy 呢。

優化目標
再來看看 GAN 的目標函式是啥,繼續截圖。。。
優化目標
訓練方式,其實訓練 D 就類似於最大似然的過程,用於估計 P ( Y = y | x ) , Y 表示 x 的來源,由於單獨訓練 D 會導致過擬合,因此採取 k 個 batch 訓練 D, 一個 batch 訓練 G,具體過程如下:

  1. 分 k 個 batch, 每個 batch 從 pg 分佈中取樣 { z1, z2, z3, … , zm } , 從 pdata 分佈中取樣 { x1, x2, x3, .., xm }, pdata 反應訓練資料的分佈,pg 是訓練資料加入噪音後的分佈固定 G, 對 目標函式進行梯度下降,更新 D 的引數
  2. k 個 batch 訓練完成後,再從 pg 中取一個 batch , { z1, z2, z3, … , zm },更新 G 的引數,G 目標是最小化 log(1-D(G(z))) , 也可以看成最大化 log(D(G(z)))

                
收斂證明
剛才說到 min max 目標函式的收斂問題,也就是證明這個公式的收斂下界,首先,固定 G, 先找到 Dmax 為 D’ , 利用 D` , 求 G 。那 Dmax 是啥呢?
先丟擲結論
             D的max
證明,先把
優化目標
展開,得到
             展開
由於,y -> alog( y) + blog(1 – y ) 在 [0,1] 取得最大值為 a/a+b .
所以,將 pdata 視為a,pg 視為 b , D(x) 的最大值為 pdata / pdata + pg ; 因此 V(G, D) 變成了 C(G),下一步是求 min C(G)
   minG
再次丟擲結論,C(G) 當且僅當 pg = pdata 的時候取得唯一解 -log4 。怎麼證明 ?
將 C(G) 結合 KL 離散度進行變換,得到
           add KL
再由 KL 離散度變為 Jensen–Shannon 離散度
         jensen-shannon
由於 兩個概率分佈的 Jensen–Shannon 離散度總是非負的,當兩個分佈相同的時候為0,所以呢 ,當 pg = pdata 的時候 C(G) 取得最小值,為 -log4,也就是文章開始說的 minmax 的唯一解。
到此,證明過程就結束了。

總結
    推導完之後,也大概能夠發現,在 GAN 框架的訓練過程中 D model 是變得越來約弱的,從最後的收斂條件也能夠看出來,D = 1/2 , 也就是說 D 徹底失去的分類能力。G model 才是最終需要的。
那麼,在一番訓練之後,我們到底從 G 模型中得到了什麼呢? 我理解是現實世界中的真實資料是遠多於訓練資料的,通過訓練資料直接學習出來的生成模型在真實資料中的擬合結果存在gap,通過對抗學習的框架,
在訓練過程中不斷加入干擾,用於模擬真實資料,同時用一個判別模型進行判斷真偽,從而使得生成模型泛化能力更強。當然還是有很多限制條件的,比如 G 必須是可導的,z 的維度一般要高於 x ; etc .
    最後,本文到此結束,果然不出所料的水,能有興趣看到這裡的也不多了。。。

References

[Goodfellow and others 2014] Goodfellow, I., et al. Generative adversarial nets. In NIPS, 2672–2680

[Goodfellow, Bengio, and Courville 2016] Goodfellow, I.;Bengio, Y.; and Courville, A. 2016. Deep learning. 2015.


相關文章