對熵的理解

主要參考機(jī)器學(xué)習(xí)筆記十:各種熵總結(jié)

一遍蟋、什么是熵

熵定義:隨機(jī)變量的概率分布對應(yīng)的 **信息量的平均值 ** 就叫做隨機(jī)變量的熵。

可見崇堰,為了理解熵,需要先理解什么是信息量涩咖。

1.1 信息量

首先考慮一個離散的隨機(jī)變量x,當(dāng)我們觀察到這個變量的一個具體值的時候,我們接收到多少信息呢?
我們暫時把信息看做在學(xué)習(xí)x的值時候的”驚訝程度”(這樣非常便于理解且有意義).當(dāng)我們知道一件必然會發(fā)生的事情發(fā)生了,
比如往下掉的蘋果.我們并不驚訝,因?yàn)榉凑@件事情會發(fā)生,因此可以認(rèn)為我們沒有接收到信息.但是要是一件平時覺得不可能發(fā)生的事情發(fā)生了,那么我們接收到的信息要大得多.因此,我們對于信息內(nèi)容的度量就將依賴于概率分布p(x).

一句話總結(jié):概率越小的事件發(fā)生時海诲,帶來的信息量越大。

因此我們尋找一個函數(shù)檩互,能夠體現(xiàn)這句話的含義特幔,于是有單調(diào)遞減函數(shù)

函數(shù)圖像如下所示:

注意一般是以2為對數(shù)的底。

若是稱I(x)為自信息量闸昨,那么根據(jù)其中x的不同蚯斯,根據(jù)概率中的聯(lián)合概率薄风,條件概率,我們可以得到

聯(lián)合自信息量

條件自信息量

1.2拍嵌、熵

熵(entropy):已知信息量I(x)遭赂,那么我們想要知道這整個概率分布對應(yīng)的信息量的平均值.這個平均值就叫做隨機(jī)變量x的熵 。

求I(x)的期望横辆,其中I(x)是概率分布p(x)的函數(shù)撇他,則根據(jù)定理,可以得到I(x)的期望狈蚤,也就是熵:

對“信息熵的本質(zhì)可以看做是某個分布的自信息的期望”這句話的進(jìn)一步理解:
也就是說困肩,熵,所求的是脆侮,這個事件的信息量的平均值锌畸。所以說,熵越大他嚷,這個事件整體所含的信息量就越大蹋绽,不確定性就越高。比如筋蓖,蘋果一定落地卸耘,信息量就很小。蘋果落到某個盒子粘咖,熵也就大了蚣抗,信息量比較大,不確定性也比較大了瓮下。

需要注意的地方
  • 服從于某個分布的X的熵翰铡,等價于這個分布的熵
    因?yàn)殪刂灰蕾囉赬的分布
  • 定義0log0=0,因?yàn)榭赡艹霈F(xiàn)某個取值概率為0的情況
  • 熵越大讽坏,隨機(jī)變量的不確定性就越大锭魔。

常用的例子:
X服從0-1分布,即:

則熵為:

當(dāng)事件發(fā)生概率p從0依次取到1時路呜,畫出熵的圖:

1.當(dāng)p=0或者p=1的時候,隨機(jī)變量可以認(rèn)為是沒有不確定性.
2.當(dāng)p=0.5的時候,H(p)=1,隨機(jī)變量的不確定性最大.
熵的計(jì)算公式迷捧,就是按照期望公式求概率分布的期望。

二胀葱、條件熵

2.1漠秋、聯(lián)合熵與條件熵

仿照之前信息量的公式,根據(jù)聯(lián)合分布與條件分布抵屿,我們可以得到聯(lián)合熵(復(fù)合熵)和條件熵:
復(fù)合熵:

條件熵:

為什么要在條件概率前面再乘上以一個p(yj)?

如果以x表示學(xué)生體重庆锦,以y表示身高,以 p(x∣y)表示身高為某個特定的y時的體重為x的概率轧葛,把熵公式用到這個特殊情況得到是熵顯然應(yīng)當(dāng)是

上面是確定的y = yj時計(jì)算得到的概率搂抒,然而y等于yj的概率是p(yj)艇搀,所以在不確定y等于多少時,應(yīng)該在前面乘以一個yj發(fā)生時的概率燕耿,y一共有m個取值中符,所以應(yīng)該是m個p(yj)乘以上面式子再相加。
于是可以得到上面的條件熵誉帅。

2.2條件熵的變形

根據(jù)條件分布:

可以把上面的求條件熵的式子改成如下形式:

上面式子表明,只要你能得到聯(lián)合分布和y的分布就能夠求出條件熵了右莱,不過還可以經(jīng)過推導(dǎo)蚜锨,得到更加常見的形式:

證明:

三、相對熵(KL散度)

要理解相對熵慢蜓,先理解交叉熵是什么

3.1亚再、從信息論編碼長度理解交叉熵與相對熵

