條件熵,相對熵,交叉熵,聯(lián)合熵,信息增益

1 條件熵

1.1 條件熵的定義

X給定的條件下,Y的條件概率分布的熵對X的期望;
條件熵H(Y\mid X)表示在已知隨機變量X的條件下隨機變量Y的不確定性。

\begin{align*} H(Y\mid X)&=\sum_{x\in X}p(x)H(Y\mid X) \\ &=-\sum_{x\in X}p(x)\sum_{y\in Y}p(y\mid x)\log{p(y\mid x)} \\ &= -\sum_{x\in X}\sum_{y\in Y}p(x,y)\log{p(y\mid x)} \end{align*}

因為條件熵中X也是一個變量,意思是在一個變量X的條件下(變量X的所有值都會?。?,另一個變量Y熵對X的期望;

1.2 舉例說明條件熵

帥? 性格好? 身高? 上進? 嫁?
不好 不上進 不嫁
不帥 上進 不嫁
上進
不帥 爆好 上進
不好 上進 不嫁
不好 上進 不嫁
不上進
不帥 上進
爆好 上進
不帥 不好 上進
不上進 不嫁
不上進 不嫁

Y={嫁,不嫁},統(tǒng)計“嫁”的概率6/12,“不嫁”的概率6/12;
計算Y的熵H(Y)=-1/2\log(1/2)-1/2\log(1/2)=\log(2)

為了引入條件熵,我們現(xiàn)在還有一個變量X,代表長相是“帥”還是“不帥”。
不帥的情況有4個,有1個不愿嫁,3個愿意;
H(Y\mid X=不帥)=-1/4\log(1/4)-3/4\log(3/4)
p(X=不帥)=4/12=1/3

帥的情況有8個,不愿意嫁5個,愿意嫁的為3個;
H(Y\mid X=帥)=-5/8\log(5/8)-3/8\log(3/8)
p(X=帥)=8/12=2/3

H(Y\mid X=長相)=p(X=帥)*H(Y\mid X=帥)+p(X=不帥)*H(Y\mid X=不帥)

>>> -5/8*(np.log2(5)-np.log2(8))-3/8*(np.log2(3)-np.log2(8))
0.6780719051126378

1.3 條件熵的另一種解釋

條件熵H(Y\mid X)相當于聯(lián)合熵H(X,Y),減去單獨的熵 H(X),即:
H(Y\mid X)=H(X,Y)-H(X)
證明過程參考[1]。

從以上的推導可以看出:H(X,Y)\geq H(X)\geq H(X|Y)。

2 相對熵(Relative entropy),也稱為KL散度(Kullback-Leibler diver)

如何衡量兩個概率分布之間的差異?(相對熵)

定義:
p(x),q(x)是離散隨機變量X中取值的兩個概率分布,則pq的相對熵是:
D_{KL}(p\|q)=\sum_x{p(x)\log{\frac{p(x)}{q(x)}}}=E_{p(x)}\log{\frac{p(x)}{q(x)}}

  • 如果p(x)q(x)兩個分布相同,那么相對熵等于0;
  • D_{KL}(p\|q)\neq D_{KL}(q\|p),相對熵具有不對稱性;
  • D_{KL}(p\|q)\geq 0

相對熵可以從來衡量兩個概率分布之間的差異,上面公式的意義就是求pq之差在p上的期望;

3 交叉熵(Cross entropy)

用以衡量在給定的真實分布下,使用非真實分布所給定的策略消除系統(tǒng)的不穩(wěn)定性所付出的努力的大小;

有兩個概率分布p(x)q(x),其中p(x)是真實分布,q(x)是非真實分布,如果用真實分布p(x)來衡量一個樣本所需要編碼長度的期望(平均編碼長度)為:
H(P)=\sum_x{p(x)\log{\frac{1}{p(x)}}}
如果使用非真實分布q(x)來表示來自真實分布p(x)的平均編碼長度,則是:
H(p,q)=\sum_x{p(x)\log{\frac{1}{q(x)}}}
這就是交叉熵。

3.1 H(P)的含義[2]

對于變長編碼(如哈夫曼碼),必須保證任何編碼不是其他編碼的前綴,符合這一特性的編碼叫做前綴碼(prefix codes)。
前綴碼的意義在于解碼簡單,但是會帶來個問題,就是編碼損失(不是所有的組合都可以)。如當前編碼為"01",長度L=2,那01開始的其他編碼如("010","011")(總長度為3舉例)就不能再使用。
損失的長度為1/2^L。
所以為了對信息進行最優(yōu)編碼的目的,往往需要對短編碼和短編碼損失進行權衡;

將短編碼帶來的損失稱為編碼代價,通常根據(jù)X出現(xiàn)的概率P(X)來分配編碼代價,假設X的編碼長度為L(X)
\frac{1}{2^{L(x)}}=P(X)\Rightarrow L(X)=\log_2(1/P(X))
平均編碼長度則為:
H(p)=\sum_x{p(x)\log_2{\left(\frac{1}{p(x)}\right)}}

3.2 如何理解交叉熵

如現(xiàn)在有另一個序列服從p分布,但是它仍然使用q分布的最優(yōu)編碼方式,那它的平均編碼長度即為:
H(p,q)=\sum_x{p(x)\log{\frac{1}{q(x)}}}
上式稱為p分布相對q分布的交叉熵,衡量了p分布使用q分布的最優(yōu)編碼方式時的平均編碼長度。
交叉熵根據(jù)相對熵的公式可以得出:
D_{KL}(p\|q)=H(p,q)-H(p)
D_{KL}(p\|q)\geq 0可以理解為用其他方式的最優(yōu)編碼(q)和自己方式的最優(yōu)編碼(p)之差。

4 聯(lián)合熵和互信息

定義聯(lián)合熵如下:
H(X,Y)=\sum_{x,y}{p(x,y)\log_2{\left(\frac{1}{p(x,y)}\right)}}
根據(jù)條件熵定義:
H(X,Y)=H(X)+H(Y\mid X)=H(Y)+H(X\mid Y)

定義互信息(Mutual Entropy)如下:
I(X,Y)=H(X)+H(Y)-H(X,Y)
定義差異信息(Variation of Information):
V(X,Y)=H(X,Y)-I(X,Y)

對應關系

信息增益
MI(Y,X)=H(Y)-H(Y\mid X)
MI(X,Y)=H(X)-H(X\mid Y)

信息增益

決策書中信息增益等于互信息。

參考1:通俗理解條件熵
參考2:信息論與機器學習


  1. 證明過程參考《詳解機器學習中的熵、條件熵、相對熵和交叉熵》 ?

  2. 參考《信息論與機器學習》 ?

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容