解開“交叉熵”的神秘面紗

導(dǎo)言

什么是交叉熵挤茄?和信息熵有什么關(guān)系如叼?為什么它可以用作分類的損失函數(shù)?二分類的交叉熵怎么表示穷劈?

在分類任務(wù)中薇正,你可能已經(jīng)用過交叉熵來作為損失函數(shù),并且好奇為什么要使用自然對數(shù)囚衔?二分類的交叉熵和普通的交叉熵有沒有什么本質(zhì)的不同挖腰?讀完這篇文章,希望你會有所收獲练湿。

交叉熵猴仑,由“交叉”和”熵”組成,我們先來理解熵肥哎,再來理解什么是交叉辽俗。

所以,首先我們來復(fù)習(xí)下熵篡诽。更多熵的內(nèi)容見上篇博客 http://www.reibang.com/p/ad05ed6db0a6

大綱:

  • 熵的復(fù)習(xí)
  • 熵的估計
  • 交叉熵 ≥ 熵
  • 交叉熵作為損失函數(shù)
  • 納特 vs. 比特
  • 二分類的交叉熵
  • 總結(jié)

熵的復(fù)習(xí)

  • 信息熵
    • 提出:香農(nóng)
    • 作用:計算無損編碼下的最小平均編碼長度
    • 離散狀態(tài)下:(求和)


    • 連續(xù)轉(zhuǎn)態(tài)下:(積分)


無論是離散還是連續(xù)狀態(tài)下崖飘,我們都是計算負(fù)對數(shù)概率期望,作為某事件 x 的理論上的最小編碼長度杈女。

所以可以寫成期望的形式:



x~P 表示計算P概率分布下的期望朱浴。

也可以寫成H的這種形式。

總結(jié)一下达椰,熵告訴了我們某事件在給定概率分布的情況下翰蠢,理論上最小編碼長度。

也就是我們一旦知道了某事件的概率分布啰劲,我們就可以計算它的熵梁沧。

但是如果我們不知道該事件的概率分布,那么無法計算熵蝇裤,那怎么辦廷支?我們是不是就得對熵做一個估計。

但是栓辜,熵的估計意味著什么恋拍?他的準(zhǔn)確度怎么衡量?

為了回答這些問題啃憎,我們自然而然的引出了交叉熵芝囤。


熵的估計

還是以東京的天氣預(yù)報為例子。但是我們不知道天氣及具體的概率分布辛萍。為了便于討論悯姊,假設(shè)我們觀察了一段時間的天氣,可以找出其概率分布贩毕。

起初我們不知道東京天氣的概率分布悯许,我們用Q來估計它,并用它來計算發(fā)送天氣信息到紐約的最小平均編碼長度辉阶。

利用估計的概率分布Q先壕,那么估計的熵:

加入估計的Q越接近真實(shí)的分布,那么上面的估計也就越能到達(dá)最小的編碼長度谆甜。

但是呢垃僚,熵的估計公式中包含兩種不確定性。

如x~Q所示规辱,我們使用估計的概率分布Q來計算期望谆棺,與實(shí)際概率分P計算出的期望不同。這是第一種不確定性罕袋。

此外改淑,我們估計最小編碼長度為-log Q,我們根據(jù)估計的概率分布Q計算浴讯。因此朵夏,它不會100%準(zhǔn)確,這是第二種不確定性榆纽。

由于估計概率分布Q影響期望和編碼長度的估計仰猖,那么估計的熵可很大程度上也是不正確的。

碰巧的話奈籽,估計熵可以接近真實(shí)熵亮元,因為Q影響期望的計算和編碼長度估計。

所以唠摹,估計熵的真實(shí)熵之間的比較并不意味著什么爆捞。

和香農(nóng)一樣,我們關(guān)心的是怎么把編碼長度變得盡可能的小勾拉。所以我們應(yīng)該比較我們計算出的編碼長度和理論上的最小編碼長度的大小煮甥。

如果在觀察東京的天氣一段時間后,我們可以獲得實(shí)際的概率分布P藕赞,那么就可以利用概率分布P和天氣報告期間使用的實(shí)際編碼長度(基于Q)來計算實(shí)際的平均編碼長度成肘。

我們稱其為:P和Q之間的交叉熵,和熵的公式進(jìn)行比較斧蜕。


我們將蘋果與蘋果進(jìn)行比較双霍,因為我們使用相同的真實(shí)分布來對計算期望。 在此我們比較理論上最小編碼長度和天氣報告中使用的實(shí)際編碼長度。

簡而言之洒闸,我們正在交叉檢查編碼長度染坯,這就是“交叉”在交叉熵中的含義。


交叉熵 ≥ 熵

通常丘逸,交叉熵如下表示:


H(P, Q) 表示利用概率分布P和基于Q的編碼長度來計算期望. H(P, Q) 和 H(Q, P) 一般結(jié)果不相同单鹿,除非Q=P。在這種情況下交叉熵就成了熵本身: H(P, Q) = H(P, P) = H(P) 深纲。

這一點(diǎn)很微妙但很重要仲锄。 為了計算期望,我們應(yīng)該使用真實(shí)概率分布P湃鹊, 對于編碼長度儒喊,我們應(yīng)該使用Q來編碼消息。

由于熵是理論最小平均編碼長度币呵,因此交叉熵高于或等于熵但不小于熵怀愧。

換句話說,如果我們的估計是完美的富雅,則Q = P掸驱,因此H(P,Q)= H(P)没佑。 否則毕贼,H(P,Q)> H(P)蛤奢。

到目前為止鬼癣,我們搞清楚了熵和交叉熵之間的關(guān)系。 接下來啤贩,我們討論下為什么交叉熵可以作為分類的損失函數(shù)待秃。


