天天看點

【GANs學習筆記】(八)WGAN

完整筆記:http://www.gwylab.com/note-gans.html

———————————————————————

5. WGAN

WGAN的全稱是WassersteinGAN,它提出了用Wasserstein距離(也稱EM距離)去取代JS距離,這樣能更好的衡量兩個分布之間的divergence。我們先介紹一下什麼是EM距離。

5.1 EM距離

EM距離的全稱是EarthMover(推土距離),它的定義非常直覺:假設有兩堆資料分布P和Q,看作兩堆土,現在把P這堆土推成Q這堆土所需要的最少的距離就是EM距離。

【GANs學習筆記】(八)WGAN

       假設P的分布是上圖棕色柱塊區域,Q的分布是上圖綠色柱塊區域,現在需要把P的分布推成Q的分布,我們可以制定出很多不同的MovingPlan(推土計劃)。

【GANs學習筆記】(八)WGAN

       這些不同的推土計劃都能把分布P變成分布Q,但是它們所要走的平均推土距離是不一樣的,我們最終選取最小的平均推土距離值作為EM距離。例如上面這個例子的EM距離就是下面這個推土方案對應的值。

【GANs學習筆記】(八)WGAN

       那為了更好地表示這個推土問題,我們可以把每一個moving plan轉化為一個矩陣圖:

【GANs學習筆記】(八)WGAN

       每一個色塊表示P分布到Q分布需要配置設定的土量(移動距離),那每一行的色塊之和就是P分布該行位置的柱高度,每一列的色塊之和就是Q分布該列位置的柱高度。于是我們的求解目标表達式就如下所示:

【GANs學習筆記】(八)WGAN

       表達式中γ函數計算目前計劃下

【GANs學習筆記】(八)WGAN

【GANs學習筆記】(八)WGAN

的推土量,||

【GANs學習筆記】(八)WGAN

-

【GANs學習筆記】(八)WGAN

||表示二者間的推土距離。

       那如果這個時候我們想直接求解這個表達式的話,是非常麻煩的,因為需要窮舉所有的moving plan然後再選擇其最小值。如果我們對之前的理論有印象的話,我們會想到這個optimization problem依然可以交給discriminator來解決。

       于是接下來要做的,就是去改discriminator,讓它能夠衡量

【GANs學習筆記】(八)WGAN

【GANs學習筆記】(八)WGAN

之間的wasserstein距離。

5.2 WGAN

下面我們直接給出WGAN的Discriminator的目标表達式:

【GANs學習筆記】(八)WGAN

       這個表達式的求解結果就是

【GANs學習筆記】(八)WGAN

【GANs學習筆記】(八)WGAN

之間的wasserstein距離。至于為什麼會等于Was距離,詳細證明請參閱WGAN paper附錄當中的證明部分,因為過于繁瑣,在此就不贅述(逃)。反正目前我們構造出了求解was距離的discriminator。

關于這個表達式,值得注意的是,D被加上了1-Lipschitz function(如下圖)的限制。

【GANs學習筆記】(八)WGAN

先說明一下,為什麼要對discriminator做限制。傳統GANs的discriminator輸出的結果是在(0,1)區間之内,但是在WGAN中輸出的結果是was距離,was距離是沒有上下界的,這意味着,随着訓練進行,

【GANs學習筆記】(八)WGAN

的was值會越來越小,

【GANs學習筆記】(八)WGAN

的was值會越來越大,discriminator将永遠無法收斂。

【GANs學習筆記】(八)WGAN

       是以,為了解決這個問題,我們需要給discriminator加上一些限制,讓

【GANs學習筆記】(八)WGAN

不會持續地一直降低,讓

【GANs學習筆記】(八)WGAN

也不會持續地一直升高,簡言之,就是讓D函數變得更平滑一些。

但是我們知道,一般的神經網絡的訓練,參數都是沒有限制的,而現在我們希望給discriminator的參數增加一些限制,其實是不太好做的。

       在最原始的WGAN中,采用的做法是weight clipping,很簡單,設定一個上限c與下限-c,如果更新參數w大于c,改成w=c;如果更新參數w小于-c,改成w=-c。這樣D在

【GANs學習筆記】(八)WGAN

【GANs學習筆記】(八)WGAN

處的值就不會被無限拉遠。但是這個方法并沒有讓D真的限制在1-Lipschitz function内,是以原始的WGAN并沒有嚴格地給出was距離計算方法。

       直到後來,直到WGAN的增強版WGAN-GP,以及SNGAN被提出,才解決了這個問題。