首先先強烈推薦一篇外文博客Visual Information Theory這個博客的博主colah是個著名的計算機知識科普達人,之前非常著名的那篇LSTM講解的文章也是他寫的。這篇文章詳細講解了信息論中許多基本概念的來龍去脈,而且非常的直觀用了大量的圖片,和形象化的解釋。
信息量
信息量用一個信息所需要的編碼長度來定義,而一個信息的編碼長度跟其出現的概率呈負相關,因爲一個短編碼的代價也是巨大的,因爲會放棄所有以其爲前綴的編碼方式,比如字母”a”用單一個0作爲編碼的話,那麼爲了避免歧義,就不能有其他任何0開頭的編碼詞了.所以一個詞出現的越頻繁,則其編碼方式也就越短,同時付出的代價也大.
信息熵
而信息熵則代表一個分佈的信息量,或者編碼的平均長度
即信息量的均值
交叉熵 cross-entropy
交叉熵本質上可以看成,用一個猜測的分佈的編碼方式去編碼其真實的分佈,得到的平均編碼長度或者信息量
如上面的式子,用猜的的p分佈,去編碼原本真是爲q的分佈,得到的信息量
交叉熵 cross-entropy在機器學習領域的作用
交叉熵cross-entropy在機器學習領域中經常作爲最後的損失函數
爲什麼要用cross-entropy呢,他本質上相當於衡量兩個編碼方式之間的差值,因爲只有當猜測的分佈約接近於真實分佈,則其值越小。
比如根據自己模型得到的A的概率是80%,得到B的概率是20%,真實的分佈是應該得到A,則意味着得到A的概率是100%,所以
在LR中用cross-entry比平方誤差方法好在:
- 在LR中,如果用平方損失函數,則損失函數是一個非凸的,而用cross-entropy的話就是一個凸函數
- 用cross-entropy做LR求導的話,得到的導數公式如下
∂L∂θj=−∑i(yi−p(xi))xij” role=”presentation”>∂L∂θj=−∑i(yi−p(xi))xij∂L∂θj=−∑i(yi−p(xi))xij
而用平方損失函數的話,其求導結果爲
∂L∂θj=−∑i(yi−p(xi))p′(xi)” role=”presentation”>∂L∂θj=−∑i(yi−p(xi))p′(xi)∂L∂θj=−∑i(yi−p(xi))p′(xi)
平方損失函數中會出現p′(xi)” role=”presentation”>p′(xi)p′(xi)而sigmoid函數的導數會出現梯度消失的問題【一些人稱之爲飽和現象】
KL散度
KL散度/距離是衡量兩個分佈的距離,KL距離一般用D(q||p)” role=”presentation”>D(q||p)D(q||p)稱之爲q對p的相對熵
KL散度與cross-entropy的關係
用圖像形象化的表示二者之間的關係可以如下圖:
上面是q所含的信息量/平均編碼長度H(p)” role=”presentation”>H(p)H(p)
第二行是cross-entropy,即用q來編碼p所含的信息量/平均編碼長度|或者稱之爲q對p的cross-entropy
第三行是上面兩者之間的差值即爲q對p的KL距離
非負性證明
根據上圖顯然其爲非負的,但是怎麼去證明呢,還是利用琴生不等式
因爲∑xp(x)=1” role=”presentation”>∑xp(x)=1∑xp(x)=1
所以上式
非負性證明完成
聯合信息熵和條件信息熵
下面幾條我們要說的是聯合分佈中(即同一個分佈中)的兩個變量相互影響的關係,上面說的KL和cross-entropy是兩個不同分佈之間的距離度量【個人理解是KL距離是對於同一個隨機事件的不同分佈度量之間的距離,所以是1.同一隨機事件*2.不同分佈*】。
聯合信息熵:
條件信息熵:
舉個例子,更容易理解一些,比如天氣是晴天還是陰天,和我穿短袖還是長袖這兩個事件其可以組成聯合概率分佈H(X,Y)” role=”presentation”>H(X,Y)H(X,Y)對應着今天天氣分佈的信息量。
而今天天氣和我今天穿衣服這兩個隨機概率事件並不是獨立分佈的,所以如果已知今天天氣的情況下,我的穿衣的信息量/不確定程度是減少了的。
所以當已知H(x)” role=”presentation”>H(x)H(x)剩餘的信息量就是條件熵:
根據上面那個圖,也可以通俗的理解爲已知X的情況下,H(X,Y)剩餘的信息量
互信息(信息增益)
互信息就是一個聯合分佈中的兩個信息的糾纏程度/或者叫相互影響那部分的信息量
決策樹中的信息增益就是互信息,決策樹是採用的上面第二種計算方法,即把分類的不同結果看成不同隨機事件Y,然後把當前選擇的特徵看成X,則信息增益就是當前Y的信息熵減去已知X情況下的信息熵。
通過下圖的刻畫更爲直觀一些
以上圖可以清楚的看到互信息I(X,Y)” role=”presentation”>I(X,Y)I(X,Y)的不同求法
這裏還有另外一個量叫variation of information【不知道中文名叫啥】
Variation of information度量了不同隨機變量之間的差別,如果V(X,Y)=0” role=”presentation”>V(X,Y)=0V(X,Y)=0說明這兩個變量是完全一致的,其約大說明兩個變量越獨立。
這裏再注意一下Variation of information和KL距離的差別:
Variation of information是聯合分佈中(即同一個分佈中)的兩個變量相互影響的關係
KL和cross-entropy是兩個不同分佈之間的距離度量
非負性證明
即互信息可以轉化成兩個分佈P(X,Y)” role=”presentation”>P(X,Y)P(X,Y)之間的KL距離,而KL距離的非負性在上面已經被證明過了,所以
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
</div>