首先先強烈推薦一篇外文部落格Visual Information Theory這個部落格的部落客colah是個著名的計算機知識科普達人,以前很是著名的那篇LSTM講解的文章也是他寫的。這篇文章詳細講解了資訊論中許多基本概念的前因後果,并且很是的直覺用了大量的圖檔,和形象化的解釋。git
資訊量
資訊量用一個資訊所須要的編碼長度來定義,而一個資訊的編碼長度跟其出現的幾率呈負相關,由于一個短編碼的代價也是巨大的,由于會放棄全部以其為字首的編碼方式,好比字母”a”用單一個0做為編碼的話,那麼為了不歧義,就不能有其餘任何0開頭的編碼詞了.是以一個詞出現的越頻繁,則其編碼方式也就越短,同時付出的代價也大.
github
I=log2(1p(x))=−log2(p(x))
資訊熵
而資訊熵則表明一個分布的資訊量,或者編碼的平均長度
web
H(p)=∑xp(x)log2(1p(x))=−∑xp(x)log2(p(x))
即資訊量的均值
交叉熵 cross-entropy
交叉熵本質上能夠當作,用一個猜想的分布的編碼方式去編碼其真實的分布,獲得的平均編碼長度或者資訊量
機器學習
Hp(q)=∑xq(x)log2(1p(x))
如上面的式子,用猜的的p分布,去編碼本來真是為q的分布,獲得的資訊量
交叉熵 cross-entropy在機器學習領域的做用
交叉熵cross-entropy在機器學習領域中常常做為最後的損失函數
為何要用cross-entropy呢,他本質上至關于衡量兩個編碼方式之間的內插補點,由于隻有當猜想的分布約接近于真實分布,則其值越小。
好比根據本身模型獲得的A的幾率是80%,獲得B的幾率是20%,真實的分布是應該獲得A,則意味着獲得A的幾率是100%,是以
svg
L=−∑iyilog(p(xi))+(1−yi)log(1−p(xi))
在LR中用cross-entry比平方偏差方法好在:
在LR中,若是用平方損失函數,則損失函數是一個非凸的,而用cross-entropy的話就是一個凸函數
用cross-entropy作LR求導的話,獲得的導數公式以下
∂L∂θj=−∑i(yi−p(xi))xij
而用平方損失函數的話,其求導結果為
∂L∂θj=−∑i(yi−p(xi))p′(xi)
平方損失函數中會出現p′(xi)而sigmoid函數的導數會出現梯度消失的問題【一些人稱之為飽和現象】
KL散度
KL散度/距離是衡量兩個分布的距離,KL距離通常用D(q||p)或者Dq(p)稱之為q對p的相對熵函數
Dq(p)=Hq(p)−H(p)=∑xq(x)log2(q(x)p(x))
KL散度與cross-entropy的關系
用圖像形象化的表示兩者之間的關系能夠以下圖:
上面是q所含的資訊量/平均編碼長度H(p)
第二行是cross-entropy,即用q來編碼p所含的資訊量/平均編碼長度|或者稱之為q對p的cross-entropy
第三行是上面二者之間的內插補點即為q對p的KL距離post
非負性證明
根據上圖顯然其為非負的,可是怎麼去證明呢,仍是利用琴生不等式
學習
Dq(p)=∑xq(x)log2(q(x)p(x))
=−∑xq(x)log2(p(x)q(x))
=−E(log2(p(x)q(x)))
≥log2E(p(x)q(x))
=log2∑xq(x)(p(x)q(x))
=log2∑xp(x)
由于
∑xp(x)=1
是以上式
Dq(p)≥0
非負性證明完成
聯合資訊熵和條件資訊熵
下面幾條咱們要說的是聯合分布中(即同一個分布中)的兩個變量互相影響的關系,上面說的KL和cross-entropy是兩個不一樣分布之間的距離度量【我的了解是KL距離是對于同一個随機事件的不一樣分布度量之間的距離,是以是1.同一随機事件*2.不一樣分布*】。
編碼
聯合資訊熵:
atom
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)剩餘的資訊量
互資訊(資訊增益)
互資訊就是一個聯合分布中的兩個資訊的糾纏程度/或者叫互相影響那部分的資訊量
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是
兩個不一樣分布之間的距離度量
非負性證明
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