該文章轉(zhuǎn)載自詳解機器學(xué)習(xí)中的熵、條件熵案训、相對熵和交叉熵
1买置、信息熵 (information entropy)
熵 (entropy) 這一詞最初來源于熱力學(xué)。1948年强霎,克勞德·愛爾伍德·香農(nóng)將熱力學(xué)中的熵引入信息論忿项,所以也被稱為香農(nóng)熵 (Shannon entropy),信息熵 (information entropy)城舞。本文只討論信息熵轩触。首先,我們先來理解一下信息這個概念椿争。信息是一個很抽象的概念怕膛,百度百科將它定義為:指音訊、消息秦踪、通訊系統(tǒng)傳輸和處理的對象,泛指人類社會傳播的一切內(nèi)容掸茅。那信息可以被量化么椅邓?可以的!香農(nóng)提出的“信息熵”概念解決了這一問題昧狮。
一條信息的信息量大小和它的不確定性有直接的關(guān)系景馁。我們需要搞清楚一件非常非常不確定的事,或者是我們一無所知的事逗鸣,就需要了解大量的信息合住。相反,如果我們對某件事已經(jīng)有了較多的了解撒璧,我們就不需要太多的信息就能把它搞清楚透葛。所以,從這個角度卿樱,我們可以認為僚害,信息量的度量就等于不確定性的多少。比如繁调,有人說廣東下雪了萨蚕。對于這句話,我們是十分不確定的蹄胰。因為廣東幾十年來下雪的次數(shù)寥寥無幾岳遥。為了搞清楚,我們就要去看天氣預(yù)報裕寨,新聞浩蓉,詢問在廣東的朋友,而這就需要大量的信息,信息熵很高妻往。再比如互艾,中國男足進軍2022年卡塔爾世界杯決賽圈。對于這句話讯泣,因為確定性很高纫普,幾乎不需要引入信息,信息熵很低好渠。
考慮一個離散的隨機變量 昨稼,由上面兩個例子可知,信息的量度應(yīng)該依賴于概率分布 拳锚,因此我們想要尋找一個函數(shù) 假栓,它是概率 的單調(diào)函數(shù),表達了信息的內(nèi)容霍掺。怎么尋找呢匾荆?如果我們有兩個不相關(guān)的事件 和 ,那么觀察兩個事件同時發(fā)生時獲得的信息量應(yīng)該等于觀察到事件各自發(fā)生時獲得的信息之和杆烁,即:
因為兩個事件是獨立不相關(guān)的牙丽,因此 。根據(jù)這兩個關(guān)系兔魂,很容易看出 一定與 的對數(shù)有關(guān) (因為對數(shù)的運算法則是 )烤芦。因此,我們有
其中負號是用來保證信息量是正數(shù)或者零析校。而 函數(shù)基的選擇是任意的(信息論中基常常選擇為2构罗,因此信息的單位為比特bits;而機器學(xué)習(xí)中基常常選擇為自然常數(shù)智玻,因此單位常常被稱為奈特nats)遂唧。 也被稱為隨機變量 x 的自信息 (self-information),描述的是隨機變量的某個事件發(fā)生所帶來的信息量尚困。圖像如圖:
最后蠢箩,我們正式引出信息熵。 現(xiàn)在假設(shè)一個發(fā)送者想傳送一個隨機變量的值給接收者事甜。那么在這個過程中谬泌,他們傳輸?shù)钠骄畔⒘靠梢酝ㄟ^求 關(guān)于概率分布 的期望得到,即:
就被稱為隨機變量 的熵,它是表示隨機變量不確定的度量逻谦,是對所有可能發(fā)生的事件產(chǎn)生的信息量的期望掌实。
從公式可得,隨機變量的取值個數(shù)越多邦马,狀態(tài)數(shù)也就越多贱鼻,信息熵就越大宴卖,混亂程度就越大。當隨機分布為均勻分布時邻悬,熵最大症昏,且 。稍后證明父丰。將一維隨機變量分布推廣到多維隨機變量分布肝谭,則其聯(lián)合熵 (Joint entropy) 為:
注意點:1、熵只依賴于隨機變量的分布,與隨機變量取值無關(guān)蛾扇,所以也可以將 的熵記作 攘烛。2、令(因為某個取值概率可能為0)镀首。
那么這些定義有著什么樣的性質(zhì)呢坟漱?考慮一個隨機變量 。這個隨機變量有4種可能的狀態(tài)更哄,每個狀態(tài)都是等可能的芋齿。為了把 x 的值傳給接收者,我們需要傳輸2比特的消息竖瘾。
現(xiàn)在考慮一個具有4種可能的狀態(tài) {a,b,c,d} 的隨機變量沟突,每個狀態(tài)各自的概率為 (12,14,18,18)
這種情形下的熵為:
我們可以看到,非均勻分布比均勻分布的熵要小〔洞現(xiàn)在讓我們考慮如何把變量狀態(tài)的類別傳遞給接收者。與之前一樣扩劝,我們可以使用一個2比特的數(shù)字來完成這件事情庸论。然而,我們可以利用非均勻分布這個特點棒呛,使用更短的編碼來描述更可能的事件聂示,使用更長的編碼來描述不太可能的事件(這點和Huffman編碼的原理一樣,不知道Huffman樹是不是根據(jù)熵的原理發(fā)明出來的)簇秒。我們希望這樣做能夠得到一個更短的平均編碼長度鱼喉。我們可以使用下面的編碼串(哈夫曼編碼):0、10趋观、110扛禽、111來表示狀態(tài) {a,b,c,d}。傳輸?shù)木幋a的平均長度就是:
這個值與上方的隨機變量的熵相等皱坛。熵和最短編碼長度的這種關(guān)系是一種普遍的情形编曼。
Shannon 編碼定理 表明熵是傳輸一個隨機變量狀態(tài)值所需的比特位下界(最短平均編碼長度)。因此剩辟,信息熵可以應(yīng)用在數(shù)據(jù)壓縮方面掐场。這里這篇文章講的很詳細了往扔,我就不贅述了。
證明
利用拉格朗日乘子法證明:
因為
所以有
目標函數(shù):
約束條件:
1熊户、定義拉格朗日函數(shù):
2萍膛、分別對 求偏導(dǎo)數(shù),令偏導(dǎo)數(shù)為 0:
3嚷堡、求出 的值:
解方程得蝗罗,
代入 中得到目標函數(shù)的極值為
由此可證 logn 為最大值。
個人感覺上述證明不是很嚴謹?shù)睦窭嗜胀茖?dǎo)麦到,見另一篇文章
2绿饵、條件熵 (Conditional entropy)
條件熵 表示在已知隨機變量 的條件下隨機變量 的不確定性。條件熵 定義為 給定條件下 的條件概率分布的熵對 的數(shù)學(xué)期望:
條件熵 相當于聯(lián)合熵 減去單獨的熵 瓶颠,即
拟赊,證明如下:
舉個例子,比如環(huán)境溫度是低還是高粹淋,和我穿短袖還是外套這兩個事件可以組成聯(lián)合概率分布 吸祟,因為兩個事件加起來的信息量肯定是大于單一事件的信息量的。假設(shè) 對應(yīng)著今天環(huán)境溫度的信息量桃移,由于今天環(huán)境溫度和今天我穿什么衣服這兩個事件并不是獨立分布的屋匕,所以在已知今天環(huán)境溫度的情況下,我穿什么衣服的信息量或者說不確定性是被減少了借杰。當已知 這個信息量的時候过吻, 剩下的信息量就是條件熵:
因此,可以這樣理解蔗衡,描述 和 所需的信息是描述 自己所需的信息,加上給定 的條件下具體化 所需的額外信息纤虽。關(guān)于條件熵的例子可以看這篇文章,講得很詳細绞惦。https://zhuanlan.zhihu.com/p/26551798
3逼纸、相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)
設(shè) 是 離散隨機變量 中取值的兩個概率分布杰刽,則 對 的相對熵是:
性質(zhì):
1、如果 和 兩個分布相同王滤,那么相對熵等于0
2贺嫂、 ,相對熵具有不對稱性淑仆。大家可以舉個簡單例子算一下涝婉。
3、 證明如下(利用Jensen不等式https://en.wikipedia.org/wiki/Jensen%27s_inequality):
因為:
所以:
總結(jié):相對熵可以用來衡量兩個概率分布之間的差異蔗怠,上面公式的意義就是求 與 之間的對數(shù)差在 上的期望值墩弯。
4吩跋、交叉熵 (Cross entropy)
現(xiàn)在有關(guān)于樣本集的兩個概率分布 和 ,其中 為真實分布渔工, 非真實分布锌钮。如果用真實分布 來衡量識別別一個樣本所需要編碼長度的期望(平均編碼長度)為:
如果使用非真實分布 來表示來自真實分布 的平均編碼長度,則是:
引矩。(因為用 來編碼的樣本來自于分布 梁丘,所以 中的概率是 )。此時就將 稱之為交叉熵旺韭。舉個例子氛谜。考慮一個隨機變量 区端,真實分布值漫,非真實分布 , 則(最短平均碼長)织盼,交叉熵 杨何。由此可以看出根據(jù)非真實分布 得到的平均碼長大于根據(jù)真實分布 得到的平均碼長。
我們再化簡一下相對熵的公式沥邻。
有沒有發(fā)現(xiàn)什么危虱?
熵的公式
交叉熵的公式
所以有:
(當用非真實分布 得到的平均碼長比真實分布 p(x) 得到的平均碼長多出的比特數(shù)就是相對熵)
又因為
所以 (當 時取等號,此時交叉熵等于信息熵)
并且當 為常量時(注:在機器學(xué)習(xí)中唐全,訓(xùn)練數(shù)據(jù)分布是固定的)埃跷,最小化相對熵 等價于最小化交叉熵 也等價于最大化似然估計(具體參考Deep Learning 5.5)。
在機器學(xué)習(xí)中邮利,我們希望在訓(xùn)練數(shù)據(jù)上模型學(xué)到的分布 和真實數(shù)據(jù)的分布 越接近越好捌蚊,所以我們可以使其相對熵最小。但是我們沒有真實數(shù)據(jù)的分布近弟,所以只能希望模型學(xué)到的分布 和訓(xùn)練數(shù)據(jù)的分布 盡量相同。假設(shè)訓(xùn)練數(shù)據(jù)是從總體中獨立同分布采樣的挺智,那么我們可以通過最小化訓(xùn)練數(shù)據(jù)的經(jīng)驗誤差來降低模型的泛化誤差祷愉。即:
希望學(xué)到的模型的分布和真實分布一致,
但是真實分布不可知赦颇,假設(shè)訓(xùn)練數(shù)據(jù)是從真實數(shù)據(jù)中獨立同分布采樣的二鳄,
因此,我們希望學(xué)到的模型分布至少和訓(xùn)練數(shù)據(jù)的分布一致媒怯,
根據(jù)之前的描述订讼,最小化訓(xùn)練數(shù)據(jù)上的分布 與最小化模型分布 的差異等價于最小化相對熵起宽,即 猴娩。此時录择,就是 中的 诗箍,即真實分布, 就是 脖苏。又因為訓(xùn)練數(shù)據(jù)的分布 是給定的程拭,所以求 等價于求 。得證棍潘,交叉熵可以用來計算學(xué)習(xí)模型分布與訓(xùn)練分布之間的差異恃鞋。交叉熵廣泛用于邏輯回歸的Sigmoid和Softmax函數(shù)中作為損失函數(shù)使用。這篇文章先不說了亦歉。
5恤浪、總結(jié)
信息熵是衡量隨機變量分布的混亂程度,是隨機分布各事件發(fā)生的信息量的期望值肴楷,隨機變量的取值個數(shù)越多水由,狀態(tài)數(shù)也就越多,信息熵就越大阶祭,混亂程度就越大绷杜。當隨機分布為均勻分布時,熵最大濒募;信息熵推廣到多維領(lǐng)域鞭盟,則可得到聯(lián)合信息熵;條件熵表示的是在 X 給定條件下瑰剃,Y 的條件概率分布的熵對 X的期望齿诉。
相對熵可以用來衡量兩個概率分布之間的差異。
交叉熵可以來衡量在給定的真實分布下晌姚,使用非真實分布所指定的策略消除系統(tǒng)的不確定性所需要付出的努力的大小粤剧。
或者:
信息熵是傳輸一個隨機變量狀態(tài)值所需的比特位下界(最短平均編碼長度)。
相對熵是指用 q 來表示分布 p 額外需要的編碼長度挥唠。
交叉熵是指用分布 q 來表示本來表示分布 p 的平均編碼長度抵恋。
6、參考
1宝磨、吳軍《數(shù)學(xué)之美》
2弧关、李航《統(tǒng)計學(xué)習(xí)方法》
3、馬春鵬《模式識別與機器學(xué)習(xí)》
3唤锉、如何通俗的解釋交叉熵與相對熵
4世囊、為什么交叉熵(cross-entropy)可以用于計算代價?
5窿祥、交叉熵的百度百科解釋
6株憾、信息熵到底是什么