生成模型 損失函式改進之WGAN系列

2021-08-30 02:07:26 字數 1643 閱讀 7237

1)wgan 就是在 gan 的基礎上改進的比較成功的一種。wgan 利用 wasserstein 距離代替 js 距離,從而避免了一定的梯度消失問題,這也為很多 gan 模型的擴充套件提供了指導。

2)wgan-gp 是在 wgan 的基礎上改進的,wgan 在保證 lipschitz 限制條件時,作者是採用將限制判別器神經網路的所有引數(這裡指權重 w)不超過某個範圍 [-c,c]。這樣做帶來了引數上的兩極化,為了改進 wgan,wgan-gp 提出了梯度懲罰概念用於滿足 lipschitz 限制條件。

3)curriculum gans 其是在 wgan-gp 的基礎上改進的,但是思路是沿襲 wgan 所以也稱之為 wgan-c。

facebook發表的**。

參考資料:

wassertein 指的是wassertein距離(也稱earth-mover(em)距離),wgan就是用wasserstein距離代替js散度。

wasserstein距離又叫earth-mover距離(em距離),用於衡量兩個分布之間的距離。

定義:是和分布組合起來的所有可能的聯合分布的集合。對於每乙個可能的聯合分布,可以從中取樣得到乙個樣本和,並計算出這對樣本的距離,所以可以計算該聯合分布下,樣本對距離的期望值。在所有可能的聯合分布中能夠對這個期望值取到的下界就是wasserstein距離。

直觀理解:在這個路徑規劃下把土堆挪到土堆所需要的消耗。而wasserstein距離就是在最優路徑規劃下的最小消耗。所以wesserstein距離又叫earth-mover距離。

優點:wessertein距離相比kl散度和js散度的優勢在於,即使兩個分布的支撐集沒有重疊或者重疊非常少,仍然能反映兩個分布的遠近。而js散度在此情況下是常量,kl散度可能無意義。

根據kantorovich-rubinstein對偶原理,可以得到wasserstein距離的等價形式。

有以下幾個爆點:

以上一切好處不需要精心設計的網路架構,最簡單的多層全連線網路就可以做到。

1)徹底解決gan訓練不穩定的問題,不再需要小心平衡生成器和判別器的訓練程度

2)基本解決了collapse mode的問題,確保了生成樣本的多樣性

3)訓練過程中終於有乙個像交叉熵、準確率這樣的數值來指示訓練的程序,這個數值越小代表gan訓練得越好,代表生成器產生的影象質量越高。

改進後相比原始gan的演算法實現流程卻只改了四點,從**上來看只需要在原始的gan上簡單的修改。

1)判別器最後一層去掉sigmoid

2)生成器和判別器的loss不取log

3)每次更新判別器的引數之後把它們的絕對值截斷到不超過乙個固定常數c

4)不要用基於動量的優化演算法(包括momentum和adam),推薦rmsprop,sgd也行

另外,在wgan中有 weight clipping。

回答:對的,用l1的情況下,沒有那麼完美的關係,用l2是存在的。那麼對於大多數應用的話,用l1,l2沒有本質差別。

再度改進wgan

改進後的 wgan-gp 中更換為了梯度懲罰 gradient penalty,判別器引數就能夠學到合理的引數取值,從而顯著提高訓練速度,解決了原始wgan收斂緩慢的問題,在實驗中還第一次成功做到了「純粹的」的文字gan訓練。

損失函式改進方法總覽

這篇部落格主要列個引導表,簡單介紹在深度學習演算法中損失函式可以改進的方向,並給出詳細介紹的部落格鏈結,會不斷補充。1 large marge softmax loss icml2016提出的large marge softmax loss l softmax 通過在傳統的softmax loss公...

損失函式改進方法總覽

這篇部落格主要列個引導表,簡單介紹在深度學習演算法中損失函式可以改進的方向,並給出詳細介紹的部落格鏈結,會不斷補充。1 large marge softmax loss icml2016提出的large marge softmax loss l softmax 通過在傳統的softmax loss公...

yolov3損失函式改進 yolov3 損失函式

yolov3 損失函式主要分為loss xy,loss wh,loss confidence,loss class loss xy darknet與kreas稍有不同。darknet是sse,kreas是二值交叉熵。一種解釋如下 bounding box回歸是square error loss,分類...