機器學(xué)習(xí)中的熵教届、條件熵响鹃、相對熵(KL散度)和交叉熵

GitHub
簡書
CSDN

該文章轉(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年卡塔爾世界杯決賽圈。對于這句話讯泣,因為確定性很高纫普,幾乎不需要引入信息,信息熵很低好渠。

考慮一個離散的隨機變量 x昨稼,由上面兩個例子可知,信息的量度應(yīng)該依賴于概率分布p(x) 拳锚,因此我們想要尋找一個函數(shù) I(x)假栓,它是概率 p(x) 的單調(diào)函數(shù),表達了信息的內(nèi)容霍掺。怎么尋找呢匾荆?如果我們有兩個不相關(guān)的事件 xy,那么觀察兩個事件同時發(fā)生時獲得的信息量應(yīng)該等于觀察到事件各自發(fā)生時獲得的信息之和杆烁,即:
I(x,y)=I(x)+I(y)

因為兩個事件是獨立不相關(guān)的牙丽,因此 p(x,y)=p(x)p(y)。根據(jù)這兩個關(guān)系兔魂,很容易看出 I(x)一定與 p(x) 的對數(shù)有關(guān) (因為對數(shù)的運算法則是 log_a(mn)=log_am+log_an)烤芦。因此,我們有

I(x)=?\log_p(x)

其中負號是用來保證信息量是正數(shù)或者零析校。而 log 函數(shù)基的選擇是任意的(信息論中基常常選擇為2构罗,因此信息的單位為比特bits;而機器學(xué)習(xí)中基常常選擇為自然常數(shù)智玻,因此單位常常被稱為奈特nats)遂唧。I(x) 也被稱為隨機變量 x 的自信息 (self-information),描述的是隨機變量的某個事件發(fā)生所帶來的信息量尚困。圖像如圖:

entropy_01.png

最后蠢箩,我們正式引出信息熵。 現(xiàn)在假設(shè)一個發(fā)送者想傳送一個隨機變量的值給接收者事甜。那么在這個過程中谬泌,他們傳輸?shù)钠骄畔⒘靠梢酝ㄟ^求 I(x)=?logp(x) 關(guān)于概率分布 p(x) 的期望得到,即:

H(X)=?∑xp(x)logp(x)=?∑i=1np(xi)logp(xi)

H(X) 就被稱為隨機變量 x熵,它是表示隨機變量不確定的度量逻谦,是對所有可能發(fā)生的事件產(chǎn)生的信息量的期望掌实。

從公式可得,隨機變量的取值個數(shù)越多邦马,狀態(tài)數(shù)也就越多贱鼻,信息熵就越大宴卖,混亂程度就越大。當隨機分布為均勻分布時邻悬,熵最大症昏,且 0≤H(X)≤logn。稍后證明父丰。將一維隨機變量分布推廣到多維隨機變量分布肝谭,則其聯(lián)合熵 (Joint entropy) 為:

H(X,Y)=?∑x,yp(x,y)logp(x,y)=?∑i=1n∑j=1mp(xi,yi)logp(xi,yi)

注意點:1、熵只依賴于隨機變量的分布,與隨機變量取值無關(guān)蛾扇,所以也可以將 X 的熵記作 H(p)攘烛。2、令0log0=0(因為某個取值概率可能為0)镀首。

那么這些定義有著什么樣的性質(zhì)呢坟漱?考慮一個隨機變量 x。這個隨機變量有4種可能的狀態(tài)更哄,每個狀態(tài)都是等可能的芋齿。為了把 x 的值傳給接收者,我們需要傳輸2比特的消息竖瘾。H(X)=?4×14log214=2 bits

現(xiàn)在考慮一個具有4種可能的狀態(tài) {a,b,c,d} 的隨機變量沟突,每個狀態(tài)各自的概率為 (12,14,18,18)

這種情形下的熵為:

H(X)=?12log212?14log214?18log218?18log218=1.75 bits

我們可以看到,非均勻分布比均勻分布的熵要小〔洞現(xiàn)在讓我們考慮如何把變量狀態(tài)的類別傳遞給接收者。與之前一樣扩劝,我們可以使用一個2比特的數(shù)字來完成這件事情庸论。然而,我們可以利用非均勻分布這個特點棒呛,使用更短的編碼來描述更可能的事件聂示,使用更長的編碼來描述不太可能的事件(這點和Huffman編碼的原理一樣,不知道Huffman樹是不是根據(jù)熵的原理發(fā)明出來的)簇秒。我們希望這樣做能夠得到一個更短的平均編碼長度鱼喉。我們可以使用下面的編碼串(哈夫曼編碼):0、10趋观、110扛禽、111來表示狀態(tài) {a,b,c,d}。傳輸?shù)木幋a的平均長度就是:

