熵增 熵

雷鋒網 AI 科技評論按:「熵」大概是統計學、信息學里最讓初學者愁腸百結的基本概念之一 。我們都知道熵可以用來描述含有的信息豐富程度的多少,但是具體是怎么回事呢?這篇文章中雷鋒網 AI 科技評論將帶大家重新系統認識一下「熵」倒是在講什么 。

熵增  熵

文章插圖
假設你在醫生辦公室中與三個等待的病人交流 。三個病人都剛剛完成藥物測試,他們面臨著兩種可能的結果:患病或者未患病 。假設這三個病人都充滿好奇心而且數學好 。他們提前各自研究得到了自己患病的風險,并且想通過這些來確認自己的診斷結果 。
病人 A 知道他自己有 95% 的可能會患病 。對于病人 B,患病概率為 30%,病人 C 的患病未患病的概率都為 50% 。
熵增  熵

文章插圖
病房中的不確定性
首先我們專注于一個簡單的問題 。在其他條件都相同的情況下,這三個病人中的哪個面臨著更大的不確定性?
這個問題的答案是顯而易見的,病人 C 。他所面臨的是在這種情況下可能呢存在的更大程度的不確定性:就像醫療版本的拋硬幣試驗一樣 。
對于病人 A 來說,雖然他的情況不容樂觀,但是至少他對于是否患病這個問題有最小的不確定性 。對于病人 B,他的不確定性在病人 A 和病人 C 之間 。
這就是為什么要引入熵這個概念的原因:描述一個狀況下的不確定性為在xx和xx之間,在日常生活環境下這種精細程度可能足夠了,但是對于機器學習任務來說,這種描述太寬泛了 。
不確定性度量熵允許我們對于生活中的一個重要問題:事情最終會發展到什么樣的結果,進行精確度量和計算 。
換種說法,熵是一種不確定性的度量 。
在本篇文章中,熵都是指代香農熵(Shannon entropy) 。其實還有幾種其他類型的熵,但是在自然語言處理或者機器學習領域中,我們提到的熵都是香農熵 。
所以在沒有特意說明的情況下,下面就是熵的公式 。對于事件X,有n種可能結果,且概率分別為p_1, ... p_n,公式為:
基本性質如果你是之一次看到這個公式,你可能會提出一個問題:為什么要用對數?為什么這個公式就能夠度量不確定性?當然,還有為什么要用字母H來表示熵?(表面上這個英文字母H是從希臘大寫字母Eta上演變過來的,但實際上為什么采用了字母H來表示,還是有一段復雜的歷史的,感興趣的可以看這個問題:Why use H for entropy?)
對于很多情況下的問題,我認為從以下兩點切入是很好的選擇:(1)我所面對的這個數學結構有那些理想的屬性?(2)是否有其他結構也能夠滿足所有這些理想的屬性?
對于香農熵作為不確定性的度量來說,這兩個問題的答案分別是:(1)很多,(2)沒有 。
我們來一個一個看我們希望熵的公式應該具有哪些性質 。
基本性質1:均勻分布具有更大的不確定性如果你的目標是減小不確定性,那么一定要遠離均勻概率分布 。
簡單回顧一下概率分布:概率分布是一個函數,對于每個可能的結果都有一個概率,且所有的概率相加等于 1 。當所有可能的結果具有相同的可能性時,該分布為均勻分布 。例如:拋硬幣實驗(50% 和 50% 的概率),均勻的骰子(每個面朝上的概率都為六分之一) 。
熵增  熵

文章插圖
均勻分布具有更大的熵
一個好的不確定性度量會在均勻分布時達到更大的值 。熵滿足這個要求 。給定 n 個可能的結果,更大的熵在所有結果的概率相同時得到 。
熵增  熵

文章插圖
下面是對于伯努利試驗中熵的圖像 。(伯努利試驗有兩種可能的結果:p和1-p):
熵增  熵

文章插圖
在伯努利試驗中,當p=0.5時,熵達到更大
基本性質2:對于獨立事件,不確定性是可加的假設 A 和 B 是獨立事件 。換句話講,知道事件 A 的結果并不會絲毫影響 B 的結果 。
關于這兩個事件的不確定性應該是兩個事件單獨的不確定性的和,這也是我們希望熵的公式應該具備的性質 。
對于獨立事件,不確定性是可加的
讓我們使用拋兩個硬幣的試驗作為例子來使這個概念更加具體 。我們既可以兩個硬幣同時拋,也可以先拋一個硬幣再拋另一個硬幣 。在兩種情況下,不確定性是相同的 。

推薦閱讀