Skip to content

KL divergence

定義

直覺

直覺上也是衡量兩個分佈的差距
由下圖可看出

KL divergence就是 當下Cross entropy與目標Cross entropy的差距,也就是算當下的編碼方法最多還可以下降多少。

(Review,Cross Entropy是以假分佈編碼,並以真分佈算期待值)

值得注意的是,KL divergence不能是嚴格定義的距離,因為不符合交換率
即D(P||Q) != D(Q||P)

一個例子

開場

以上是外星蠕蟲牙齒數目的分佈,我們需要將這個數據以最小成本的方式傳回地球
但是這個分佈由於亂度較高,需要較多的"成本"傳輸
因此我們想用Uniform 與 binomial 來近似

複習: 如何算Uniform?
n*p = 1 ,已知n=11,可得知 p=1/11

複習: 如何算binomial?
首先複習機率分佈:
P(x=k) = C(n,k)*P^k*(1-p)^(n-k)
(k次成功,n-k次失敗,並且可以有C(n,k)種可能)

利用"期待值 = np " ,先用期待值定義式算出蟲蟲牙齒分佈期待值
然後除以11就是binomial的p,各項再套機率分佈式即可知道

如何測量哪一個分佈更好?

當然是代入KL divergence 算兩個分佈的差距囉

上圖是二項分佈的例子,Uniform也可以算,把分母全部換成1/11即可

結論

  1. Uniform 與真實分佈的 KL divergence 是 0.136
    Binomial 與真實分佈的 KL divergence 是 0.427
    所以傳Uniform是更貼近真實分佈的

  2. 變動Binomial的P,也可以計算KL divergence
    但是用期待值去估計的方法是最佳的 (紅點)

參考資料

別人整理版本
例子來源