參考 淺談KL散度
參考熵 相對熵 交叉熵

參考中, 把H(p,q)定義為交叉熵晨抡,跟上面的聯(lián)合熵有些出入氛悬,不知道是不是定義有問題,暫時就這么認(rèn)為把耘柱,區(qū)別開來如捅。

Gibbs' inequality知,交叉熵H(p,q)一定大于熵H(p)调煎,即用用錯誤分布來表示真實(shí)分布的平均編碼長度镜遣,一定要長與真實(shí)分布的平均編碼長度。例子:

我們將由q得到的平均編碼長度比由p得到的平均編碼長度多出的bit數(shù)稱為“相對熵”:

3.2士袄、從信息量理解相對熵

參考一文搞懂交叉熵在機(jī)器學(xué)習(xí)中的使用悲关,透徹理解交叉熵背后的直覺

在機(jī)器學(xué)習(xí)中腊满,P往往用來表示樣本的真實(shí)分布谁鳍,比如樣本的真是分布為[1,0,0]消略。Q用來表示模型所預(yù)測的分布态蒂,比如[0.7,0.2,0.1] 穷缤。

直觀的理解就是如果用P來描述樣本跟继,那么就非常完美隘冲。而用Q來描述樣本妇押,雖然可以大致描述需了,但是不是那么的完美跳昼,信息量不足,需要額外的一些“信息增量”才能達(dá)到和P一樣完美的描述肋乍。

其中鹅颊,額外的信息增量就是:

機(jī)器學(xué)習(xí)就是通過反復(fù)訓(xùn)練,學(xué)習(xí)Q墓造,讓Q也能完美的描述樣本堪伍,那么就不再需要額外的“信息增量”锚烦,此時Q等價于P。

相對熵的兩個主要性質(zhì):非對稱性與非負(fù)性:

參考交叉熵是否非負(fù)帝雇?
知道涮俄,離散型隨機(jī)變量的熵時非負(fù)的,連續(xù)性隨機(jī)變量可能為負(fù)尸闸。

3.3彻亲、相對熵的應(yīng)用

3.3.1、計(jì)算文本相似度

相對熵可以衡量兩個隨機(jī)分布之間的距離吮廉,當(dāng)兩個隨機(jī)分布相同時苞尝,它們的相對熵為零,當(dāng)兩個隨機(jī)分布的差別增大時宦芦,它們的相對熵也會增大宙址。所以相對熵(KL散度)可以用于比較文本的相似度,先統(tǒng)計(jì)出詞的頻率调卑,然后計(jì)算KL散度就行了抡砂。

3.3.2、在機(jī)器學(xué)習(xí)中作為損失函數(shù)進(jìn)行訓(xùn)練

具體的一些細(xì)節(jié)恬涧,參考一文搞懂交叉熵在機(jī)器學(xué)習(xí)中的使用注益,透徹理解交叉熵背后的直覺

四、互信息气破、信息增益

先看定義:互信息可以看成是一個隨機(jī)變量中包含的關(guān)于另一個隨機(jī)變量的信息量聊浅,或者說是一個隨機(jī)變量由于已知另一個隨機(jī)變量而減少的不確定性。

兩個隨機(jī)變量X现使,Y的互信息低匙,定義為X,Y的聯(lián)合分布和獨(dú)立分布乘積的相對熵。

公式是怎么得到的呢碳锈?
根據(jù)上一小節(jié)的信息熵的理解:相對熵可以看做顽冶,為了和真實(shí)分布P一樣完美描述事件的額外增量

當(dāng)我們知道Y的條件下售碳,能夠幫助我們判斷X强重,此時的信息量相對為H(X|Y)。當(dāng)我們不知道Y時贸人,此時為了描述X的信息量H(X)间景,需要多一些額外的信息量,而這里的額外增量艺智,就是信息增益:I(X,Y)倘要。

于是 I(X,Y) = H(X) - H(X|Y),可以得到信息增益的公式十拣。

舉例:西瓜書p75頁封拧,有對于信息增益的講解 志鹃。
此時,我們認(rèn)為X為label即[好瓜泽西,壞瓜]捧杉,色澤為Y[青綠,烏黑,淺白]。我們可以計(jì)算出在不知道Y時的H(X)為0.998,在已知Y時零聚,H(X|Y)為0.889.于是我們可以得到色澤的信息增益
Gain(色澤) = H(X) - H(X|Y) = 0.109

注意隶症,這里是按照文章中公式來算的蚂会,跟樹中的計(jì)算方法有點(diǎn)出入刊咳,除了要明確好x和y代表的意義让蕾,還要仔細(xì)計(jì)算好每一個公式,每一個概率。

一般情況下庇配,大多不會用定義的公式耀鸦,而是求得H(X) - H(X|Y)以后袖订,得到信息增益的皮服。

小結(jié):

