close

KL散度(Kullback–Leibler divergence,簡稱KLD),相對熵(relative entropy  

 

轉自 : http://xgli0910.blog.163.com/blog/static/46962168201311183233569/

 

相對熵(relative entropy)又稱為KL散度Kullback–Leibler divergence,簡稱KLD),資訊散度information divergence),資訊增益information gain)。 
KL
散度是兩個概率分佈PQ差別的非對稱性的度量。

KL散度是用來度量使用基於Q的編碼來編碼來自P的樣本平均所需的額外的比特個數。典型情況下,P表示資料的真實分佈,Q表示資料的理論分佈,模型分佈,或P的近似分佈。

 

KL-divergence,俗稱KL距離,常用來衡量兩個概率分佈的距離。

根據shannon的資訊理論,給定一個字元集的概率分佈,我們可以設計一種編碼,使得表示該字元集組成的字串平均需要的比特數最少。假設這個字元集是X,對xX,其出現概率為P(x),那麼其最優編碼平均需要的比特數等於這個字元集的熵:

H(X)=∑xXP(x)log[1/P(x)]

在同樣的字元集上,假設存在另一個概率分佈Q(X)。如果用概率分佈P(X)的最優編碼(即字元x的編碼長度等於log[1/P(x)]),來為符合分佈Q(X)的字元編碼,那麼表示這些字元就會比理想情況多用一些比特數。KL-divergence就是用來衡量這種情況下平均每個字元多用的比特數,因此可以用來衡量兩個分佈的距離。即:

DKL(Q||P)=∑xXQ(x)[log(1/P(x))] - ∑xXQ(x)[log[1/Q(x)]]=∑xXQ(x)log[Q(x)/P(x)]

由於-log(u)是凸函數,因此有下面的不等式

DKL(Q||P) = -∑xXQ(x)log[P(x)/Q(x)] = E[-logP(x)/Q(x)] ≥ -logE[P(x)/Q(x)] = -log∑xXQ(x)P(x)/Q(x) = 0

KL-divergence始終是大於等於0的。當且僅當兩分佈相同時,KL-divergence等於0

===========================

舉一個實際的例子吧:比如有四個類別,一個方法A得到四個類別的概率分別是0.1,0.2,0.3,0.4

另一種方法B(或者說是事實情況)是得到四個類別的概率分別是0.4,0.3,0.2,0.1,

那麼這兩個分佈的KL-Distance(A,B)=0.1*log(0.1/0.4)+0.2*log(0.2/0.3)+0.3*log(0.3/0.2)+0.4*log(0.4/0.1)

這個裡面有正的,有負的,可以證明KL-Distance()>=0.

從上面可以看出, KL散度是不對稱的。即KL-Distance(A,B)!=KL-Distance(B,A)

KL散度是不對稱的,當然,如果希望把它變對稱,

Ds(p1, p2) = [D(p1, p2) + D(p2, p1)] / 2.

 

arrow
arrow
    全站熱搜

    Mamason 發表在 痞客邦 留言(0) 人氣()