KL距離(相對熵)

轉:http://wenku.baidu.com/link?url=9AvwW3syYBPAnTtHa7C6IPNaR71Ax1L2ebfdEMQhGkjlp_-VLrqYgCoPilvWyihqSllMlcv5VaVnRcwLiV0D98cZEaal-_BeZ-WALMSf00e

KL距離,是Kullback-Leibler差異(Kullback-Leibler Divergence)的簡稱,也叫做相對熵(RelativeEntropy)。它衡量的是相同事件空間裏的兩個概率分佈的差異情況。其物理意義是:在相同事件空間裏,概率分佈P(x)的事件空間,若用概率分佈Q(x)編碼時,平均每個基本事件(符號)編碼長度增加了多少比特。我們用D(P||Q)表示KL距離,計算公式如下:

 當兩個概率分佈完全相同時,即P(x)=Q(X),其相對熵爲0 。我們知道,概率分佈P(X)的信息熵爲:


 其表示,概率分佈P(x)編碼時,平均每個基本事件(符號)至少需要多少比特編碼。通過信息熵的學習,我們知道不存在其他比按照本身概率分佈更好的編碼方式了,所以D(P||Q)始終大於等於0的。雖然KL被稱爲距離,但是其不滿足距離定義的三個條件:1)非負性;2)對稱性(不滿足);3)三角不等式(不滿足)。

 我們以一個例子來說明,KL距離的含義。

 假如一個字符發射器,隨機發出0和1兩種字符,真實發出概率分佈爲A,但實際不知道A的具體分佈。現在通過觀察,得到概率分佈B與C。各個分佈的具體情況如下:

A(0)=1/2,A(1)=1/2

B(0)=1/4,B(1)=3/4

C(0)=1/8,C(1)=7/8

 那麼,我們可以計算出得到如下:


 也即,這兩種方式來進行編碼,其結果都使得平均編碼長度增加了。我們也可以看出,按照概率分佈B進行編碼,要比按照C進行編碼,平均每個符號增加的比特數目少。從分佈上也可以看出,實際上B要比C更接近實際分佈。

 如果實際分佈爲C,而我們用A分佈來編碼這個字符發射器的每個字符,那麼同樣我們可以得到如下:


 再次,我們進一步驗證了這樣的結論:對一個信息源編碼,按照其本身的概率分佈進行編碼,每個字符的平均比特數目最少。這就是信息熵的概念,衡量了信息源本身的不確定性。另外,可以看出KL距離不滿足對稱性,即D(P||Q)不一定等於D(Q||P)。

 當然,我們也可以驗證KL距離不滿足三角不等式條件。

 上面的三個概率分佈,D(B||C)=1/4log2+3/4log(6/7)。可以得到:D(A||C) - (D(A||B)+ D(B||C)) =1/2log2+1/4log(7/6)>0,這裏驗證了KL距離不滿足三角不等式條件。所以KL距離,並不是一種距離度量方式,雖然它有這樣的學名。

  其實,KL距離在信息檢索領域,以及統計自然語言方面有重要的運用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章