1. 程式人生 > 其它 >KL散度,JS散度,Wasserstein距離

KL散度,JS散度,Wasserstein距離

引自:https://zxth93.github.io/2017/09/27/KL散度JS散度Wasserstein距離/

1. KL散度

KL散度又稱為相對熵,資訊散度,資訊增益。KL散度是是兩個概率分佈P和Q差別的非對稱性的度量。 KL散度是用來 度量使用基於Q的編碼來編碼來自P的樣本平均所需的額外的位元數。 典型情況下,P表示資料的真實分佈,Q表示資料的理論分佈,模型分佈,或P的近似分佈。

定義如下:

因為對數函式是凸函式,所以KL散度的值為非負數。

有時會將KL散度稱為KL距離,但它並不滿足距離的性質:

  1. KL散度不是對稱的;
  2. KL散度不滿足三角不等式。

2. JS散度(Jensen-Shannon)

JS散度度量了兩個概率分佈的相似度,基於KL散度的變體,解決了KL散度非對稱的問題。一般地,JS散度是對稱的,其取值是0到1之間。定義如下:

KL散度和JS散度度量的時候有一個問題:

如果兩個分配P,Q離得很遠,完全沒有重疊的時候,那麼KL散度值是沒有意義的,而JS散度值是一個常數。這在學習演算法中是比較致命的,這就意味這這一點的梯度為0。梯度消失了。

3. Wasserstein距離

Wasserstein距離度量兩個概率分佈之間的距離,定義如下:

Π(P1,P2)是P1和P2分佈組合起來的所有可能的聯合分佈的集合。對於每一個可能的聯合分佈γ,可以從中取樣(x,y)∼γ得到一個樣本x和y,並計算出這對樣本的距離||x−y||,所以可以計算該聯合分佈γ下,樣本對距離的期望值E(x,y)∼γ[||x−y||]。在所有可能的聯合分佈中能夠對這個期望值取到的下界infγ∼Π(P1,P2)E(x,y)∼γ[||x−y||]就是Wasserstein距離。

直觀上可以把E(x,y)∼γ[||x−y||]理解為在γ這個路徑規劃下把土堆P1挪到土堆P2所需要的消耗。而Wasserstein距離就是在最優路徑規劃下的最小消耗。所以Wesserstein距離又叫Earth-Mover距離。

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