Wasserstein 生成對抗網路
Wasserstein GAN 改變了「真實分布與假分布之間的距離」之定義,以修正 GAN 最令人頭痛的症狀:梯度消失與毫無資訊的損失曲線。標準 GAN 實質上最小化 Jensen–Shannon 散度,而當真實與假的分布幾乎不重疊時(訓練早期很常見),它給不出有用的梯度。WGAN 改用推土機(Wasserstein-1)距離——直覺上,就是把一堆土(假分布)重塑成另一堆(真分布)所需的最小總「工作量」,其中工作量等於質量乘以移動距離。即使分布不重疊,這個距離仍平滑變化,因此生成器總能得到有用的梯度。
由 Kantorovich–Rubinstein 對偶性,Wasserstein-1 距離等於:在所有 1-Lipschitz 函數 f 上取上確界(supremum),其值為「對真實 x 取期望值的 f(x)」減去「對生成 x 取期望值的 f(x)」。WGAN 以一個神經評論者(critic)來參數化 f(不含 sigmoid,輸出無界的實數分數,而非機率)並最大化該差;生成器則最小化 E[f(G(z))] 的負值,亦即設法抬高評論者對贗品的分數。評論者必須是 1-Lipschitz(其輸出的變化不能快過其輸入)。原版 WGAN 以權重裁剪(weight clipping)粗略地強制此點——把權重夾在 [−c, c]——這既敏感又可能未能充分運用容量。
WGAN-GP(Gulrajani 等人,2017)以梯度懲罰更好地強制 Lipschitz 約束:加上一項 λ 乘以「(評論者輸入梯度的範數減 1)的平方」之期望值,在真實與假樣本之間直線上取樣的點處計算。好處相當可觀:訓練穩定得多(對架構與超參數較不敏感)、強力抵抗模式崩潰,以及——獨具用處的——一個有意義的品質訊號損失,因為隨著樣本變好,評論者對 Wasserstein 距離的估計會下降。實務上,每更新一次生成器,評論者會更新數次。請注意 WGAN-GP 與評論者中的批次正規化不相容(懲罰是逐樣本的),故應改用層正規化。
WGAN 並非萬靈丹——Lipschitz 約束只是近似地被強制、梯度懲罰增加計算量,而且 WGAN-GP 的 FID 未必優於一個調校良好、搭配頻譜正規化(另一種更便宜的限制 Lipschitz 常數之法)的非飽和 GAN。它真正持久的貢獻是那個原則:選一個能給出良好梯度與可讀損失的距離。