分布距離度量方式


信息熵

信息熵是信息論中用於度量信息量的一個概念。一個系統越是有序,信息熵就越低;反之,一個系統越是混亂,信息熵就越高。所以,信息熵也可以說是系統有序化程度的一個度量。信息量是對信息的度量,就跟時間的度量是秒一樣,當我們考慮一個離散的隨機變量 x 的時候,當我們觀察到的這個變量的一個具體值的時候,我們接收到了多少信息呢?多少信息用信息量來衡量,我們接受到的信息量跟具體發生的事件有關。信息的大小跟隨機事件的概率有關。越小概率的事情發生了產生的信息量越大,如湖南產生 的地震了;越大概率的事情發生了產生的信息量越小,如太陽從東邊升起來了(肯定發生嘛, 沒什么信息量)。這很好理解!因此一個具體事件的信息量應該是隨着其發生概率而遞減的,且不能為負

\[H(x)=-\sum p(x)\log p(x) \]

KL散度(相對熵)

KL散度又稱為相對熵,信息散度,信息增益。KL散度是是兩個概率分布P和Q 差別的非對稱性的度量。常用於衡量兩個概率分布之間的差異或相似度,或衡量利用Q擬合P時的能量消耗 KL散度是用來 度量使用基於Q的編碼來編碼來自P的樣本平均所需的額外的位元數。 典型情況下,P表示數據的真實分布,Q表示數據的理論分布,模型分布,或P的近似分布。其定義如下:

\[D_{KL}(P|Q)=\sum_{x\in i}P(x_i) \log \frac{P(x_i)}{Q(x_i)} \]

\[D_{KL}(P|Q)=\sum_{x\in i}P(x_i)*\log P(x_i)-P(x_i)\log Q(x_i) \]

此處我們可以看到, 等號左邊是熵, 右邊就是交叉熵
有時會將KL散度稱為KL距離,但它並不滿足距離的性質:

  • KL散度不是對稱的: \(D(P|Q)!=D(Q|P)\)
  • KL散度不滿足三角不等式。
    KL散度應用范圍非常的廣大。

交叉熵是KL散度的一部份

可以看到,在KL散度中,右半部分作為交叉熵而存在,我們交叉熵的公式為:

\[Cross Entropy=-\sum_{i=1}^{N}P(x_i)\log Q(x_i)) \]

很多地方像邏輯回歸的loss其實就是二分類的交叉熵,當我們最大化似然函數,把累乘變為累加的時候,的時候,即得到了最小化交叉熵這么一個形式。
具體LR請看LR

JS散度

JS散度度量了兩個概率分布的相似度,基於KL散度的變體,解決了KL散度非對稱的問題。一般地,JS散度是對稱的,其取值是0到1之間,一般地,JS散度是對稱的,其取值是0到1之間。若兩個分布完全沒有交集,那么JS散度取最大值1;若兩個分布完全一樣,那么 JS 散度取最小值 0。
定義如下:

\[JS(P_1|P_2)=\frac{1}{2}KL(P_1||\frac{P_1+P_2}{2})+\frac{1}{2}KL(P_2||\frac{P_1+P_2}{2}) \]

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

Wasserstein距離(EM距離):解決JS和KL距離的缺點

Wessertein距離相比KL散度和JS散度的優勢在於:即使兩個分布的支撐集沒有重疊或者重疊非常少,仍然能反映兩個分布的遠近。而JS散度在此情況下是常量,KL散度可能無意義。
wasserstein距離就是衡量把概率分布q“搬到” p的最小代價。

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

\[W(P_1,P_2)=\inf\limits_{\gamma-\prod(P_1,P_2)}E_{(x,y)-\gamma}[||x-y||] \]

其中, \(\prod(P_1,P_2)\)\(P_1,P_2\)組合起來的,所有可能的聯合分布, 對於每一個可能的分布\(\gamma\)而言, 我們都可以采樣到\(x,y\), 並計算他們的距離的期望值, 一般, 在代碼實現的時候, 會直接取平均值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM