李宏毅《GAN Lecture》學習筆記6 - WGAN和EBGAN

GAN的提升方法

本節主要介紹對GAN的改進方法~

Wasserstein GAN(WGAN)

JS Divergence並不適用!爲什麼這樣說?下面給出解釋~

在很多情況下,Pg和Pdata是沒有重合的。原因有兩個:

  1. 數據本身的特性決定的,地位空間的數據在高維空間的manifold,所以,能夠出現重疊的地方,幾乎可以忽略;
  2. 採樣問題,訓練過程中,其實是隨機採樣,而採樣的數量相對於分佈,可以說是微乎其微,能夠有重合的比例也是小的可以忽略不計。(個人覺得這個理由更合理一些~)
    在這裏插入圖片描述
    對於沒有重合的情況下,JS divergence的值都是log2。所以,下面不同分佈,在沒有重合前,都是log2。這樣,就沒法判斷誰好誰壞了。
    在這裏插入圖片描述
    對原始GAN 的改進方法之一:在訓練Discriminator的時候,使用linear function代替sigmoid。
    在這裏插入圖片描述
    左下的圖是原始的GAN中binary classifier的sigmoid,由於兩邊的梯度幾乎爲0,所以,根據梯度調整,幾乎就無法移動。

另一種現在比較常用的改進方法:WGAN
定義Wasserstein Distance如下,類比的例子就是推土機移動P到Q。
在這裏插入圖片描述
挪動方法會有多種,那麼,最小的平均距離就是Wasserstein Distance.
在這裏插入圖片描述
更準確的數學定義如下:
在這裏插入圖片描述
Wasserstein Distance與JSD的差異
在這裏插入圖片描述

下面看看具體的數學定義

其中,目標函數有些變化:(1)期望函數只是D;(2)D需要符合1-Lipschitz 約束條件
在這裏插入圖片描述
在D沒有約束的情況下,D會使得real data的值越來越大,使得generated data越來越小。

在WGAN的原論文中,使用weight clipping的方法來實現1-Lipschitz約束,不過,這種方式是沒有用的。
在這裏插入圖片描述
後來,有了利用Gradient Penalty來等價實現1-Lipschitz約束。
使用的方法也就是下面WGAN-GP中介紹的方法,相應的論文:
https://arxiv.org/abs/1704.00028
在這裏插入圖片描述
給目標函數增加了一個正則項,用於完成1-Lipschitz約束。

這裏,有一個問題,Ppenalty是怎麼抽樣的呢?
從Pdata和Pg中各選一個點,在兩者連線上選取一個點,作爲Ppenalty的抽樣。
在這裏插入圖片描述
在實現過程中,稍微有些差異。
在這裏插入圖片描述
WGAN的算法:
在這裏插入圖片描述

Energe-based GAN(EBGAN)

其中,Discriminator是用autoencoder實現的。
這種GAN 的好處是訓練D的時候,不需要使用generated examples,直接使用真實的image即可。而且,初始時,D的能力比較強大,所以,G的生成過程中,纔開始就會有較爲清晰的圖像生成。
在這裏插入圖片描述
爲了控制D,不要將generated example判斷的分值過於小,引入了margin的概率,只要分值小於margin即可,不要再小了。
在這裏插入圖片描述

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