KL散度又稱爲相對熵,信息散度,信息增益。KL散度是是兩個機率分佈 $P$ 和 $Q$ 之間差異的非對稱性的度量。 KL散度是用來 度量使用基於 $Q$ 的編碼來編碼來自 $P$ 的樣本平均所需的額外的位元數。 典型狀況下,$P$ 表示數據的真實分佈,$Q$ 表示數據的理論分佈,模型分佈,或 $P$ 的近似分佈。 html
定義以下:git
由於對數函數是凸函數,因此KL散度的值爲非負數。github
有時會將KL散度稱爲KL距離,但它並不知足距離的性質:算法
- KL散度不是對稱的,即 $D_{KL} (P||Q) \neq D_{KL} (Q||P)$;
- KL散度不知足三角不等式。
JS散度度量了兩個機率分佈的類似度,基於KL散度的變體,解決了KL散度非對稱的問題。通常地,JS散度是對稱的,其取值是 $0$ 到 $1$ 之間。定義以下:markdown
KL散度和JS散度度量的時候有一個問題:函數
若是兩個分配 $P, Q$ 離得很遠,徹底沒有重疊的時候,那麼KL散度值是沒有意義的,而JS散度值是一個常數。這在學習算法中是比較致命的,這就意味這這一點的梯度爲 $0$。梯度消失了。學習
Wasserstein距離度量兩個機率分佈之間的距離,定義以下:編碼
$\Pi (P_1, P_2)$ 是 $P_1$ 和 $P_2$ 分佈組合起來的全部可能的聯合分佈的集合。對於每個可能的聯合分佈 $\gamma$,能夠從中採樣 $(x,y)∼ \gamma$ 獲得一個樣本 $x$ 和 $y$,並計算出這對樣本的距離 $||x−y||$,因此能夠計算該聯合分佈 $\gamma$ 下,樣本對距離的指望值 $E _{(x, y) ∼ \gamma}[||x−y||]$。在全部可能的聯合分佈中可以對這個指望值取到的下界 $\inf_{\gamma ∼ \Pi(P_1, P_2)} E _{(x, y) ∼ \gamma}[||x−y||]$ 就是Wasserstein距離。 spa
直觀上能夠把 $E _{(x, y) ∼ \gamma}[||x−y||]$ 理解爲在 $\gamma$ 這個路徑規劃下把土堆 $P_1$ 挪到土堆 $P_2$ 所須要的消耗。而Wasserstein距離就是在最優路徑規劃下的最小消耗。因此Wesserstein距離又叫Earth-Mover距離。htm
Wessertein距離相比KL散度和JS散度的優點在於:即便兩個分佈的支撐集沒有重疊或者重疊很是少,仍然能反映兩個分佈的遠近。而JS散度在此狀況下是常量,KL散度可能無心義。