average code length = 12×1+14×2+2×18×3=1.75 bits

這個值與上方的隨機變量的熵相等皱坛。熵和最短編碼長度的這種關(guān)系是一種普遍的情形编曼。

Shannon 編碼定理 表明熵是傳輸一個隨機變量狀態(tài)值所需的比特位下界(最短平均編碼長度)。因此剩辟,信息熵可以應(yīng)用在數(shù)據(jù)壓縮方面掐场。這里這篇文章講的很詳細了往扔,我就不贅述了。

證明0≤H(X)≤logn

利用拉格朗日乘子法證明:

因為 p(1)+p(2)+?+p(n)=1

所以有

目標函數(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),λ)分別對 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)=1n

代入 f(p(1),p(2),…,p(n)) 中得到目標函數(shù)的極值為 f(1n,1n,…,1n)=?(1nlog1n+1nlog1n+?+1nlog1n)=?log(1n)=logn

由此可證 logn 為最大值。

個人感覺上述證明不是很嚴謹?shù)睦窭嗜胀茖?dǎo)麦到,見另一篇文章

2绿饵、條件熵 (Conditional entropy)

條件熵 H(Y|X) 表示在已知隨機變量 X 的條件下隨機變量 Y 的不確定性。條件熵 H(Y|X) 定義為 X 給定條件下 Y 的條件概率分布的熵對 X 的數(shù)學(xué)期望:

entropy_03.png

條件熵 H(Y|X) 相當于聯(lián)合熵 H(X,Y) 減去單獨的熵 H(X)瓶颠,即

H(Y|X)=H(X,Y)?H(X)拟赊,證明如下:

entropy_04.png

舉個例子,比如環(huán)境溫度是低還是高粹淋,和我穿短袖還是外套這兩個事件可以組成聯(lián)合概率分布 H(X,Y)吸祟,因為兩個事件加起來的信息量肯定是大于單一事件的信息量的。假設(shè) H(X) 對應(yīng)著今天環(huán)境溫度的信息量桃移,由于今天環(huán)境溫度和今天我穿什么衣服這兩個事件并不是獨立分布的屋匕,所以在已知今天環(huán)境溫度的情況下,我穿什么衣服的信息量或者說不確定性是被減少了借杰。當已知 H(X) 這個信息量的時候过吻,H(X,Y) 剩下的信息量就是條件熵:

H(Y|X)=H(X,Y)?H(X)

因此,可以這樣理解蔗衡,描述 XY 所需的信息是描述 X 自己所需的信息,加上給定 X 的條件下具體化 Y 所需的額外信息纤虽。關(guān)于條件熵的例子可以看這篇文章,講得很詳細绞惦。https://zhuanlan.zhihu.com/p/26551798

3逼纸、相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)

設(shè) p(x)济蝉、q(x) 是 離散隨機變量 X 中取值的兩個概率分布杰刽,則 pq 的相對熵是:

DKL(p||q)=\sum_xp(x)log\frac{p(x)}{q(x)}=E_{p(x)}log\frac{p(x)}{q(x)}

性質(zhì):

1、如果 p(x)q(x) 兩個分布相同王滤,那么相對熵等于0

2贺嫂、DKL(p||q)≠DKL(q||p) ,相對熵具有不對稱性淑仆。大家可以舉個簡單例子算一下涝婉。

