KL散度、JS散度和交叉熵


KL散度、JS散度和交叉熵三者都是用來衡量兩個概率分布之間的差異性的指標

1. KL散度

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

定義如下:

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

當P(x)和Q(x)的相似度越高,KL散度越小

KL散度主要有兩個性質:

(1)不對稱性

盡管KL散度從直觀上是個度量或距離函數,但它並不是一個真正的度量或者距離,因為它不具有對稱性,即D(P||Q)!=D(Q||P)

(2)非負性

相對熵的值是非負值,即D(P||Q)>0

2.JS散度(Jensen-Shannon divergence)

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

 

 

但是不同於KL主要又兩方面:

(1)值域范圍

JS散度的值域范圍是[0,1],相同則是0,相反為1。相較於KL,對相似度的判別更確切了。

(2)對稱性

即 JS(P||Q)=JS(Q||P),從數學表達式中就可以看出

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

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

3.交叉熵(Cross Entropy)

在神經網絡中,交叉熵可以作為損失函數,因為它可以衡量P和Q的相似性

 

交叉熵和相對熵的關系

 

 以上都是基於離散分布的概率,如果是連續的數據,則需要對數據進行Probability Density Estimate來確定數據的概率分布,就不是求和而是通過求積分的形式進行計算了

 

 


免責聲明!

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



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