Entropy

交叉熵和KL散度有什麼區別?

  • July 19, 2018

交叉熵和KL散度都是衡量兩個概率分佈之間距離的工具,但它們之間有什麼區別呢?

$$ H(P,Q) = -\sum_x P(x)\log Q(x) $$

$$ KL(P | Q) = \sum_{x} P(x)\log {\frac{P(x)}{Q(x)}} $$

此外,事實證明,KL散度的最小化等價於交叉熵的最小化。

我想本能地了解他們。

您將需要一些條件來聲明最小化交叉熵和最小化 KL 散度之間的等價性。我會將您的問題放在使用交叉熵作為損失函數的分類問題的背景下。

讓我們首先回顧一下,熵用於衡量系統的不確定性,其定義為 $$ \begin{equation} S(v)=-\sum_ip(v_i)\log p(v_i)\label{eq:entropy}, \end{equation} $$ 為了 $ p(v_i) $ 作為不同狀態的概率 $ v_i $ 系統的。從信息論的角度來看, $ S(v) $ 是消除不確定性所需的信息量。

例如,事件 $ I $ I will die within 200 years幾乎是確定的(我們可以解決“幾乎”這個詞的老化問題),因此它的不確定性很低,只需要 的信息the aging problem cannot be solved就可以確定。然而,該事件 $ II $ I will die within 50 years比事件更不確定 $ I $ ,因此需要更多信息來消除不確定性。這裡熵可以用來量化分佈的不確定性When will I die?,可以看作是對單個事件的不確定性的期望,例如 $ I $ 和 $ II $ .

現在看看分佈 A 和 B 之間的 KL 散度的定義 $$ \begin{equation} D_{KL}(A\parallel B) = \sum_ip_A(v_i)\log p_A(v_i) - p_A(v_i)\log p_B(v_i)\label{eq:kld}, \end{equation} $$ 其中右側的第一項是分佈 A 的熵,第二項可以解釋為分佈 B 對 A 的期望。 $ D_{KL} $ 從A的角度描述了B與A的不同之處。值得注意的是 $ A $ 通常代表數據,即測量的分佈,以及 $ B $ 是理論或假設分佈。這意味著,你總是從你所觀察到的開始。

為了將交叉熵與熵和 KL 散度聯繫起來,我們根據分佈形式化了交叉熵 $ A $ 和 $ B $ 作為 $$ \begin{equation} H(A, B) = -\sum_ip_A(v_i)\log p_B(v_i)\label{eq:crossentropy}. \end{equation} $$ 從定義中,我們很容易看出 $$ \begin{equation} H(A, B) = D_{KL}(A\parallel B)+S_A\label{eq:entropyrelation}. \end{equation} $$ 如果 $ S_A $ 是一個常數,然後最小化 $ H(A, B) $ 相當於最小化 $ D_{KL}(A\parallel B) $ .

另一個問題自然是熵如何成為常數。在機器學習任務中,我們從一個數據集(表示為 $ P(\mathcal D) $ ) 表示要解決的問題,學習的目的是使模型估計分佈(記為 $ P(model) $ ) 盡可能接近問題的真實分佈(表示為 $ P(truth) $ ). $ P(truth) $ 是未知的,由 $ P(\mathcal D) $ . 因此,在理想世界中,我們期望 $$ \begin{equation} P(model)\approx P(\mathcal D) \approx P(truth) \end{equation} $$ 並最小化 $ D_{KL}(P(\mathcal D)\parallel P(model)) $ . 幸運的是,在實踐中 $ \mathcal D $ 是給定的,這意味著它的熵 $ S(D) $ 固定為常數。

引用自:https://stats.stackexchange.com/questions/357963

comments powered by Disqus