1. 程式人生 > >為什麼KL-divergence 可以用來衡量兩個概率分佈的不相似性?

為什麼KL-divergence 可以用來衡量兩個概率分佈的不相似性?

以下所有內容均來自 PRML 一書,讀者讀了之後,有任何沒有看懂的,請留言。我是傳播知識的小蜜蜂

首先KL-divergence的定義:

如果有個未知的分佈為p(x),我們使用q(x)估計它。從資訊傳輸的角度理解,如果使用它們刻畫資訊編碼的方法。那麼使用q(x)估計p(x)時,平均額外需要多編碼的資訊長度為:

KL(pq)=p(x)lnq(x)dx(p(x)lnp(x)dx)=p(x)lnq(x)p(x)dx。如果要想使得兩個分佈p(x)q(x)儘可能的相同,則KL(pq)應儘可能地最小。
f(x)=lnq(x)p(x)。顯然,f(x) 是個凸函式。由凸函式的定義和Jensen不等式可知:
p(x)f(x)dxf(xp(x)dx)
,因此:
KL(pq)ln(q(x)p(x)p(x))dx=lnq(x)dx=0. 事實上,ln(x)是強凸函式, 因此等號並不成立。即:
KL(pq)>ln(q(x)p(x)p(x))dx=lnq(x)dx=0。 根據KL(pq)的定義,只用當p(x)==q(x)時等號成立。因此,KL(pq)可以用來衡量兩個分佈的差異。它的值越大說明兩個分佈的差異越大。