轉自:http://www.cnblogs.com/hxsyl/p/4910218.html
一、第一種理解
相對熵(relative entropy)又稱為KL散度(Kullback–Leibler divergence,簡稱KLD),信息散度(information divergence),信息增益(information gain)。
KL散度是兩個概率分布P和Q差別的非對稱性的度量。
KL散度是用來度量使用基於Q的編碼來編碼來自P的樣本平均所需的額外的比特個數。 典型情況下,P表示數據的真實分布,Q表示數據的理論分布,模型分布,或P的近似分布。
根據shannon的信息論,給定一個字符集的概率分布,我們可以設計一種編碼,使得表示該字符集組成的字符串平均需要的比特數最少。假設這個字符集是X,對x∈X,其出現概率為P(x),那么其最優編碼平均需要的比特數等於這個字符集的熵:
H(X)=∑x∈XP(x)log[1/P(x)]
在同樣的字符集上,假設存在另一個概率分布Q(X)。如果用概率分布P(X)的最優編碼(即字符x的編碼長度等於log[1/P(x)]),來為符合分布Q(X)的字符編碼,那么表示這些字符就會比理想情況多用一些比特數。KL-divergence就是用來衡量這種情況下平均每個字符多用的比特數,因此可以用來衡量兩個分布的距離。即:
DKL(Q||P)=∑x∈XQ(x)[log(1/P(x))] - ∑x∈XQ(x)[log[1/Q(x)]]=∑x∈XQ(x)log[Q(x)/P(x)]
由於-log(u)是凸函數,因此有下面的不等式
DKL(Q||P) = -∑x∈XQ(x)log[P(x)/Q(x)] = E[-logP(x)/Q(x)] ≥ -logE[P(x)/Q(x)] = - log∑x∈XQ(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.
二、第二種理解
今天開始來講相對熵,我們知道信息熵反應了一個系統的有序化程度,一個系統越是有序,那么它的信息熵就越低,反之就越高。下面是熵的定義
如果一個隨機變量的可能取值為
,對應的概率為
,則隨機變量
的熵定義為
有了信息熵的定義,接下來開始學習相對熵。
1. 相對熵的認識
相對熵又稱互熵,交叉熵,鑒別信息,Kullback熵,Kullback-Leible散度(即KL散度)等。設和
是取值的兩個概率概率分布,則
對
的相對熵為
在一定程度上,熵可以度量兩個隨機變量的距離。KL散度是兩個概率分布P和Q差別的非對稱性的度量。KL散度是
用來度量使用基於Q的編碼來編碼來自P的樣本平均所需的額外的位元數。 典型情況下,P表示數據的真實分布,Q
表示數據的理論分布,模型分布,或P的近似分布。
2. 相對熵的性質
相對熵(KL散度)有兩個主要的性質。如下
(1)盡管KL散度從直觀上是個度量或距離函數,但它並不是一個真正的度量或者距離,因為它不具有對稱性,即
(2)相對熵的值為非負值,即
在證明之前,需要認識一個重要的不等式,叫做吉布斯不等式。內容如下
3. 相對熵的應用
相對熵可以衡量兩個隨機分布之間的距離,當兩個隨機分布相同時,它們的相對熵為零,當兩個隨機分布的差別增
大時,它們的相對熵也會增大。所以相對熵(KL散度)可以用於比較文本的相似度,先統計出詞的頻率,然后計算
KL散度就行了。另外,在多指標系統評估中,指標權重分配是一個重點和難點,通過相對熵可以處理。
三、用在CF中
第一,KLD需要概率(臉頰和1),但是用評分。
第二,后面兩項的作用。