交叉熵作為損失函數(shù)

例子:動物5分類問題,且每個圖片值包含一種動物痹屹。


每幅圖片都用one-hot的形式來編碼章郁。


我們把one-hot 編碼視為每幅圖的概率分布,下來來看幾個例子志衍。

對于第一幅圖(小狗):



對于第一幅圖(狐貍):



以此類推暖庄。

計算下每個圖的熵,其都為0楼肪,也就意味著沒有不確定性培廓。


換句話說,one-hot編碼的標(biāo)簽春叫,以100%的確定下告訴我們圖片中動物是什么肩钠。第一幅圖不會出現(xiàn)90%是狗泣港。10%的情況是狐貍的這種狀況。它一直是狗价匠,不會出現(xiàn)什么意外当纱。

現(xiàn)在,我們有個模型來對這些圖片進(jìn)行分類霞怀。當(dāng)我們對模型的訓(xùn)練程度不夠時惫东,對第一幅圖片(狗)分類可能會出現(xiàn)如下的情況:



也就是目前的模型告訴我們這個圖:40%-dog, 30%- fox, 5% - horse, 5%-eagle ,20% - squirre.看起來不是特別的準(zhǔn)確來告訴我們到底是什么動物莉给。

相反毙石,標(biāo)簽為我們提供了第一張圖像的動物類別的精確分布。 它告訴我們這是一只100%確定的狗颓遏。



所以徐矩,這么模型的預(yù)測能力怎么樣?我們計算一下交叉熵叁幢。



比標(biāo)簽對應(yīng)的0熵滤灯,高了許多,但是還看不出來直觀的意義曼玩。所以我們再來看看另外一個交叉熵作為比較鳞骤。

假設(shè)模型由訓(xùn)練了一會,對第一幅圖的輸出為:



計算交叉熵黍判,比之前的小了許多豫尽。


交叉熵將模型的預(yù)測和正式分布下對應(yīng)的標(biāo)簽進(jìn)行比較。隨著預(yù)測的越來越準(zhǔn)確顷帖,交叉熵的值越來越小美旧。如果預(yù)測完美,那么交叉熵變?yōu)?贬墩。所以交叉熵能夠作為分類模型的損失函數(shù)榴嗅。


Nats vs. Bits(納特和比特)

在機(jī)器學(xué)習(xí)中,我們經(jīng)常以自然對數(shù)為底而不是以2為底的對數(shù)陶舞,其中原因之一是便于計算微分嗽测。

對對數(shù)的基的變化只是會引起幅度上的變化。在分類問題中肿孵,我們用交叉熵作為損失函數(shù)唠粥,相對于具體的值更關(guān)心的關(guān)注其變小的趨勢。


納特颁井,是信息論中的單位之一厅贪。以自然對數(shù)為底而不是以2為底的對數(shù),以2位底稱為比特(bit)雅宾。

1納特相當(dāng)于1.44比特养涮。

怎么理解1納特葵硕?所以以1/e的概率的事件的信息量。1比特就是以1/2概率的時間的信息量贯吓。

但是以e為底解釋起來沒有像以2為底那么直觀懈凹。比如我們對某個信息用1 bit編碼,那么就降低了50%的可能性悄谐。如果用e來做相同的解釋的話介评,并不是很好的去理解,這就是為什么常常用以2為底去對信息熵的概念做解釋爬舰。然而们陆,機(jī)器學(xué)習(xí)中偏愛自然對數(shù)是因為便于計酸。


二分類中的交叉熵

情景:貓狗分類

推導(dǎo)過程
二分類交叉熵公式

總結(jié)

  • 某隨機(jī)過程的概率分布已知情屹,那么就很容易計算出它的信息熵
  • 若概率分布不知坪仇,用估計的概率分布去計算“熵”,這個熵和真實(shí)的熵怎么比較垃你?兩個概率分布之間的相似度怎么計算
  • 預(yù)測完美時椅文,交叉熵等于信息熵。
  • 交叉熵隨著預(yù)測的完美程度而降低惜颇,所以可以作為分類的損失函數(shù)
  • 信息熵的度量皆刺。1比特和1納特的信息量怎么解釋?比特和納特各自有什么優(yōu)勢凌摄?在機(jī)器學(xué)習(xí)中為什么要以自然對數(shù)為底呢羡蛾?

參考:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市望伦,隨后出現(xiàn)的幾起案子林说,更是在濱河造成了極大的恐慌,老刑警劉巖屯伞,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腿箩,死亡現(xiàn)場離奇詭異,居然都是意外死亡劣摇,警方通過查閱死者的電腦和手機(jī)珠移,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來末融,“玉大人钧惧,你說我怎么就攤上這事」聪埃” “怎么了浓瞪?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長巧婶。 經(jīng)常有香客問我乾颁,道長涂乌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任英岭,我火速辦了婚禮湾盒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘诅妹。我一直安慰自己罚勾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布吭狡。 她就那樣靜靜地躺著尖殃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赵刑。 梳的紋絲不亂的頭發(fā)上分衫,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天场刑,我揣著相機(jī)與錄音般此,去河邊找鬼。 笑死牵现,一個胖子當(dāng)著我的面吹牛铐懊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瞎疼,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼科乎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贼急?” 一聲冷哼從身側(cè)響起茅茂,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎太抓,沒想到半個月后空闲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡走敌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年碴倾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掉丽。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡跌榔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捶障,到底是詐尸還是另有隱情僧须,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布项炼,位于F島的核電站担平,受9級特大地震影響柑蛇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驱闷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一耻台、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧空另,春花似錦盆耽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至循榆,卻和暖如春析恢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秧饮。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工映挂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盗尸。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓柑船,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泼各。 傳聞我的和親對象是個殘疾皇子鞍时,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

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