天天看點

熵資訊熵條件熵相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)交叉熵總結

文章目錄

  • 資訊熵
  • 條件熵
  • 相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)
  • 交叉熵
  • 總結

資訊熵

一條資訊的資訊量大小和它的不确定性有直接的關系。我們需要搞清楚一件非常非常不确定的事,或者是我們一無所知的事,就需要了解大量的資訊。相反,如果我們對某件事已經有了較多的了解,我們就不需要太多的資訊就能把它搞清楚。是以,從這個角度,我們可以認為,資訊量的度量就等于不确定性的多少。比如,有人說廣東下雪了。對于這句話,我們是十分不确定的。因為廣東幾十年來下雪的次數寥寥無幾。為了搞清楚,我們就要去看天氣預報,新聞,詢問在廣東的朋友,而這就需要大量的資訊,資訊熵很高。再比如,中國男足進軍2022年卡達世界杯決賽圈。對于這句話,因為确定性很高,幾乎不需要引入資訊,資訊熵很低。

考慮一個離散的随機變量 x,由上面兩個例子可知,資訊的量度應該依賴于機率分布 p(x),是以我們想要尋找一個函數 I(x),它是機率 p(x) 的單調函數,表達了資訊的内容。怎麼尋找呢?如果我們有兩個不相關的事件 x 和 y,那麼觀察兩個事件同時發生時獲得的資訊量應該等于觀察到事件各自發生時獲得的資訊之和,即:I(x,y)=I(x)+I(y)。

因為兩個事件是獨立不相關的,是以 p(x,y)=p(x)p(y)。根據這兩個關系,很容易看出 I(x)一定與 p(x) 的對數有關 (因為對數的運算法則是 l o g a ( m n ) = l o g a m + l o g a n log_a(mn)=log_am+log_an loga​(mn)=loga​m+loga​n。是以,我們有

I ( x ) = − l o g p ( x ) I(x)=-logp(x) I(x)=−logp(x)

其中負号是用來保證資訊量是正數或者零。而 log 函數基的選擇是任意的(資訊論中基常常選擇為2,是以資訊的機關為比特bits;而機器學習中基常常選擇為自然常數,是以機關常常被稱為奈特nats)。I(x) 也被稱為随機變量 x 的自資訊 (self-information),描述的是随機變量的某個事件發生所帶來的資訊量。圖像如圖:

熵資訊熵條件熵相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)交叉熵總結

最後,我們正式引出資訊熵。 現在假設一個發送者想傳送一個随機變量的值給接收者。那麼在這個過程中,他們傳輸的平均資訊量可以通過求 I(x)=−logp(x) 關于機率分布 p(x) 的期望得到,即

H ( X ) = − ∑ x p ( x ) l o g p ( x ) = − ∑ i = 1 n p ( x i ) l o g p ( x i ) H(X)=-\displaystyle\sum_{x}p(x)logp(x)=-\sum_{i=1}^{n}p(x_i)logp(x_i) H(X)=−x∑​p(x)logp(x)=−i=1∑n​p(xi​)logp(xi​)

H(X) 就被稱為随機變量 x 的熵,它是表示随機變量不确定的度量,是對所有可能發生的事件産生的資訊量的期望。

從公式可得,随機變量的取值個數越多,狀态數也就越多,資訊熵就越大,混亂程度就越大。當随機分布為均勻分布時,熵最大,且 0≤H(X)≤logn。稍後證明。将一維随機變量分布推廣到多元随機變量分布,則其聯合熵 (Joint entropy) 為:

H ( X , Y ) = − ∑ x , y p ( x , y ) l o g p ( x , y ) = − ∑ i = 1 n ∑ j = 1 m p ( x i , y i ) l o g p ( x i , y i ) H(X,Y)=-\displaystyle\sum_{x,y}p(x,y)logp(x,y)=-\sum_{i=1}^{n}\sum_{j=1}^{m}p(x_i,y_i)logp(x_i,y_i) H(X,Y)=−x,y∑​p(x,y)logp(x,y)=−i=1∑n​j=1∑m​p(xi​,yi​)logp(xi​,yi​)

