天天看點

從WGAN到WGAN-GP

WGAN是GAN(對抗生成網絡)的一種,在 WGAN 中,D 的任務不再是盡力區分生成樣本與真實樣本,而是盡量拟合出樣本間的 Wasserstein 距離,從分類任務轉化成回歸任務。而 G 的任務則變成了盡力縮短樣本間的 Wasserstein 距離。

故 WGAN 對原始 GAN 做出了如下改變:

  • D 的最後一層取消 sigmoid
  • D 的 w 取值限制在 [-c,c] 區間内。
  • 使用 RMSProp 或 SGD 并以較低的學習率進行優化 (論文作者在實驗中得出的 trick)
  • weight clipping存在的問題

  • 第一個問題: 在WGAN的loss 中,如果是任由weight clipping去獨立的限制網絡參數的取值範圍,有一種可能是大多數網絡權重參數會集中在最大值和最小值附近而并不是一個比較好的連續分布,論文的作者通過實驗也确實發現是這樣一種情況。這毫無疑問帶來的結果就是使得discriminator更傾向于拟合一種簡單的描述函數,這種函數的泛化能力以及判斷能力毫無疑問是非常弱的,那麼經過這種discriminator回傳的梯度資訊的品質也是很差的
  • 第二個問題: weight clipping的處理很容易導緻梯度消失或者梯度爆炸,因為discriminator雖然相對于generator來說結構較為簡單,但其實也是一個多層結構,如果weight clipping的限制比較小的話,那麼經過每一層網絡,梯度都會變小,多層之後的情況就類似于一個指數衰減了,這樣得到的結果就會導緻梯度消失,反之則是梯度爆炸,這實際上weight clipping的設定就非常的微妙了。下圖是論文作者實驗所得結果,确實可以觀察到在未使用gradient penalty之前,權重集中于clipping的兩端
  • WGAN-GP論文改進:

  • WGAN(Wasserstein GAN)在訓練穩定性上有極大的進步,但是在某些設定下任然存在生成低品質的樣本,或者是不能收斂的問題。蒙特利爾大學在WGAN的訓練上又有了新的進展。他們的論文的是《Improved Training of Wasserstein GANs》論文中提出使用gradient penalty的方式來進行自适應的權重修正。主要是将原有的discriminator 的權重clipping修改為gradient penalty
  • 使用注意事項:

  • 根據論文的描述,上述discriminator目标函數中的λ \lambdaλ推薦取10,作者在很多模型以及資料集上進行測試,推薦該數值較為合适
  • discriminator的結構中不引入batch normalization,因為這會引入通過batch中不同樣本的依賴關系,論文經過測試推薦使用layer normalization
  • 論文推薦最好将梯度歸一化到1,也就是做一個歸一化過程,這被論文稱之為two-sided penalty,作者指出這樣做會有一定的提高

繼續閱讀