一文詳解機器學習中的信息熵概念
開篇
這篇文章主要介紹信息熵(Information Entropy)這個概念,也是為了我的專欄下一講做前期的知識準備。
信息理論是數學的重要分支,主要是解決數據在噪音通道的傳輸問題。其中,信息理論里程碑的貢獻是量化了一個事件或者隨機變量所包含的信息,也叫做熵(Entropy)。
熵的計算在機器學習中有著廣泛的應用,如邏輯回歸(Logistic Regression),決策樹(Decision Tree)等等分類模型。
這些看似深奧的知識,背後的邏輯並不難。
大綱
- 信息理論簡介
- 信息值和熵的計算
信息理論簡介
熵(Entropy)這個概念在學大學物理的時候,有所涉及。熵可以被看做一個系統混亂度的度量。熵值越大,系統越混亂。
也許你聽過,宇宙在朝著熵增的方向發展著。
信息理論中,最基礎的概念就是信息(Information)。信息值可以將事件、隨機變量中所含的信息量化。
問題:六月飄雪和六月下雨哪個事件的信息量大?
六月下雨太正常了,一點都不驚訝,這是常識,信息量相對較少。六月飄雪就不正常了,小概率事件背後是不是有冤情,信息量滿滿。
信息理論中:
- 一個事件發生的概率越大,信息量越少,發生產生的驚喜值較低;
- 一個事件發生的概率越小,信息量越大,發生產生的驚喜值較高;
信息量的計算
也就是說,信息量和概率是負相關的。概率越小,信息量越大。所以,在信息理論中,會用到以下的公式將信息量和概率值聯繫起來:
從下圖中,可以發現公式可以很好的滿足我們的需求。當事件發生概率為100%的時候,信息值為0。
拿拋硬幣為例,正反出現的概率各為50%,P=0.5。代入公式,出現正面這個事件的信息值為1。
熵的計算
熵這個概念有點類似期望值。這次拿擲骰子為例,骰子有1,2,3,4,5,6 六個面。
如果有人和你賭錢:
- 擲骰子擲出1,2,3,4,他就給你1塊錢;
- 擲骰子擲出5,6,你給他一塊錢;
你覺得公平嗎?當然不,為什麼呢?這就撤出了 期望值的概念。
骰子的六個面任意一面出現的概率為 1/6。 那麼將 每個面的點數*點數出現的概率 求和,這就是期望值。擲骰子這個事件的期望值為(1+2+3+4+5+6)* 1/6 = 3.5。
怎麼理解期望值呢?其實可以理解為,多次試驗結果的平均值。也就是說,擲骰子無數次,骰子點數的平均值是3.5。這樣就好理解上面這個遊戲是否公平了。明顯被佔了便宜。
熵的概念類似期望值,是計算 P * (-ln(P)) 的和,-ln(P)就是該事件的信息量IV。
熵 = (事件發生概率 * 事件信息量)的和
事件符合的概率分佈多種多樣,均勻分佈,高斯分佈等等。不同的分佈,計算的熵是什麼個規律呢?
- 偏態分佈,熵低;
- 平衡分佈,熵高;
這也好理解,還是擲硬幣為例。但是這次的硬幣是做了手腳的,出現正面的概率為80%,反面的概率為20%。這和50%正反的情況的熵值孰高孰低呢?
萬變不離其宗。
我們來看下,熵和概率的曲線變化。概率越集中在0.4~0.6之間,(事件發生概率 * 事件信息量)的值越大。而大概率事件和小概率事件的(事件發生概率 * 事件信息量)值都會急劇減小。因為小概率事件,雖然信息量大,但是發生概率小,相互抵消。反之亦然。
或許這樣更加清晰,我們製作一系列的6個作弊骰子,正面朝上的概率分別為0%,10%,20%,30%,40%,50%。分別算一下投骰子這個事件的熵。可以看到,均勻的骰子產生的熵最大。
總結
這是為了專欄下一講邏輯回歸的知識小結,對於信息值和熵,我相信大家有了一個基本的概念。總結如下:
信息值:
- 一個事件發生的概率越大,信息量越少,發生產生的驚喜值較低;
- 一個事件發生的概率越小,信息量越大,發生產生的驚喜值較高;
熵:
- 偏態分佈,熵低;
- 平衡分佈,熵高;