天天看點

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

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

首先KL-divergence的定義:

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

KL(p∥q)=−∫p(x)lnq(x)dx−(−∫p(x)lnp(x)dx)=−∫p(x)lnq(x)p(x)dx

。如果要想使得兩個分布 p(x) 和 q(x) 盡可能的相同,則 KL(p∥q) 應盡可能地最小。

令 f(x)=−lnq(x)p(x) 。顯然, f(x) 是個凸函數。由凸函數的定義和Jensen不等式可知:

∫p(x)f(x)dx≥f(∫xp(x)dx)

,是以:

KL(p∥q)≥−ln∫(q(x)p(x)p(x))dx=−ln∫q(x)dx=0

. 事實上, −ln(x) 是強凸函數, 是以等号并不成立。即:

KL(p∥q)>−ln∫(q(x)p(x)p(x))dx=−ln∫q(x)dx=0

。 根據 KL(p∥q) 的定義,隻用當 p(x)==q(x) 時等号成立。是以, KL(p∥q) 可以用來衡量兩個分布的差異。它的值越大說明兩個分布的差異越大。