注意點:

  • 1、熵隻依賴于随機變量的分布,與随機變量取值無關,是以也可以将 X 的熵記作 H ( p ) H(p) H(p)
  • 2、令0log0=0(因為某個取值機率可能為0。

    考慮一個随機變量 x。這個随機變量有4種可能的狀态,每個狀态都是等可能的。為了把 x 的值傳給接收者,我們需要傳輸2比特的消息

    H ( X ) = − 4 × 1 4 l o g 2 1 4 = 2   b i t s H(X)=-4\times\dfrac{1}{4}log_2\dfrac{1}{4}=2\ bits H(X)=−4×41​log2​41​=2 bits

    現在考慮一個具有4種可能的狀态 {a,b,c,d} 的随機變量,每個狀态各自的機率為 ( 1 2 , 1 4 , 1 8 , 1 8 ) \left( \displaystyle\frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{8} \right) (21​,41​,81​,81​)

    這種情形下的熵為:

    H ( X ) = − 1 2 l o g 2 1 2 − 1 4 l o g 2 1 4 − 1 8 l o g 2 1 8 − 1 8 l o g 2 1 8 = 1.75   b i t s H(X)=-\displaystyle\frac{1}{2}log_2\frac{1}{2}-\frac{1}{4}log_2\frac{1}{4}-\frac{1}{8}log_2\frac{1}{8}-\frac{1}{8}log_2\frac{1}{8}=1.75\ bits H(X)=−21​log2​21​−41​log2​41​−81​log2​81​−81​log2​81​=1.75 bits

    我們可以看到,非均勻分布比均勻分布的熵要小。現在讓我們考慮如何把變量狀态的類别傳遞給接收者。與之前一樣,我們可以使用一個2比特的數字來完成這件事情。然而,我們可以利用非均勻分布這個特點,使用更短的編碼來描述更可能的事件,使用更長的編碼來描述不太可能的事件。

條件熵

條件熵 H(Y|X) 表示在已知随機變量 X 的條件下随機變量 Y 的不确定性。條件熵 H(Y|X) 定義為 X 給定條件下 Y 的條件機率分布的熵對 X 的數學期望:

熵資訊熵條件熵相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)交叉熵總結

條件熵 H(Y|X) 相當于聯合熵 H(X,Y) 減去單獨的熵 H(X),即

H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)-H(X) H(Y∣X)=H(X,Y)−H(X)

證明如下:

熵資訊熵條件熵相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)交叉熵總結

舉個例子,比如環境溫度是低還是高,和我穿短袖還是外套這兩個事件可以組成聯合機率分布 H(X,Y),因為兩個事件加起來的資訊量肯定是大于單一事件的資訊量的。假設 H(X) 對應着今天環境溫度的資訊量,由于今天環境溫度和今天我穿什麼衣服這兩個事件并不是獨立分布的,是以在已知今天環境溫度的情況下,我穿什麼衣服的資訊量或者說不确定性是被減少了。當已知 H(X) 這個資訊量的時候,H(X,Y) 剩下的資訊量就是條件熵:

H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)−H(X) H(Y∣X)=H(X,Y)−H(X)

是以,可以這樣了解,描述 X 和 Y 所需的資訊是描述 X 自己所需的資訊,加上給定 X 的條件下具體化 Y 所需的額外資訊。

關于條件熵的例子可以看這篇文章,講得很詳細。

條件熵

相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)

D K L ( p ∣ ∣ q ) = ∑ x p ( x ) l o g p ( x ) q ( x ) = E p ( x ) l o g p ( x ) q ( x ) D_{KL}(p||q)=\displaystyle\sum_{x}p(x)log\frac{p(x)}{q(x)}=E_{p(x)}log\frac{p(x)}{q(x)} DKL​(p∣∣q)=x∑​p(x)logq(x)p(x)​=Ep(x)​logq(x)p(x)​

性質:

1、如果 p(x) 和 q(x) 兩個分布相同,那麼相對熵等于0

2、 D K L ( p ∣ ∣ q ) ̸ = D K L ( q ∣ ∣ p ) D_{KL}(p||q)\not=D_{KL}(q||p) DKL​(p∣∣q)̸​=DKL​(q∣∣p),相對熵具有不對稱性。大家可以舉個簡單例子算一下。

3、 D K L ( p ∣ ∣ q ) ≥ 0 D_{KL}(p||q)\geq0 DKL​(p∣∣q)≥0 證明如下

熵資訊熵條件熵相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)交叉熵總結

因為:

∑ x p ( x ) = 1 \displaystyle\sum_{x}p(x)=1 x∑​p(x)=1

是以:

D K L ( p ∣ ∣ q ) ≥ 0 D_{KL}(p||q)\geq0 DKL​(p∣∣q)≥0

總結:相對熵可以用來衡量兩個機率分布之間的差異,上面公式的意義就是求 p 與 q 之間的對數差在 p 上的期望值。

交叉熵

現在有關于樣本集的兩個機率分布 p(x) 和 q(x),其中 p(x) 為真實分布, q(x) 非真實分布。如果用真實分布 p(x) 來衡量識别别一個樣本所需要編碼長度的期望(平均編碼長度)為:

H ( p ) = ∑ x p ( x ) l o g 1 p ( x ) H(p) =\displaystyle\sum_{x}p(x)log\frac{1}{p(x)} H(p)=x∑​p(x)logp(x)1​

如果使用非真實分布 q(x) 來表示來自真實分布 p(x) 的平均編碼長度,則是:

H ( p , q ) = ∑ x p ( x ) l o g 1 q ( x ) H(p,q)=\displaystyle\sum _{x}p(x)log\frac{1}{q(x)} H(p,q)=x∑​p(x)logq(x)1​(因為用 q(x) 來編碼的樣本來自于分布 q(x) ,是以 H(p,q) 中的機率是 p(x))。此時就将 H(p,q) 稱之為交叉熵。舉個例子。

