matlab图像信息熵交叉熵,【机器学习】信息量,信息熵,交叉熵,KL散度和互信息(信息增益)...
首先先強烈推薦一篇外文博客Visual Information Theory這個博客的博主colah是個著名的計算機知識科普達人,以前很是著名的那篇LSTM講解的文章也是他寫的。這篇文章詳細講解了信息論中許多基本概念的前因后果,并且很是的直觀用了大量的圖片,和形象化的解釋。git
信息量
信息量用一個信息所須要的編碼長度來定義,而一個信息的編碼長度跟其出現(xiàn)的幾率呈負相關(guān),由于一個短編碼的代價也是巨大的,由于會放棄全部以其為前綴的編碼方式,好比字母”a”用單一個0做為編碼的話,那么為了不歧義,就不能有其余任何0開頭的編碼詞了.因此一個詞出現(xiàn)的越頻繁,則其編碼方式也就越短,同時付出的代價也大.
github
I=log2(1p(x))=?log2(p(x))
信息熵
而信息熵則表明一個分布的信息量,或者編碼的平均長度
web
H(p)=∑xp(x)log2(1p(x))=?∑xp(x)log2(p(x))
即信息量的均值
交叉熵 cross-entropy
交叉熵本質(zhì)上能夠當作,用一個猜想的分布的編碼方式去編碼其真實的分布,獲得的平均編碼長度或者信息量
機器學習
Hp(q)=∑xq(x)log2(1p(x))
如上面的式子,用猜的的p分布,去編碼本來真是為q的分布,獲得的信息量
交叉熵 cross-entropy在機器學習領(lǐng)域的做用
交叉熵cross-entropy在機器學習領(lǐng)域中常常做為最后的損失函數(shù)
為何要用cross-entropy呢,他本質(zhì)上至關(guān)于衡量兩個編碼方式之間的差值,由于只有當猜想的分布約接近于真實分布,則其值越小。
好比根據(jù)本身模型獲得的A的幾率是80%,獲得B的幾率是20%,真實的分布是應(yīng)該獲得A,則意味著獲得A的幾率是100%,因此
svg
L=?∑iyilog(p(xi))+(1?yi)log(1?p(xi))
在LR中用cross-entry比平方偏差方法好在:
在LR中,若是用平方損失函數(shù),則損失函數(shù)是一個非凸的,而用cross-entropy的話就是一個凸函數(shù)
用cross-entropy作LR求導的話,獲得的導數(shù)公式以下
?L?θj=?∑i(yi?p(xi))xij
而用平方損失函數(shù)的話,其求導結(jié)果為
?L?θj=?∑i(yi?p(xi))p′(xi)
平方損失函數(shù)中會出現(xiàn)p′(xi)而sigmoid函數(shù)的導數(shù)會出現(xiàn)梯度消失的問題【一些人稱之為飽和現(xiàn)象】
KL散度
KL散度/距離是衡量兩個分布的距離,KL距離通常用D(q||p)或者Dq(p)稱之為q對p的相對熵函數(shù)
Dq(p)=Hq(p)?H(p)=∑xq(x)log2(q(x)p(x))
KL散度與cross-entropy的關(guān)系
用圖像形象化的表示兩者之間的關(guān)系能夠以下圖:
上面是q所含的信息量/平均編碼長度H(p)
第二行是cross-entropy,即用q來編碼p所含的信息量/平均編碼長度|或者稱之為q對p的cross-entropy
第三行是上面二者之間的差值即為q對p的KL距離post
非負性證實
根據(jù)上圖顯然其為非負的,可是怎么去證實呢,仍是利用琴生不等式
學習
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
非負性證實完成
聯(lián)合信息熵和條件信息熵
下面幾條咱們要說的是聯(lián)合分布中(即同一個分布中)的兩個變量相互影響的關(guān)系,上面說的KL和cross-entropy是兩個不一樣分布之間的距離度量【我的理解是KL距離是對于同一個隨機事件的不一樣分布度量之間的距離,因此是1.同一隨機事件*2.不一樣分布*】。
編碼
聯(lián)合信息熵:
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))
舉個例子,更容易理解一些,好比天氣是晴天仍是陰天,和我穿短袖仍是長袖這兩個事件其能夠組成聯(lián)合幾率分布
H(X,Y)
因此對應(yīng)著上面的第一條,而對于
H(x)
來講就是下面第二橫行,由于兩個時間加起來的信息量確定是大于單一一個事件的信息量的。像
H(x)
對應(yīng)著今每天氣分布的信息量。
而今每天氣和我今天穿衣服這兩個隨機幾率事件并非獨立分布的,因此若是已知今每天氣的狀況下,個人穿衣的信息量/不肯定程度是減小了的。
因此當已知
H(x)
這個信息量的時候,聯(lián)合分布
H(X,Y)
剩余的信息量就是
條件熵:
H(Y|X)=H(X,Y)?H(X)
根據(jù)上面那個圖,也能夠通俗的理解為已知X的狀況下,H(X,Y)剩余的信息量
互信息(信息增益)
互信息就是一個聯(lián)合分布中的兩個信息的糾纏程度/或者叫相互影響那部分的信息量
I(X,Y)=H(X)+H(Y)?H(X,Y)
I(X,Y)=H(Y)?H(Y|X)
決策樹中的信息增益就是互信息,決策樹是采用的上面第二種計算方法,即把分類的不一樣結(jié)果當作不一樣隨機事件Y,而后把當前選擇的特征當作X,則信息增益就是當前Y的信息熵減去已知X狀況下的信息熵。
經(jīng)過下圖的刻畫更為直觀一些
以上圖能夠清楚的看到互信息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是聯(lián)合分布中(即
同一個分布中)的兩個變量相互影響的關(guān)系
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))
即互信息能夠轉(zhuǎn)化成兩個分布
P(X,Y)
和
P(X)P(Y)
之間的KL距離,而KL距離的非負性在上面已經(jīng)被證實過了,因此
I(X,Y)≥0
總結(jié)
以上是生活随笔為你收集整理的matlab图像信息熵交叉熵,【机器学习】信息量,信息熵,交叉熵,KL散度和互信息(信息增益)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring DI(依赖注入)
- 下一篇: leetcode 三数之和 python