1. 程式人生 > 其它 >KL散度

KL散度

介紹

  相對熵(relative entropy),又被稱為Kullback-Leibler散度(Kullback-Leibler divergence)或資訊散度(information divergence),是兩個概率分佈(probability distribution)間差異的非對稱性度量。在資訊理論中,相對熵等價於兩個概率分佈的資訊熵(Shannon entropy)的差值。

  相對熵是一些優化演算法,例如最大期望演算法(Expectation-Maximization algorithm, EM)的損失函式 。此時參與計算的一個概率分佈為真實分佈,另一個為理論(擬合)分佈,相對熵表示使用理論分佈擬合真實分佈時產生的資訊損耗

理論

定義

  設 $P(x)$, $Q(x)$ 是隨機變數  $X$  上的兩個概率分佈,則在離散和連續隨機變數的情形下,相對熵的定義分別為:

    $\mathrm{KL}(P \| Q) =\sum P(x) \log \frac{P(x)}{Q(x)}$
    $\mathrm{KL}(P \| Q) =\int P(x) \log \frac{P(x)}{Q(x)} d x$

  典型情況下, $P$表示資料的真實分佈, $Q$表示資料的理論分佈,模型分佈,或$P$的近似分佈。

計算例項

  這裡給出一個對相對熵進行計算的具體例子。假如一個字元發射器,隨機發出 $0$ 和 $1$ 兩種字元,真實發出概率分佈為 $A$,但實際不知道 $A$ 的具體分佈。通過觀察,得到概率分佈 $B$ 與 $C$,各個分佈的具體情況如下:

    $\begin{array}{l} A(0)=1 / 2, A(1)=1 / 2 \\ B(0)=1 / 4, B(1)=3 / 4 \\ C(0)=1 / 8, C(1)=7 / 8 \end{array}$

  可以計算出得到如下:

    $\begin{array}{l} \mathrm{KL}(A \| B)=1 / 2 \log \left(\frac{1 / 2}{1 / 4}\right)+1 / 2 \log \left(\frac{1 / 2}{3 / 4}\right)=1 / 2 \log (4 / 3) \\\mathrm{KL}(A \| C)=1 / 2 \log \left(\frac{1 / 2}{1 / 8}\right)+1 / 2 \log \left(\frac{1 / 2}{7 / 8}\right)=1 / 2 \log (16 / 7) \end{array}$

  由上式可知,按昭概率分佈  $B$  進行編碼,要比按照  $C $  進行編碼,平均每個符號增加的位元數目少。從分佈上也可以看出,實際上  $B$  要比  $C$  更接近實際分佈(因為其與  $A$  分佈的相對熵更小)。