機器學習基礎 熵 KL散度 交叉熵

2022-02-06 03:00:02 字數 3038 閱讀 5924

熵(entropy)、kl 散度(kullback-leibler (kl) divergence)和交叉熵(cross-entropy)在機器學習的很多地方會用到。比如在決策樹模型使用資訊增益來選擇乙個最佳的劃分,使得熵下降最大;深度學習模型最後一層使用 softmax 啟用函式後,我們也常使用交叉熵來計算兩個分布的「距離」。kl散度和交叉熵很像,都可以衡量兩個分布之間的差異,相互之間可以轉化。

資訊理論是應用數學的乙個分支,主要研究的是對乙個訊號包含資訊的多少進行量化。資訊理論的基本想法是乙個不太可能的事件發生了,要比乙個非常可能的事件發生,能提供更多的資訊。

在資訊理論中,我們認為:

為了滿足上面 3 個性質,定義了一事件 $\mbox = x$ 的自資訊(self-information)為

\begin

i(x) = -\log p(x) 

\end

我們使用 $\text$ 表示隨機變數,使用 $x_1, x_2,...,x_i,..., x_n$ 或者 $x$ 表示隨機變數 $\text$ 可能的取值。噹式(1)中 $\log$ 以 2 為底數時,$i(x)$ 單位是位元(bit)或者夏農(shannons);當 $\log$ 以自然常數 $e$ 為底數時,$i(x)$ 單位是奈特(nats)。這兩個單位之間可以互相轉換,通過位元度量的資訊只是通過奈特度量資訊的常數倍。(使用對數換底公式轉化)

自資訊只能處理單個的輸出。我們可以使用夏農熵(shannon entropy)來對整個概率分布中的不確定性總量進行量化:

\begin

h(\text) = \mathbb_ \sim p}[i(x)] = \sum_^ p(x_i)i(x_i) = - \sum_^ p(x_i)\log p(x_i) 

\end

式(2)後兩個等號是在離散型變數的情況下成立,對於連續型變數,則需要求積分。當 $\text$ 是連續的,夏農熵被稱為微分熵(differential entropy)。

在2023年,克勞德·艾爾伍德·夏農將熱力學的熵,引入到資訊理論,因此它又被稱為夏農熵。機器學習(ml)中熵的概念都是由資訊理論而來,所以在 ml 中能看到的熵都是夏農熵,而不會是熱力學的熵。

熵的一些性質:

kl 散度全稱 kullback-leibler (kl) divergence。

kl 散度可以用來衡量兩個分布的差異。

在概率論與統計中,我們經常會將乙個複雜的分布用乙個簡單的近似分布來代替。kl 散度可以幫助我們測量在選擇乙個近似分布時丟失的資訊量。

假設原概率分布為 $p(\text)$,近似概率分布為 $q(\text)$,則使用 kl 散度衡量這兩個分布的差異:

\begin

d_(p||q) = \mathbb_ \sim p}[\log \frac] = \mathbb_ \sim p}[\log p(x) - \log q(x)] 

\end

如果 $\text$ 是離散型變數,式(3)還可以寫成如下形式:

\begin

d_(p||q) = \sum_^ p(x_i) \log\frac = \sum_^ p(x_i)[\log p(x_i) - \log q(x_i)]   

\end

對於連續型變數,則式(4)不能這麼寫,需要求積分。如果 $\text$ 是連續型變數,則式(3)中概率分布最好用 $p(\text)$和$q(\text)$ 代替 $p(\text)$和$q(\text)$。習慣上,用小寫字母表示連續型變數的概率密度函式(probability density function,pdf),用大寫字母表示離散型變數的概率質量函式(probability mass function,pmf)。(pdf和pmf都是用來描述概率分布)

kl 散度的一些性質:

交叉熵(cross-entropy)和 kl 散度聯絡很密切。同樣地,交叉熵也可以用來衡量兩個分布的差異。以離散型變數 $\text$ 為例:

\begin

h(p, q) = - \mathbb_ \sim p}\log q(x) = - \sum_^ p(x_i) \log q(x_i) 

\end

交叉熵 $h(p, q) = h(p) +  d_(p||q)$。其中 $h(p)$(即 $h(\text)$ ,其中 $\text \sim p$)為分布 $p$ 的熵,$d_(p||q)$ 表示兩個分布的 kl 散度。當概率分布 $p(\text)$ 確定了時,$h(p)$ 也將被確定,即 $h(p)$ 是乙個常數。在這種情況下,交叉熵和 kl 散度就差乙個大小為 $h(p)$ 的常數。下面給出乙個簡單的推導:

我們將式(4)中 kl 散度的公式再進行展開:

\begin\label

\begin

d_(p||q) &= \sum_^ p(x_i)[\log p(x) - \log q(x)]  \\ &=  \sum_^ p(x_i) \log p(x_i)  - \sum_^ p(x_i) \log q(x_i)  \\ &= -[- \sum_^ p(x_i) \log p(x_i)]+ [ - \sum_^ p(x_i) \log q(x_i) ] \\ &= - h(p) + h(p, q)

\end

\end

即 $h(p, q) = h(p) +  d_(p||q)$。

交叉熵的一些性質:

為什麼既有 kl 散度又有交叉熵?在資訊理論中,熵的意義是對 $p$ 事件的隨機變數編碼所需的最小位元組數,kl 散度的意義是「額外所需的編碼長度」如果我們使用 $q$ 的編碼來表示 $p$,交叉熵指的是當你使用 $q$ 作為密碼來表示 $p$ 是所需要的 「平均的編碼長度」。但是在機器學習評價兩個分布之間的差異時,由於分布 $p$ 會是給定的,所以此時 kl 散度和交叉熵的作用其實是一樣的,而且因為交叉熵少算一項,更加簡單,所以選擇交叉熵會更好。

goodfellow, i., bengio, y., & courville, a. (2016). deep learning. 

kullback-leibler divergence explained

熵,交叉熵,相對熵(KL散度)

先插入乙個鏈結視覺化資訊理論,簡單明瞭很容易看懂 資訊熵是度量隨機變數不確定度的指標,資訊熵越大意味著隨機變數不確定度越高,意味著系統的有序程度越低。他的定義 如果隨機變數p 他的概率p,i 則隨機變數p 的熵定義為 h p i 1 np x i lo g2p xi 交叉熵 cross entrop...

熵,交叉熵,相對熵(KL散度)

參考 一 什麼是資訊?1.夏農對資訊的解釋 資訊是事物運動狀態或存在方式的不確定性的描述。2.何為資訊?什麼能提供資訊?我將你原來不知道的結果告訴你,就是提供了資訊。3.如何衡量資訊量的大小?事件發生的概率越小,此事件含有的資訊量就越大。我向你提供的資訊量大小,就是你事先不知道結果的程度!也即是資訊...

交叉熵 K L散度

資訊理論主要研究如何量化資料中的資訊。最重要的資訊度量單位是熵entropy,一般用h hh表示。分布的熵的公式如下 h i 1 np x i log p xi h sum p left x right cdot log p left x right h i 1 n p xi logp x i ex...