信息熵、交叉熵與相對熵(KL散度)的關係,還介紹了聯合信息熵和條件熵、互信息(信息增益)的概念

@(關於機器學習的其他)[KL散度][信息熵][交叉熵]


1、信息量

信息量用一個信息所需要的編碼長度來定義,而一個信息的編碼長度跟其出現的概率呈負相關,因爲一個短編碼的代價也是巨大的,因爲會放棄所有以其爲前綴的編碼方式,比如字母”a”用單一個0作爲編碼的話,那麼爲了避免歧義,就不能有其他任何0開頭的編碼詞了.所以一個詞出現的越頻繁,則其編碼方式也就越短,同時付出的代價也大.

其實也就可以說一件事情發生概率很小的話,那麼當他發生的時候所代表的信息量也更大

I=log2(1p(x))=log2(p(x))

2、信息熵

而信息熵則代表一個分佈的信息量,或者編碼的平均長度

  1. 信息熵代表的是隨機變量或整個系統的不確定性,熵越大,隨機變量或系統的不確定性就越大。也就是信息量的一個總期望值也叫均值
  2. 根據真實分佈,我們能夠找到一個最優策略,以最小的代價消除系統的不確定性,而這個代價大小就是信息熵
  3. 信息熵衡量了系統的不確定性,而我們要消除這個不確定性,所要付出的【最小努力】(猜題次數、編碼長度等)的大小就是信息熵

H(p)=xp(x)log2(1p(x))=xp(x)log2(p(x))

3、交叉熵cross-entropy

交叉熵本質上可以看成,用一個猜測的分佈的編碼方式去編碼其真實的分佈,得到的平均編碼長度或者信息量

交叉熵,用來衡量在給定的真實分佈p 下,使用非真實分佈q 所指定的策略消除系統的不確定性所需要付出的努力的大小
交叉熵越低,這個策略就越好,最低的交叉熵也就是使用了真實分佈所計算出來的信息熵,因爲此時 ,交叉熵 = 信息熵。這也是爲什麼在機器學習中的分類算法中,我們總是最小化交叉熵,因爲交叉熵越低,就證明由算法所產生的策略最接近最優策略,也間接證明我們算法所算出的非真實分佈越接近真實分佈。

Hp(q)=xp(x)log2(1q(x))

3.1 交叉熵 cross-entropy在機器學習領域的作用

交叉熵cross-entropy在機器學習領域中經常作爲最後的損失函數
爲什麼要用cross-entropy呢,根據上面的解釋,他本質上相當於衡量兩個分佈之間的距離,因爲只有當猜測的分佈約接近於真實分佈,則其值越小,下确界爲真是分佈計算的信息熵大小。

L=iyilog(p(xi))+(1yi)log(1p(xi))

在LR中用cross-entry比平方誤差方法好在:
1. 在LR中,如果用平方損失函數,則損失函數是一個非凸的,而用cross-entropy的話就是一個凸函數
2. 用cross-entropy做LR求導的話,得到的導數公式如下
Lθj=i(yip(xi))xij

而用平方損失函數的話,其求導結果爲:
Lθj=i(yip(xi))p(xi)

平方損失函數中會出現p(xi) 而sigmoid函數的導數會出現梯度消失的問題

4、相對熵(KL散度)

KL散度/距離是衡量兩個分佈的距離,KL距離一般用D(p||q) 或者Dp(q) 稱之爲pq 的相對熵

Dp(q)=Hp(q)H(p)=xp(x)log2(p(x)q(x))

4.1 相對熵(KL散度)與cross-entropy的關係

即:相對熵 = 某個策略的交叉熵 - 信息熵
由之前分析易知此衡量指標的下确界爲0,因爲交叉熵最小等於信息熵

4.2 相對熵(KL散度)非負性證明

利用琴生不等式:

Dp(q)=xp(x)log2(p(x)q(x))

=xp(x)log2(q(x)p(x))

=E(log2(q(x)p(x)))

log2E(q(x)p(x))

=log2xp(x)(q(x)p(x))

=log2xq(x)

因爲xq(x)=1
所以上式

Dp(q)0

非負性證明完成

5、聯合信息熵和條件信息熵

下面我們要說的是聯合分佈中(即同一個分佈中)的兩個變量相互影響的關係,上面說的KL和cross-entropy是兩個不同分佈之間的距離度。
這裏寫圖片描述
聯合信息熵:

H(X,Y)=x,yp(x,y)log2(1p(x,y))

條件信息熵:
H(X|Y)=yp(y)xp(x|y)log2(1p(x|y))

=x,yp(x,y)log2(1p(x|y))

舉個例子,更容易理解一些,比如天氣是晴天還是陰天,和我穿短袖還是長袖這兩個事件其可以組成聯合信息熵H(X,Y) ,而對於H(x) 就是天氣單獨一個事件的信息熵,因爲兩個事件組合起來的信息量肯定是大於單一一個事件的信息量的。
而今天天氣和我今天穿衣服這兩個隨機概率事件並不是獨立分佈的,所以如果已知今天天氣的情況下,我的穿衣與天氣的聯合信息量/不確定程度是減少了的,也就相當於兩者聯合信息量已知了今天下雨,那麼H(x) 的信息量就應該被減去,得到當前的新聯合信息量,也相當於條件信息量。
所以當已知H(x) 這個信息量的時候,聯合分佈H(X,Y) 剩餘的信息量就是條件熵:

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

根據上面那個圖,也可以通俗的理解爲已知X的情況下,H(X,Y)剩餘的信息量

6、互信息(信息增益)

互信息就是一個聯合分佈中的兩個信息的糾纏程度/或者叫相互影響那部分的信息量

I(X,Y)=H(X)+H(Y)H(X,Y)

I(X,Y)=H(Y)H(Y|X)

決策樹中的信息增益就是互信息,決策樹是採用的上面第二種計算方法,即把分類的不同結果看成不同隨機事件Y,然後把當前選擇的特徵看成X,則信息增益就是當前Y的信息熵減去已知X情況下的信息熵。

通過下圖的刻畫更爲直觀一些
這裏寫圖片描述
以上圖可以清楚的看到互信息I(X,Y) 的不同求法
這裏還有另外一個量叫variation of information【不知道中文名叫啥】

V(X,Y)=H(X,Y)I(X,Y)

Variation of information度量了不同隨機變量之間的差別,如果V(X,Y)=0說明這兩個變量是完全一致的,其約大說明兩個變量越獨立。
這裏再注意一下Variation of information和KL距離的差別:
Variation of information是聯合分佈中(即同一個分佈中)的兩個變量相互影響的關係
KL和cross-entropy是兩個不同分佈之間的距離度量

6.1 非負性證明

I(X,Y)=H(X)+H(Y)H(X,Y)

=x,yp(x,y)(log(p(x))+log(p(y))log(p(x,y)))

=x,yp(x,y)(log(p(x)p(y)p(x,y)))

=D(P(X,Y)||P(X)P(Y))

即互信息可以轉化成兩個分佈P(X,Y)P(X)P(Y) 之間的KL距離,而KL距離的非負性在上面已經被證明過了,所以
I(X,Y)0

參考資料:

[1] 國外博客:http://colah.github.io/posts/2015-09-Visual-Information/
[2] csdn博客:https://blog.csdn.net/haolexiao/article/details/70142571
[3] 知乎回答:https://www.zhihu.com/question/41252833

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章