KL-divergence,俗稱KL距離,常用來衡量兩個概率分佈的距離。
根據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。