目錄1、信息熵熵(entropy)這一詞最初來源于熱力學(xué),。1948年,,克勞德·愛爾伍德·香農(nóng)將熱力學(xué)中的熵引入信息論,所以也被稱為香農(nóng)熵,,信息熵,。本文只討論香農(nóng)熵。首先,,我們先來理解一下信息這個概念,。信息是一個很抽象的概念,百度百科將它定義為:指音訊,、消息,、通訊系統(tǒng)傳輸和處理的對象,泛指人類社會傳播的一切內(nèi)容,。那信息可以被量化么,?可以的!香農(nóng)提出的“信息熵”概念解決了這一問題,。
一條信息的信息量大小和它的不確定性有直接的關(guān)系,。我們需要搞清楚一件非常非常不確定的事,或者是我們一無所知的事,,就需要了解大量的信息,。相反,如果我們對某件事已經(jīng)有了較多的了解,,我們就不需要太多的信息就能把它搞清楚,。所以,從這個角度,我們可以認(rèn)為,,信息量的度量就等于不確定性的多少,。比如,有人說廣東下雪了,。對于這句話,,我們是十分不確定的。因為廣東幾十年來下雪的次數(shù)寥寥無幾,。為了搞清楚,,我們就要去看天氣預(yù)報,新聞,,詢問在廣東的朋友,,而這就需要大量的信息,信息熵很高,。再比如,,中國男足進軍2022年卡塔爾世界杯決賽圈。對于這句話,,因為確定性很高,,幾乎不需要引入信息,信息熵很低,。
考慮一個離散的隨機變量 x 因為兩個事件是獨立不相關(guān)的,因此 p(x,y)=p(x)p(y) 根據(jù)這兩個關(guān)系,,很容易看出 h(x) (因為對數(shù)的運算法則是 loga(mn)=logam logan h(x)=?logp(x) 其中負(fù)號是用來保證信息量是正數(shù)或者零,。而 log
最后,我們正式引出信息熵,。 現(xiàn)在假設(shè)一個發(fā)送者想傳送一個隨機變量的值給接收者,。那么在這個過程中,他們傳輸?shù)钠骄畔⒘靠梢酝ㄟ^求 h(x)=?logp(x) H(X)=?∑xp(x)logp(x)=?n∑i=1p(xi)logp(xi) H(X) 從公式可得,,隨機變量的取值個數(shù)越多,,狀態(tài)數(shù)也就越多,信息熵就越大,,混亂程度就越大。當(dāng)隨機分布為均勻分布時,,熵最大,,且 0≤H(X)≤logn H(X,Y)=?∑x,yp(x,y)logp(x,y)=?n∑i=1m∑j=1p(xi,yi)logp(xi,yi) 注意點:1、熵只依賴于隨機變量的分布,與隨機變量取值無關(guān),,所以也可以將 X
那么這些定義有著什么樣的性質(zhì)呢,?考慮一個隨機變量 x 現(xiàn)在考慮一個具有4種可能的狀態(tài) {a,b,c,d} 這種情形下的熵為: H(X)=?12log212?14log214?18log218?18log218=1.75 bits 我們可以看到,非均勻分布比均勻分布的熵要小?,F(xiàn)在讓我們考慮如何把變量狀態(tài)的類別傳遞給接收者,。與之前一樣,我們可以使用一個2比特的數(shù)字來完成這件事情,。然而,,我們可以利用非均勻分布這個特點,使用更短的編碼來描述更可能的事件,,使用更長的編碼來描述不太可能的事件,。我們希望這樣做能夠得到一個更短的平均編碼長度。我們可以使用下面的編碼串(哈夫曼編碼):0、10,、110,、111來表示狀態(tài) {a,b,c,d} average code length = 12×1 14×2 2×18×3=1.75 bits 這個值與上方的隨機變量的熵相等,。熵和最短編碼長度的這種關(guān)系是一種普遍的情形,。Shannon編碼定理https://baike.baidu.com/item/Shannon%20%E7%BC%96%E7%A0%81%E5%AE%9A%E7%90%86/15585931?fr=aladdin 表明熵是傳輸一個隨機變量狀態(tài)值所需的比特位下界(最短平均編碼長度)。因此,,信息熵可以應(yīng)用在數(shù)據(jù)壓縮方面,。這里這篇文章http://www./blog/2014/09/information-entropy.html講的很詳細(xì)了,我就不贅述了,。
證明0≤H(X)≤logn 利用拉格朗日乘子法證明: 因為 p(1) p(2) ? p(n)=1 所以有 目標(biāo)函數(shù):f(p(1),p(2),…,p(n))=?(p(1)logp(1) p(2)logp(2) ? p(n)logp(n)) 約束條件:g(p(1),p(2),…,p(n),λ)=p(1) p(2) ? p(n)?1=0
1,、定義拉格朗日函數(shù): L(p(1),p(2),…,p(n),λ)=?(p(1)logp(1) p(2)logp(2) ? p(n)logp(n)) λ(p(1) p(2) ? p(n)?1) 2、L(p(1),p(2),…,p(n),λ) λ?log(e?p(1))=0 λ?log(e?p(2))=0 …… λ?log(e?p(n))=0 p(1) p(2) ? p(n)?1=0 3,、求出 p(1),p(2),…,p(n) 解方程得,p(1)=p(2)=?=p(n)=1n 代入 f(p(1),p(2),…,p(n)) 由此可證 logn 2,、條件熵條件熵 H(Y|X)
H(Y|X)=H(X,Y)?H(X)
舉個例子,比如環(huán)境溫度是低還是高,,和我穿短袖還是外套這兩個事件可以組成聯(lián)合概率分布 H(X,Y) H(Y|X)=H(X,Y)?H(X) 因此,可以這樣理解,,描述 X
3,、相對熵(KL散度)設(shè) p(x) DKL(p||q)=∑xp(x)logp(x)q(x)=Ep(x)logp(x)q(x) 性質(zhì): 1,、如果 p(x) 2、DKL(p||q)≠DKL(q||p) 3,、DKL(p||q)≥0
因為: ∑xp(x)=1 所以: DKL(p||q)≥0 總結(jié):相對熵可以用來衡量兩個概率分布之間的差異,,上面公式的意義就是求 p 4,、交叉熵現(xiàn)在有關(guān)于樣本集的兩個概率分布 p(x) H(p)=∑xp(x)log1p(x) 如果使用非真實分布 q(x) H(p,q)=∑xp(x)log1q(x)
我們再化簡一下相對熵的公式,。DKL(p||q)=∑xp(x)logp(x)q(x)=∑xp(x)logp(x)?p(x)logq(x) 有沒有發(fā)現(xiàn)什么,? 熵的公式 H(p)=?∑xp(x)logp(x) 交叉熵的公式 H(p,q)=∑xp(x)log1q(x)=?∑xp(x)logq(x) 所以有: DKL(p||q)=H(p,q)?H(p)(當(dāng)用非真實分布 q(x) 得到的平均碼長比真實分布 p(x) 得到的平均碼長多出的比特數(shù)就是相對熵) 又因為 DKL(p||q)≥0 所以 H(p,q)≥H(p)(當(dāng) p(x)=q(x) 時取等號,此時交叉熵等于信息熵) 并且當(dāng) H(p) 為常量時(注:在機器學(xué)習(xí)中,,訓(xùn)練數(shù)據(jù)分布是固定的),,最小化相對熵 DKL(p||q) 等價于最小化交叉熵 H(p,q) 也等價于最大化似然估計(具體參考Deep Learning 5.5)。
在機器學(xué)習(xí)中,,我們希望在訓(xùn)練數(shù)據(jù)上模型學(xué)到的分布 P(model) 和真實數(shù)據(jù)的分布 P(real) 越接近越好,,所以我們可以使其相對熵最小。但是我們沒有真實數(shù)據(jù)的分布,,所以只能希望模型學(xué)到的分布 P(model) 和訓(xùn)練數(shù)據(jù)的分布 P(train) 盡量相同,。假設(shè)訓(xùn)練數(shù)據(jù)是從總體中獨立同分布采樣的,那么我們可以通過最小化訓(xùn)練數(shù)據(jù)的經(jīng)驗誤差來降低模型的泛化誤差,。即:
根據(jù)之前的描述,最小化訓(xùn)練數(shù)據(jù)上的分布 P(train) 與最小化模型分布 P(model) 的差異等價于最小化相對熵,,即 DKL(P(train)||P(model)),。此時, P(train) 就是DKL(p||q) 中的 p,,即真實分布,,P(model) 就是 q。又因為訓(xùn)練數(shù)據(jù)的分布 p 是給定的,,所以求 DKL(p||q) 等價于求 H(p,q),。得證,交叉熵可以用來計算學(xué)習(xí)模型分布與訓(xùn)練分布之間的差異,。交叉熵廣泛用于邏輯回歸的Sigmoid和Softmax函數(shù)中作為損失函數(shù)使用,。這篇文章先不說了。
5,、總結(jié)
或者:
6,、參考1、吳軍《數(shù)學(xué)之美》 2,、李航《統(tǒng)計學(xué)習(xí)方法》 3,、馬春鵬《模式識別與機器學(xué)習(xí)》 3,、https://www.zhihu.com/question/41252833 如何通俗的解釋交叉熵與相對熵 4、https://www.zhihu.com/question/65288314/answer/244557337為什么交叉熵(cross-entropy)可以用于計算代價,? 5,、https://baike.baidu.com/item/%E4%BA%A4%E5%8F%89%E7%86%B5/8983241?fr=aladdin 交叉熵的百度百科解釋 6、https://blog.csdn.net/saltriver/article/details/53056816信息熵到底是什么 7,、后記本人不是大神,,大牛。目前寫博客是為了讓我自己更深刻地記憶學(xué)過的知識和對知識進行梳理,。這篇博客是我的第一篇,,其中借鑒了不少其他博主的博客里的分享,都有標(biāo)注來源,,如有遺忘,,勞煩提醒,衷心感謝他們對自己所掌握的知識的分享,。這篇博客可能還存在著一些錯誤,,如有發(fā)現(xiàn),請求斧正,,謝謝,。 |
|