信息熵的定義和理解

信息熵的定義和理解

定義

熵是資訊理論中的概念,用於表示信息的不確定程度。熵值越大,則信息的不確定程度越大。

舉個不是很恰當的例子,假設你現在正在玩撲克牌,和電影里的賭神一樣,你喜歡猜牌,現在觀察到的牌面如下:

那麼這張牌可能是什麼?首先我們知道一副牌有4種花色{?,?,?,?},每種花色有13張牌{A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K}。那麼從已經觀察到圖形和顏色來看,這隻牌的花色可能是{?,?},牌號可能是{2, 3, 6, 8, 9, Q},一共有12種可能。這種在觀察數據不足(只看到部分牌面)的情況下,導致的信息不確定度(沒法完全確定花色和牌號),可以用熵來衡量。

基本熵(香農熵)

對於一組觀察變數/信息X,其不確定程度的定義為:

H(X) = -sum_1^np(x_i)*log p(x_i)

還是以撲克牌的例子來說,我們把花色和牌號用兩個隨機變數來表示,其中花色用隨機變數Y,牌號用隨機變數X。即Y={?,?},X={2, 3, 6, 8, 9, Q}。

我們知道,在完全理想的情況下,每張撲克牌出現的概率是一樣的,即

P(花色 = ?) = P(花色 = ?) = frac{1}{2}

P(牌號 = 2) = P(牌號 = 3) = …… = P(牌號 = Q) = frac{1}{6}

我們先不考慮隨機變數Y的可能性,只考慮隨機變數X,即猜測這張牌的牌面。那麼從熵的定義公式,我們可以計算出,當我們觀察到上述圖片的時候,此時實際牌面的熵值為:

-(sum_{1}^{6}frac{1}{6} * log frac{1}{6})=-log frac{1}{6}

聯合熵

對於兩組觀察變數/信息X和Y,其不確定程度的定義為:

H(X, Y) = -sum_1^np(x_i, y_i)*log p(x_i, y_i)

繼續用撲克牌的例子,之前我們已經計算出,只考慮牌號的情況下的熵值,現在同時考慮花色Y和牌號X。則根據定義,此時的熵值為:

-(sum_{1}^{12}frac{1}{12} * log frac{1}{12})=-log frac{1}{12}

條件熵

假設存在兩組觀察變數/信息X和Y,當我們已知Y時,此時的X的不確定程度稱之為條件熵,其定義為:

H(X|Y) = -sum_1^np(x_i, y_i)*log p(x_i|y_i)

假設現在我們通過某種方式(例如透視),偷偷的知道了現在手中的牌是黑桃,即我們知道了花色X,那麼這時候我們手中牌的不確定程度怎麼表示?

從定義可知:

H(X|Y)=-(frac{1}{2}*logfrac{1}{6}+frac{1}{2}*logfrac{1}{6})=-logfrac{1}{6}

信息增益

信息增益G(X, Y)的定義為,已知觀察數據Y,對於減少信息X的不確定度的幫助有多大

G(X, Y) = H(X) - H(X|Y)

信息增益率

信息增益率Gr(X, Y)的定義為,已知觀察數據Y,對於減少信息X的不確定度的幫助的比例

Gr(X, Y) = G(X, Y) / H(X)

練練手

假設我們現在收集到一組數據

 egin{matrix} feature_1 & feature_2 & feature_3 & label \ 1 & 1 & 2 & -1 \ 1 & 1 & 1 & -1 \ 2 & 1 & 1 & 1 \ 2 & 2 & 2 & 1 \ end{matrix}

問:label的基本熵?

答:從數據中可以知道label={-1, 1},且P(label = 1) = P(label = -1) = 0.5,因此根據公式計算得到H(label) = -(P(lable = 1) * log P(lable = 1) + P(lable = -1) * log P(lable = -1)) = -log 0.5

問:featrue1和label的聯合熵?

答:從數據中可以知道,featrue1={1, 2}, lable={-1, 1},因此兩者的聯合取值範圍為{(1, -1), (1, 1), (2, -1), (2, 1)},且

P(feature1 = 1, label = -1)=0.5

P(feature1 = 1, label = 1)=0

P(feature1 = 2, label = -1)=0

P(feature1 = 2, label = 1)=0.5,

根據定義可以算出H(feature1, label) = -(0.5 * log 0.5 + 0 * log 0 + 0.5 * log 0.5 + 0 * log 0) = -log 0.5

問:已知feature1的情況下,求label的條件熵?

答:

P(label = 1 | feature1 = 1)=0 & P(feature1 = 1, label = 1)=0

P(label = -1 | feature1 = 1)=1 & P(feature1 = 1, label = -1)=0.5

P(label = 1 | feature1 = 2)=1 & P(feature1 = 2, label = 1)=0.5

P(label = -1 | feature1 = 2)=0 & P(feature1 = 2, label = -1)=0

根據定義可以算出H(label | feature1) = -(0 * log 0 + 0.5 * log 1 + 0.5 * log 1 + 0 * log 0) = - 1 * log 1

問:已知feature1的情況下,對於知道label的信息增益?

答:G(label, feature1) = H(label) - H(label | feature1) = - log 0.5 - ( -1 log 1) = - log 0.5


推薦閱讀:

數學之《因數與倍數》常見錯題集
孩子數學不好,和遺傳有關?賴爸爸還是媽媽,答案居然是······
Excel函數學習8:SEARCH函數
漫畫 | 精子是怎麼游到卵子身邊的?它背後的數學原理是什麼?
關於複數的乘方/開方運算

TAG:資訊理論 | 數學 | 自然科學 |