考慮一個随機變量 x,真實分布 p ( x ) = ( 1 2 , 1 4 , 1 8 , 1 8 ) p(x)= \left( \displaystyle\frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{8} \right) p(x)=(21​,41​,81​,81​)非真實分布 q ( x ) = ( 1 4 , 1 4 , 1 4 , 1 4 ) q(x)=\left( \displaystyle\frac{1}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4} \right) q(x)=(41​,41​,41​,41​)

則 H ( p ) = 1.75   b i t s H(p)=1.75\ bits H(p)=1.75 bits(最短平均碼長),交叉熵

H ( p , q ) = 1 2 l o g 2 4 + 1 4 l o g 2 4 + 1 8 l o g 2 4 + 1 8 l o g 2 4 = 2   b i t s H(p,q)=\displaystyle\frac{1}{2}log_24+\frac{1}{4}log_24+\frac{1}{8}log_24+\frac{1}{8}log_24=2\ bits H(p,q)=21​log2​4+41​log2​4+81​log2​4+81​log2​4=2 bits

由此可以看出根據非真實分布 q(x) 得到的平均碼長大于根據真實分布 p(x) 得到的平均碼長。

我們再化簡一下相對熵的公式

D K L ( p ∣ ∣ q ) = ∑ x p ( x ) l o g p ( x ) q ( x ) = ∑ x p ( x ) l o g p ( x ) − p ( x ) l o g q ( x ) D_{KL}(p||q)=\displaystyle\sum_{x}p(x)log\frac{p(x)}{q(x)}=\sum_{x}p(x)logp(x)-p(x)logq(x) DKL​(p∣∣q)=x∑​p(x)logq(x)p(x)​=x∑​p(x)logp(x)−p(x)logq(x)

熵的公式

H ( p ) = − ∑ x p ( x ) l o g p ( x ) H(p)=-\displaystyle\sum_{x}p(x)logp(x) H(p)=−x∑​p(x)logp(x)

交叉熵的公式

H ( p , q ) = ∑ x p ( x ) l o g 1 q ( x ) = − ∑ x p ( x ) l o g q ( x ) H(p,q)=\displaystyle\sum _{x}p(x)log\frac{1}{q(x)}=-\sum _{x}p(x)logq(x) H(p,q)=x∑​p(x)logq(x)1​=−x∑​p(x)logq(x)

是以有:

D K L ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) D_{KL}(p||q)=H(p,q)-H(p) DKL​(p∣∣q)=H(p,q)−H(p)(當用非真實分布 q(x) 得到的平均碼長比真實分布 p(x) 得到的平均碼長多出的比特數就是相對熵)

又因為 D K L ( p ∣ ∣ q ) ≥ 0 D_{KL}(p||q)\geq0 DKL​(p∣∣q)≥0

是以 H ( p , q ) ≥ H ( p ) H(p,q)\geq H(p) H(p,q)≥H(p)(當 p(x)=q(x) 時取等号,此時交叉熵等于資訊熵)

并且當 H§ 為常量時(注:在機器學習中,訓練資料分布是固定的),最小化相對熵 D K L ( p ∣ ∣ q ) D_{KL}(p||q) DKL​(p∣∣q)

等價于最小化交叉熵 H(p,q) 也等價于最大化似然估計

在機器學習中,我們希望在訓練資料上模型學到的分布 P(model) 和真實資料的分布 P(real) 越接近越好,是以我們可以使其相對熵最小。但是我們沒有真實資料的分布,是以隻能希望模型學到的分布 P(model) 和訓練資料的分布 P(train) 盡量相同。假設訓練資料是從總體中獨立同分布采樣的,那麼我們可以通過最小化訓練資料的經驗誤差來降低模型的泛化誤差。即:

  • 希望學到的模型的分布和真實分布一緻,P(model)≃P(real)
  • 但是真實分布不可知,假設訓練資料是從真實資料中獨立同分布采樣的,P(train)≃P(real)
  • 是以,我們希望學到的模型分布至少和訓練資料的分布一緻,P(train)≃P(model)

    根據之前的描述,最小化訓練資料上的分布 P(train) 與最小化模型分布 P(model) 的差異等價于最小化相對熵,即 DKL(P(train)||P(model))。此時, P(train) 就是DKL(p||q) 中的 p,即真實分布,P(model) 就是 q。又因為訓練資料的分布 p 是給定的,是以求 DKL(p||q) 等價于求 H(p,q)。得證,交叉熵可以用來計算學習模型分布與訓練分布之間的差異。交叉熵廣泛用于邏輯回歸的Sigmoid和Softmax函數中作為損失函數使用。

總結

  • 資訊熵是衡量随機變量分布的混亂程度,是随機分布各事件發生的資訊量的期望值,随機變量的取值個數越多,狀态數也就越多,資訊熵就越大,混亂程度就越大。當随機分布為均勻分布時,熵最大;資訊熵推廣到多元領域,則可得到聯合資訊熵;條件熵表示的是在

    X 給定條件下,Y 的條件機率分布的熵對 X的期望。

  • 相對熵可以用來衡量兩個機率分布之間的差異。
  • 交叉熵可以來衡量在給定的真實分布下,使用非真實分布所指定的政策消除系統的不确定性所需要付出的努力的大小。

繼續閱讀