五、代碼實(shí)現(xiàn)

實(shí)現(xiàn)一

根據(jù)上面的公式,定義一個熵函數(shù)归斤,條件熵函數(shù)痊夭,交叉熵函數(shù)即可。

實(shí)現(xiàn)二

在計(jì)算方面脏里,其中條件熵還可以從這個角度計(jì)算:

即認(rèn)為X確定為x1時她我,Y此時的熵,再乘以此時X=x1的概率p1

比如番舆,西瓜書中酝碳,當(dāng)X為青綠時,有6個樣例恨狈,Y此時對應(yīng)6個標(biāo)簽中3個正例3個負(fù)例疏哗。計(jì)算得到Ent(D1)以后再乘以p1

代碼上實(shí)現(xiàn)上參考這個python 計(jì)算信息熵和信息增益

其中一段代碼:

#這段是基于numpy的計(jì)算

import numpy as np

def calc_ent(x):
    """
        calculate shanno ent of x
    """
    #用set加count的方法禾怠,避免了用字典的操作返奉。但是在大數(shù)據(jù)集中,可能并不合適
    #此時x_list中只有單個元素吗氏,可以用于與下面的count方法配合芽偏,求得概率
    x_value_list = set([x[i] for i in range(x.shape[0])])
    ent = 0.0
    for x_value in x_value_list:
        #下面用了numpy中索引的方法x[x == x_value],返回x數(shù)組中等于x_value的數(shù)弦讽,有多少污尉,返回多少
        #比如,x = np.array([1,1,0,2,3]),那么x[x == 1]就返回數(shù)組類型[1 1]
        #
        #下面這行代碼的意思往产,就是求x=1的概率十厢,shape[0]獲得數(shù)組的長度,2/5
        p = float(x[x == x_value].shape[0]) / x.shape[0]
        logp = np.log2(p)
        ent -= p * logp
    return ent
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捂齐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缩抡,更是在濱河造成了極大的恐慌奠宜,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞻想,死亡現(xiàn)場離奇詭異压真,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蘑险,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門滴肿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人佃迄,你說我怎么就攤上這事泼差。” “怎么了呵俏?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵堆缘,是天一觀的道長。 經(jīng)常有香客問我普碎,道長吼肥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮缀皱,結(jié)果婚禮上斗这,老公的妹妹穿的比我還像新娘。我一直安慰自己啤斗,他們只是感情好表箭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著争占,像睡著了一般燃逻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上臂痕,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天伯襟,我揣著相機(jī)與錄音,去河邊找鬼握童。 笑死姆怪,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的澡绩。 我是一名探鬼主播稽揭,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肥卡!你這毒婦竟也來了溪掀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤步鉴,失蹤者是張志新(化名)和其女友劉穎揪胃,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氛琢,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡喊递,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了阳似。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骚勘。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖撮奏,靈堂內(nèi)的尸體忽然破棺而出俏讹,到底是詐尸還是另有隱情,我是刑警寧澤畜吊,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布藐石,位于F島的核電站,受9級特大地震影響定拟,放射性物質(zhì)發(fā)生泄漏于微。R本人自食惡果不足惜逗嫡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望株依。 院中可真熱鬧驱证,春花似錦、人聲如沸恋腕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荠藤。三九已至伙单,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哈肖,已是汗流浹背吻育。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留淤井,地道東北人布疼。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像币狠,于是被迫代替她去往敵國和親游两。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 請聽題:什么是熵漩绵?什么是交叉熵贱案?什么是聯(lián)合熵?什么是條件熵止吐?什么是相對熵轰坊?它們的聯(lián)系與區(qū)別是什么? 如果你感到回答...
    工程師milter閱讀 11,871評論 5 57
  • 本系列第三篇祟印,承接前面的《淺談機(jī)器學(xué)習(xí)基礎(chǔ)》和《淺談深度學(xué)習(xí)基礎(chǔ)》。 自然語言處理緒論 什么是自然語言處理粟害? 自然...
    我偏笑_NSNirvana閱讀 17,519評論 2 68
  • 深夜蕴忆,手機(jī)上與我相關(guān)那一欄有了動態(tài),吳小寶給我前天在空間里吐槽的事評論了悲幅。剛?cè)氪髮W(xué)的她給我喂雞湯套鹅,我覺得我這...
    青青茂閱讀 306評論 0 0
  • 悶熱的天氣,被一場大雨吹散汰具,雨后的世界卓鹿,空氣是那么清新,樹上的葉子那么的蔥綠留荔,心情隨之大好吟孙。 這些天一直都在思考一...
    西瓜里的小人兒閱讀 92評論 0 0
  • 汽車碾過甲殼蟲 爆出千木的靈魂樂漿 有一個杳無人知的東方國度 在那灘街角和煦的稠密人煙里 一段生命從此離我遠(yuǎn)去 留...
    南的哲尾貓閱讀 321評論 3 5