0
雷鋒網(wǎng) AI 科技評(píng)論按:「熵」大概是統(tǒng)計(jì)學(xué)、信息學(xué)里最讓初學(xué)者愁腸百結(jié)的基本概念之一。我們都知道熵可以用來(lái)描述含有的信息豐富程度的多少,但是具體是怎么回事呢?這篇文章中雷鋒網(wǎng) AI 科技評(píng)論將帶大家重新系統(tǒng)認(rèn)識(shí)一下「熵」倒是在講什么。
假設(shè)你在醫(yī)生辦公室中與三個(gè)等待的病人交流。三個(gè)病人都剛剛完成藥物測(cè)試,他們面臨著兩種可能的結(jié)果:患病或者未患病。假設(shè)這三個(gè)病人都充滿好奇心而且數(shù)學(xué)好。他們提前各自研究得到了自己患病的風(fēng)險(xiǎn),并且想通過(guò)這些來(lái)確認(rèn)自己的診斷結(jié)果。
病人 A 知道他自己有 95% 的可能會(huì)患病。對(duì)于病人 B,患病概率為 30%,病人 C 的患病未患病的概率都為 50%。
病房中的不確定性
首先我們專注于一個(gè)簡(jiǎn)單的問(wèn)題。在其他條件都相同的情況下,這三個(gè)病人中的哪個(gè)面臨著最大的不確定性?
這個(gè)問(wèn)題的答案是顯而易見(jiàn)的,病人 C。他所面臨的是在這種情況下可能呢存在的最大程度的不確定性:就像醫(yī)療版本的拋硬幣試驗(yàn)一樣。
對(duì)于病人 A 來(lái)說(shuō),雖然他的情況不容樂(lè)觀,但是至少他對(duì)于是否患病這個(gè)問(wèn)題有最小的不確定性。對(duì)于病人 B,他的不確定性在病人 A 和病人 C 之間。
這就是為什么要引入熵這個(gè)概念的原因:描述一個(gè)狀況下的不確定性為在xx和xx之間,在日常生活環(huán)境下這種精細(xì)程度可能足夠了,但是對(duì)于機(jī)器學(xué)習(xí)任務(wù)來(lái)說(shuō),這種描述太寬泛了。
熵允許我們對(duì)于生活中的一個(gè)重要問(wèn)題:事情最終會(huì)發(fā)展到什么樣的結(jié)果,進(jìn)行精確度量和計(jì)算。
換種說(shuō)法,熵是一種不確定性的度量。
在本篇文章中,熵都是指代香農(nóng)熵(Shannon entropy)。其實(shí)還有幾種其他類型的熵,但是在自然語(yǔ)言處理或者機(jī)器學(xué)習(xí)領(lǐng)域中,我們提到的熵都是香農(nóng)熵。
所以在沒(méi)有特意說(shuō)明的情況下,下面就是熵的公式。對(duì)于事件X,有n種可能結(jié)果,且概率分別為p_1, ... p_n,公式為:
如果你是第一次看到這個(gè)公式,你可能會(huì)提出一個(gè)問(wèn)題:為什么要用對(duì)數(shù)?為什么這個(gè)公式就能夠度量不確定性?當(dāng)然,還有為什么要用字母H來(lái)表示熵?(表面上這個(gè)英文字母H是從希臘大寫(xiě)字母Eta上演變過(guò)來(lái)的,但實(shí)際上為什么采用了字母H來(lái)表示,還是有一段復(fù)雜的歷史的,感興趣的可以看這個(gè)問(wèn)題:Why use H for entropy?)
對(duì)于很多情況下的問(wèn)題,我認(rèn)為從以下兩點(diǎn)切入是很好的選擇:(1)我所面對(duì)的這個(gè)數(shù)學(xué)結(jié)構(gòu)有那些理想的屬性?(2)是否有其他結(jié)構(gòu)也能夠滿足所有這些理想的屬性?
對(duì)于香農(nóng)熵作為不確定性的度量來(lái)說(shuō),這兩個(gè)問(wèn)題的答案分別是:(1)很多,(2)沒(méi)有。
我們來(lái)一個(gè)一個(gè)看我們希望熵的公式應(yīng)該具有哪些性質(zhì)。
如果你的目標(biāo)是減小不確定性,那么一定要遠(yuǎn)離均勻概率分布。
簡(jiǎn)單回顧一下概率分布:概率分布是一個(gè)函數(shù),對(duì)于每個(gè)可能的結(jié)果都有一個(gè)概率,且所有的概率相加等于 1。當(dāng)所有可能的結(jié)果具有相同的可能性時(shí),該分布為均勻分布。例如:拋硬幣實(shí)驗(yàn)(50% 和 50% 的概率), 均勻的骰子(每個(gè)面朝上的概率都為六分之一)。
均勻分布具有最大的熵
一個(gè)好的不確定性度量會(huì)在均勻分布時(shí)達(dá)到最大的值。熵滿足這個(gè)要求。給定 n 個(gè)可能的結(jié)果,最大的熵在所有結(jié)果的概率相同時(shí)得到。
下面是對(duì)于伯努利試驗(yàn)中熵的圖像。(伯努利試驗(yàn)有兩種可能的結(jié)果:p和1-p):
在伯努利試驗(yàn)中,當(dāng)p=0.5時(shí),熵達(dá)到最大
假設(shè) A 和 B 是獨(dú)立事件。換句話講,知道事件 A 的結(jié)果并不會(huì)絲毫影響 B 的結(jié)果。
關(guān)于這兩個(gè)事件的不確定性應(yīng)該是兩個(gè)事件單獨(dú)的不確定性的和,這也是我們希望熵的公式應(yīng)該具備的性質(zhì)。
對(duì)于獨(dú)立事件,不確定性是可加的
讓我們使用拋兩個(gè)硬幣的試驗(yàn)作為例子來(lái)使這個(gè)概念更加具體。我們既可以兩個(gè)硬幣同時(shí)拋,也可以先拋一個(gè)硬幣再拋另一個(gè)硬幣。在兩種情況下,不確定性是相同的。
考慮兩個(gè)特殊的硬幣,第一個(gè)硬幣正面朝上 (H, Head) 的概率為80%,背面朝上 (T, Tail) 的概率為 20%。另一個(gè)硬幣的正面朝上和反面朝上的概率分別為 60% 和 40%。如果我們同事拋兩枚硬幣,那么有四種可能:正正,正反,反正,反反。對(duì)應(yīng)的概率分別為[0.48, 0.32, 0.12, 0.08]。
兩個(gè)獨(dú)立事件的聯(lián)合熵等于獨(dú)立事件的熵的和
將這些概率帶入到熵的公式中,我們能夠看到:
就跟我們?cè)O(shè)想的一樣,兩個(gè)獨(dú)立事件的聯(lián)合熵等于各個(gè)獨(dú)立事件的熵的和。
假設(shè)有一個(gè)游戲,獲勝條件如下:(a)只要#1號(hào)結(jié)果出現(xiàn),你就贏了。(b)你可以在兩個(gè)概率分布 A 和 B 中選一個(gè)進(jìn)行游戲。分布 A 有兩種可能,#1號(hào)結(jié)果為 80% 概率,#2號(hào)結(jié)果為 20% 概率。分布 B 有三種結(jié)果,#1號(hào)結(jié)果80%,#2號(hào)結(jié)果20%,#3號(hào)結(jié)果0%.
增加第三個(gè)概率為0的結(jié)果并不會(huì)有什么不同
給定 A 和 B 兩個(gè)選擇,你會(huì)選哪個(gè)?可能正確的反應(yīng)應(yīng)該是聳聳肩或白個(gè)眼。第三個(gè)結(jié)果的加入并沒(méi)有增加或減少這個(gè)游戲的不確定性。誰(shuí)關(guān)心到底是用A還是B呀,因?yàn)橛媚膫€(gè)都是一樣的。
熵的公式也滿足這個(gè)性質(zhì):
即,增加一個(gè)概率為0的結(jié)果,并不會(huì)影響對(duì)于不確定性的度量。
最后一個(gè)基本性質(zhì)是連續(xù)性。
連續(xù)性的最直觀的解釋就是沒(méi)有斷開(kāi)或者空洞。更精確的解釋是:輸出(在我們的場(chǎng)景下是不確定性)中任意小的變化,都可以由輸入(概率)中足夠小的變化得到。
對(duì)數(shù)函數(shù)在定義域上每個(gè)點(diǎn)都是連續(xù)的。在子集上有限數(shù)量函數(shù)的和和乘積也是連續(xù)的。由此可能得出熵函數(shù)也是連續(xù)的。
唯一性定理
Khinchin(1957)證明,滿足上述四種基本屬性的唯一函數(shù)族具有如下形式:
其中λ是正常數(shù)。Khinchin稱之為唯一性定理。將λ設(shè)為1,并使用以2為底的對(duì)數(shù)就得到了香農(nóng)熵。
重申一下,使用熵作為不確定性度量是因?yàn)樗哂形覀兤谕膶傩裕⑶沂菑臐M足上面提到的四個(gè)屬性的函數(shù)族中做出的很自然的選擇。
除了上述用于Khinchin的唯一性定理中的四個(gè)基本屬性,熵還具有一些其他的性質(zhì),下面就介紹其中的一些。
比如你可以在拋硬幣試驗(yàn)和拋骰子試驗(yàn)中做出一個(gè)選擇,如果硬幣正面朝上或者骰子1那面朝上就算贏。你會(huì)選擇那個(gè)試驗(yàn)?如果你想最大化收入,肯定會(huì)選擇硬幣。如果只是想體驗(yàn)下不確定性,那可能就會(huì)選骰子。
隨著等概率結(jié)果的數(shù)量的增加,不確定性的度量也應(yīng)該增加。
這正是熵所做的:H(1/6, 1/6, 1/6, 1/6, 1/6, 1/6)> H(0.5, 0.5)
一般來(lái)說(shuō),L(k)為具有K個(gè)結(jié)果的均勻分布的熵,我們能夠得到:
對(duì)于m>n,有
你知道什么是負(fù)的不確定性嗎?反正我也不知道。
對(duì)于一個(gè)用戶友好的不確定性度量來(lái)說(shuō),無(wú)論輸入是什么,應(yīng)該總會(huì)返回一個(gè)非負(fù)的結(jié)果。
熵的公式同樣滿足這個(gè)性質(zhì),我們來(lái)看一下公式:
概率是定義在0-1的范圍內(nèi)的,因此是非負(fù)的。所以概率的對(duì)數(shù)是負(fù)的。概率乘概率的對(duì)數(shù)不會(huì)改變符號(hào)。因此求和之后應(yīng)該是負(fù)的,最終負(fù)負(fù)得正。所以對(duì)于所有的輸入,熵都是非負(fù)的。
假設(shè)你擁有一個(gè)魔法硬幣,無(wú)論你怎么拋,硬幣總是正面朝上。
你會(huì)怎么量化這個(gè)魔法硬幣的不確定性,或者其他情況下有確定結(jié)果的事件的不確定性?這中情況下就沒(méi)有不確定性,所以結(jié)果也很自然,不確定性為0。
熵的定義也滿足這個(gè)性質(zhì)。
假設(shè)結(jié)果i一定會(huì)發(fā)生,即p_i=1, 所以H(X)為:
即,確定事件的熵為0。
這是另一個(gè)顯而易見(jiàn)的理想性質(zhì)??紤]兩種情況,第一個(gè),拋硬幣正面朝上的概率和背面朝上的概率分別為80%和20%。第二個(gè)情況里概率正好相反:正面朝上和背面朝上的概率分別為20%和80%。
兩種拋硬幣試驗(yàn)都有相同的熵,即H(0.8, 0.2) = H(0.2, 0.8)。
更通用的形式,對(duì)于個(gè)結(jié)果的試驗(yàn),我們有:
實(shí)際上這對(duì)于有任何數(shù)量結(jié)果的試驗(yàn)都適用。我們可以以任意的方式調(diào)整參數(shù)的順序,而所有的結(jié)果都是一樣的。
回顧一下,香農(nóng)熵是一種不確定性的度量。
它被廣泛的適用,因?yàn)樗鼭M足了我們想要的一些標(biāo)準(zhǔn)(同時(shí)也是因?yàn)槲覀兩钪谐錆M了不確定性)。唯一性定理告訴我們,只有一個(gè)函數(shù)族具有我們想要的四種基本性質(zhì)。香農(nóng)熵是這個(gè)函數(shù)族的一個(gè)很自然的選擇。
熵的性質(zhì)有(1)對(duì)于均勻分布有最大的熵;(2)對(duì)于獨(dú)立事件熵是可加的;(3)具有非零概率的結(jié)果數(shù)量增加,熵也會(huì)增加;(4)連續(xù)性;(5)非負(fù)性;(6)確定事件的熵為0;(7)參數(shù)排列不變性。
via TowardsDatascience,雷鋒網(wǎng) AI 科技評(píng)論編譯
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。