3、DKL(p||q)≥0 證明如下(利用Jensen不等式https://en.wikipedia.org/wiki/Jensen%27s_inequality):

entropy_05.png

因為:

\sum_xp(x)=1

所以:

DKL(p||q)≥0

總結(jié):相對熵可以用來衡量兩個概率分布之間的差異蔗怠,上面公式的意義就是求 pq 之間的對數(shù)差在 p 上的期望值墩弯。

4吩跋、交叉熵 (Cross entropy)

現(xiàn)在有關(guān)于樣本集的兩個概率分布 p(x)q(x),其中 p(x) 為真實分布渔工, q(x) 非真實分布锌钮。如果用真實分布 p(x) 來衡量識別別一個樣本所需要編碼長度的期望(平均編碼長度)為:

H(p)=\sum_xp(x)log\frac{1}{p(x)}=-\sum_xp(x)log{p(x)}

如果使用非真實分布 q(x) 來表示來自真實分布 p(x) 的平均編碼長度,則是:

H(p)=\sum_xp(x)log\frac{1}{q(x)}=-\sum_xp(x)log{q(x)}引矩。(因為用 q(x) 來編碼的樣本來自于分布 q(x) 梁丘,所以 H(p,q) 中的概率是 p(x))。此時就將 H(p,q) 稱之為交叉熵旺韭。舉個例子氛谜。考慮一個隨機變量 x区端,真實分布p(x)=(12,14,18,18)值漫,非真實分布 q(x)=(14,14,14,14), 則H(p)=1.75 bits(最短平均碼長)织盼,交叉熵 H(p,q)=12log24+14log24+18log24+18log24=2 bits杨何。由此可以看出根據(jù)非真實分布 q(x) 得到的平均碼長大于根據(jù)真實分布 p(x) 得到的平均碼長。

我們再化簡一下相對熵的公式沥邻。
DKL(p||q)=\sum_xp(x)log \frac{p(x)}{q(x)}=\sum_xp(x)logp(x)?\sum_x p(x)logq(x)

有沒有發(fā)現(xiàn)什么危虱?

熵的公式 H(p)=?\sum_xp(x)logp(x)

交叉熵的公式 H(p,q)=\sum_xp(x)log\frac{1}{q(x)}=?\sum_xp(x)logq(x)

所以有:

DKL(p||q)=H(p,q)?H(p)(當用非真實分布 q(x) 得到的平均碼長比真實分布 p(x) 得到的平均碼長多出的比特數(shù)就是相對熵)

又因為 DKL(p||q)≥0

所以 H(p,q)≥H(p)(當 p(x)=q(x) 時取等號,此時交叉熵等于信息熵)

并且當 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)驗誤差來降低模型的泛化誤差祷愉。即:

希望學(xué)到的模型的分布和真實分布一致,P(model)?P(real)
但是真實分布不可知赦颇,假設(shè)訓(xùn)練數(shù)據(jù)是從真實數(shù)據(jù)中獨立同分布采樣的二鳄,P(train)?P(real)
因此,我們希望學(xué)到的模型分布至少和訓(xùn)練數(shù)據(jù)的分布一致媒怯,P(train)?P(model)
根據(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é)

信息熵是衡量隨機變量分布的混亂程度,是隨機分布各事件發(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株憾、信息熵到底是什么

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晒衩,一起剝皮案震驚了整個濱河市嗤瞎,隨后出現(xiàn)的幾起案子墙歪,更是在濱河造成了極大的恐慌,老刑警劉巖猫胁,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箱亿,死亡現(xiàn)場離奇詭異,居然都是意外死亡弃秆,警方通過查閱死者的電腦和手機届惋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來菠赚,“玉大人脑豹,你說我怎么就攤上這事『獠椋” “怎么了瘩欺?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拌牲。 經(jīng)常有香客問我俱饿,道長,這世上最難降的妖魔是什么塌忽? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任拍埠,我火速辦了婚禮,結(jié)果婚禮上土居,老公的妹妹穿的比我還像新娘枣购。我一直安慰自己,他們只是感情好擦耀,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布棉圈。 她就那樣靜靜地躺著,像睡著了一般眷蜓。 火紅的嫁衣襯著肌膚如雪分瘾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天吁系,我揣著相機與錄音芹敌,去河邊找鬼。 笑死垮抗,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的碧聪。 我是一名探鬼主播冒版,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼逞姿!你這毒婦竟也來了辞嗡?” 一聲冷哼從身側(cè)響起捆等,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎续室,沒想到半個月后栋烤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡挺狰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年明郭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丰泊。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡薯定,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞳购,到底是詐尸還是另有隱情话侄,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布学赛,位于F島的核電站年堆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏盏浇。R本人自食惡果不足惜变丧,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缠捌。 院中可真熱鬧锄贷,春花似錦、人聲如沸曼月。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哑芹。三九已至炎辨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間聪姿,已是汗流浹背碴萧。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留末购,地道東北人破喻。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像盟榴,于是被迫代替她去往敵國和親曹质。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354