相对熵与交叉熵_详解机器学习中的熵、条件熵、相对熵、交叉熵
目錄
信息熵
條件熵
相對(duì)熵
交叉熵
總結(jié)
一??信息熵 (information entropy)
熵 (entropy) 這一詞最初來(lái)源于熱力學(xué)。1948年,克勞德·愛(ài)爾伍德·香農(nóng)將熱力學(xué)中的熵引入信息論,所以也被稱為香農(nóng)熵 (Shannon entropy),信息熵 (information entropy)。本文只討論信息熵。首先,我們先來(lái)理解一下信息這個(gè)概念。信息是一個(gè)很抽象的概念,百度百科將它定義為:指音訊、消息、通訊系統(tǒng)傳輸和處理的對(duì)象,泛指人類(lèi)社會(huì)傳播的一切內(nèi)容。那信息可以被量化么?可以的!香農(nóng)提出的“信息熵”概念解決了這一問(wèn)題。
一條信息的信息量大小和它的不確定性有直接的關(guān)系。我們需要搞清楚一件非常非常不確定的事,或者是我們一無(wú)所知的事,就需要了解大量的信息。相反,如果我們對(duì)某件事已經(jīng)有了較多的了解,我們就不需要太多的信息就能把它搞清楚。所以,從這個(gè)角度,我們可以認(rèn)為,信息量的度量就等于不確定性的多少。比如,有人說(shuō)廣東下雪了。對(duì)于這句話,我們是十分不確定的。因?yàn)閺V東幾十年來(lái)下雪的次數(shù)寥寥無(wú)幾。為了搞清楚,我們就要去看天氣預(yù)報(bào),新聞,詢問(wèn)在廣東的朋友,而這就需要大量的信息,信息熵很高。再比如,中國(guó)男足進(jìn)軍2022年卡塔爾世界杯決賽圈。對(duì)于這句話,因?yàn)榇_定性很高,幾乎不需要引入信息,信息熵很低。
考慮一個(gè)離散的隨機(jī)變量?x,由上面兩個(gè)例子可知,信息的量度應(yīng)該依賴于概率分布?p(x),因此我們想要尋找一個(gè)函數(shù)?I(x),它是概率?p(x)?的單調(diào)函數(shù),表達(dá)了信息的內(nèi)容。怎么尋找呢?如果我們有兩個(gè)不相關(guān)的事件?x和?y,那么觀察兩個(gè)事件同時(shí)發(fā)生時(shí)獲得的信息量應(yīng)該等于觀察到事件各自發(fā)生時(shí)獲得的信息之和,即:I(x,y)=I(x)+I(y)。
因?yàn)閮蓚€(gè)事件是獨(dú)立不相關(guān)的,因此?p(x,y)=p(x)p(y)。根據(jù)這兩個(gè)關(guān)系,很容易看出?I(x)一定與?p(x)?的對(duì)數(shù)有關(guān)?(因?yàn)閷?duì)數(shù)的運(yùn)算法則是?loga(mn)=logam+logan因此,我們有I(x)=?logp(x)。其中負(fù)號(hào)是用來(lái)保證信息量是正數(shù)或者零。而?log函數(shù)基的選擇是任意的(信息論中基常常選擇為2,因此信息的單位為比特bits;而機(jī)器學(xué)習(xí)中基常常選擇為自然常數(shù),因此單位常常被稱為奈特nats)。I(x)也被稱為隨機(jī)變量?x的自信息?(self-information),描述的是隨機(jī)變量的某個(gè)事件發(fā)生所帶來(lái)的信息量。圖像如圖:
最后,我們正式引出信息熵。現(xiàn)在假設(shè)一個(gè)發(fā)送者想傳送一個(gè)隨機(jī)變量的值給接收者。那么在這個(gè)過(guò)程中,他們傳輸?shù)钠骄畔⒘靠梢酝ㄟ^(guò)求?I(x)=?logp(x)關(guān)于概率分布?p(x)?的期望得到,即:
H(X)?就被稱為隨機(jī)變量?x的熵,它是表示隨機(jī)變量不確定的度量,是對(duì)所有可能發(fā)生的事件產(chǎn)生的信息量的期望。從公式可得,隨機(jī)變量的取值個(gè)數(shù)越多,狀態(tài)數(shù)也就越多,信息熵就越大,混亂程度就越大。當(dāng)隨機(jī)分布為均勻分布時(shí),熵最大,且?0≤H(X)≤logn。稍后證明。將一維隨機(jī)變量分布推廣到多維隨機(jī)變量分布,則其聯(lián)合熵?(Joint entropy)?為:
(注意:熵只依賴于隨機(jī)變量的分布,與隨機(jī)變量取值無(wú)關(guān),所以也可以將?X的熵記作?H(p);令0log0=0(因?yàn)槟硞€(gè)取值概率可能為0))
那么這些定義有著什么樣的性質(zhì)呢?考慮一個(gè)隨機(jī)變量?x。這個(gè)隨機(jī)變量有4種可能的狀態(tài),每個(gè)狀態(tài)都是等可能的。為了把?x 的值傳給接收者,我們需要傳輸2比特的消息。H(X)=?4×(1/4)log2(1/4)=2 bits。現(xiàn)在考慮一個(gè)具有4種可能的狀態(tài)?{a,b,c,d}?的隨機(jī)變量,每個(gè)狀態(tài)各自的概率為?(1/2,1/4,1/8,1/8)。這種情形下的熵為:
我們可以看到,非均勻分布比均勻分布的熵要小。現(xiàn)在讓我們考慮如何把變量狀態(tài)的類(lèi)別傳遞給接收者。與之前一樣,我們可以使用一個(gè)2比特的數(shù)字來(lái)完成這件事情。然而,我們可以利用非均勻分布這個(gè)特點(diǎn),使用更短的編碼來(lái)描述更可能的事件,使用更長(zhǎng)的編碼來(lái)描述不太可能的事件。我們希望這樣做能夠得到一個(gè)更短的平均編碼長(zhǎng)度。我們可以使用下面的編碼串(哈夫曼編碼):0、10、110、111來(lái)表示狀態(tài)?{a,b,c,d}。傳輸?shù)木幋a的平均長(zhǎng)度就是:
這個(gè)值與上方的隨機(jī)變量的熵相等。熵和最短編碼長(zhǎng)度的這種關(guān)系是一種普遍的情形。Shannon 編碼定理表明熵是傳輸一個(gè)隨機(jī)變量狀態(tài)值所需的比特位下界(最短平均編碼長(zhǎng)度)。因此,信息熵可以應(yīng)用在數(shù)據(jù)壓縮方面。可參考這篇文章講的很詳細(xì)了,我就不贅述了。(http://www.ruanyifeng.com/blog/2014/09/information-entropy.html)
證明0≤H(X)≤logn
利用拉格朗日乘子法證明:
因?yàn)?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),λ)分別對(duì)?p(1),p(2),p(n),λ求偏導(dǎo)數(shù),令偏導(dǎo)數(shù)為?0:
λ?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)=1/n代入?f(p(1),p(2),…,p(n))?中得到目標(biāo)函數(shù)的極值為:
由此可證?logn為最大值。
?二? 條件熵 (Conditional entropy)
條件熵?H(Y|X)表示在已知隨機(jī)變量?X?的條件下隨機(jī)變量?Y?的不確定性。條件熵?H(Y|X)定義為?X?給定條件下?Y?的條件概率分布的熵對(duì)?X?的數(shù)學(xué)期望:
條件熵?H(Y|X)相當(dāng)于聯(lián)合熵?H(X,Y)減去單獨(dú)的熵?H(X),即H(Y|X)=H(X,Y)?H(X),證明如下:
舉個(gè)例子,比如環(huán)境溫度是低還是高,和我穿短袖還是外套這兩個(gè)事件可以組成聯(lián)合概率分布?H(X,Y),因?yàn)閮蓚€(gè)事件加起來(lái)的信息量肯定是大于單一事件的信息量的。假設(shè)?H(X)對(duì)應(yīng)著今天環(huán)境溫度的信息量,由于今天環(huán)境溫度和今天我穿什么衣服這兩個(gè)事件并不是獨(dú)立分布的,所以在已知今天環(huán)境溫度的情況下,我穿什么衣服的信息量或者說(shuō)不確定性是被減少了。當(dāng)已知?H(X)?這個(gè)信息量的時(shí)候,H(X,Y)?剩下的信息量就是條件熵:H(Y|X)=H(X,Y)?H(X)
因此,可以這樣理解,描述?X?和?Y?所需的信息是描述?X?自己所需的信息,加上給定?X的條件下具體化??Y 所需的額外信息。關(guān)于條件熵的例子可以看這篇文章,講得很詳細(xì)。(https://zhuanlan.zhihu.com/p/26551798)
三???相對(duì)熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)
設(shè)?p(x)、q(x)?是 離散隨機(jī)變量?X?中取值的兩個(gè)概率分布,則?p?對(duì)?q?的相對(duì)熵是:
性質(zhì):
?如果?p(x)?和?q(x)?兩個(gè)分布相同,那么相對(duì)熵等于0
?DKL(p||q)≠DKL(q||p),相對(duì)熵具有不對(duì)稱性。大家可以舉個(gè)簡(jiǎn)單例子算一下。
?DKL(p||q)≥0證明如下:(用Jensen不等式https://en.wikipedia.org/wiki/Jensen%27s_inequality)
?因?yàn)?#xff1a;
所以:
DKL(p||q)≥0
?總結(jié):相對(duì)熵可以用來(lái)衡量?jī)蓚€(gè)概率分布之間的差異,上面公式的意義就是求?p?與?q?之間的對(duì)數(shù)差在?p?上的期望值。
四 ?交叉熵 (Cross entropy)
現(xiàn)在有關(guān)于樣本集的兩個(gè)概率分布?p(x)?和?q(x),其中?p(x)?為真實(shí)分布,?q(x)非真實(shí)分布。如果用真實(shí)分布?p(x)?來(lái)衡量識(shí)別一個(gè)樣本所需要編碼長(zhǎng)度的期望(平均編碼長(zhǎng)度)為:
如果使用非真實(shí)分布?q(x)?來(lái)表示來(lái)自真實(shí)分布?p(x)?的平均編碼長(zhǎng)度,則是:
(因?yàn)橛?q(x)?來(lái)編碼的樣本來(lái)自于分布?q(x)?,所以?H(p,q)?中的概率是?p(x))。此時(shí)就將?H(p,q)?稱之為交叉熵。舉個(gè)例子。考慮一個(gè)隨機(jī)變量?x,真實(shí)分布p(x)=(1/2,1/4,1/8,1/8),非真實(shí)分布?q(x)=(1/4,1/4,1/4,1/4),?則H(p)=1.75?bits(最短平均碼長(zhǎng)),交叉熵:
由此可以看出根據(jù)非真實(shí)分布?q(x)?得到的平均碼長(zhǎng)大于根據(jù)真實(shí)分布?p(x)?得到的平均碼長(zhǎng)。
我們?cè)倩?jiǎn)一下相對(duì)熵的公式。
有沒(méi)有發(fā)現(xiàn)什么?
熵的公式:
?
交叉熵的公式:
所以有:DKL(p||q)=H(p,q)?H(p)(當(dāng)用非真實(shí)分布?q(x)?得到的平均碼長(zhǎng)比真實(shí)分布?p(x)?得到的平均碼長(zhǎng)多出的比特?cái)?shù)就是相對(duì)熵)
又因?yàn)?DKL(p||q)≥0所以?H(p,q)≥H(p)(當(dāng)?p(x)=q(x)?時(shí)取等號(hào),此時(shí)交叉熵等于信息熵)并且當(dāng)?H(p)?為常量時(shí)(注:在機(jī)器學(xué)習(xí)中,訓(xùn)練數(shù)據(jù)分布是固定的)最小化相對(duì)熵?DKL(p||q)?等價(jià)于最小化交叉熵?H(p,q)?也等價(jià)于最大化似然估計(jì)(具體參考Deep Learning 5.5)。在機(jī)器學(xué)習(xí)中,我們希望訓(xùn)練數(shù)據(jù)上模型學(xué)到的分布?P(model)?和真實(shí)數(shù)據(jù)的分布??P(real)?越接近越好,所以我們可以使其相對(duì)熵最小。但是我們沒(méi)有真實(shí)數(shù)據(jù)的分布,所以只能希望模型學(xué)到的分布?P(model)?和訓(xùn)練數(shù)據(jù)的分布?P(train)?盡量相同。假設(shè)訓(xùn)練數(shù)據(jù)是從總體中獨(dú)立同分布采樣的,那么我們可以通過(guò)最小化訓(xùn)練數(shù)據(jù)的經(jīng)驗(yàn)誤差來(lái)降低模型的泛化誤差。即:
希望學(xué)到的模型的分布和真實(shí)分布一致,P(model)?P(real)
但是真實(shí)分布不可知,假設(shè)訓(xùn)練數(shù)據(jù)是從真實(shí)數(shù)據(jù)中獨(dú)立同分布采樣的P(train)?P(real)
因此,我們希望學(xué)到的模型分布至少和訓(xùn)練數(shù)據(jù)的分布一致,P(train)?P(model)
根據(jù)之前的描述,最小化訓(xùn)練數(shù)據(jù)上的分布??P(train)與最小化模型分布?P(model)?的差異等價(jià)于最小化相對(duì)熵,即?DKL(P(train)||P(model))。此時(shí),?P(train)就是DKL(p||q)?中的?p,即真實(shí)分布,P(model)就是?q。又因訓(xùn)練數(shù)據(jù)的分布?p?是給定的,所以求??DKL(p||q)?等價(jià)求?H(p,q)。得證,交叉熵可以用來(lái)計(jì)算學(xué)習(xí)模型分布與訓(xùn)練分布之間的差異。交叉熵廣泛用于邏輯回歸的Sigmoid和Softmax函數(shù)中作為損失函數(shù)使用。這篇文章先不說(shuō)了。
5? 總結(jié)
信息熵是衡量隨機(jī)變量分布的混亂程度,是隨機(jī)分布各事件發(fā)生的信息量的期望值,隨機(jī)變量的取值個(gè)數(shù)越多,狀態(tài)數(shù)也就越多,信息熵就越大,混亂程度就越大。當(dāng)隨機(jī)分布為均勻分布時(shí),熵最大;信息熵推廣到多維領(lǐng)域,則可得到聯(lián)合信息熵;條件熵表示的是在?X?給定條件下,Y?的條件概率分布的熵對(duì)?X的期望。
相對(duì)熵可以用來(lái)衡量?jī)蓚€(gè)概率分布之間的差異。
交叉熵可以來(lái)衡量在給定的真實(shí)分布下,使用非真實(shí)分布所指定的策略消除系統(tǒng)的不確定性所需要付出的努力的大小。
或者:
信息熵是傳輸一個(gè)隨機(jī)變量狀態(tài)值所需的比特位下界(最短平均編碼長(zhǎng)度)。
相對(duì)熵是指用?q?來(lái)表示分布?p ?額外需要的編碼長(zhǎng)度。
交叉熵是指用分布?q?來(lái)表示本來(lái)表示分布?p?的平均編碼長(zhǎng)度。
總結(jié)
以上是生活随笔為你收集整理的相对熵与交叉熵_详解机器学习中的熵、条件熵、相对熵、交叉熵的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android开发中解决自定义弹窗获取不
- 下一篇: 双绞线传输距离_视频监控系统中布线常用传