熵,條件熵,互信息,交叉熵 的理解總結

定義: 用來度量信息的不確定程度。

解釋: 熵越大,信息量越大。不確定程度越低,熵約小,比如「明天太陽從東方升起」這句話的熵為0,因為這個句話沒有帶有任何信息,它描述的是一個確定無疑的事情。

例子:假設有隨機變數X,用來表達明天天氣的情況。X可能出現三種狀態 1) 晴天2) 雨天 3)陰天 每種狀態的出現概率均為P(i) = 1/3,那麼根據熵的公式:

可以計算得到

H(X) = - 1/3 * log(1/3) - 1/3 * log(1/3) + 1/3 * log(1/3) = log3 =0.47712

如果這三種狀態出現的概率為(0.1, 0.1, 0.8), 那麼

H(X) = -0.1 * log(0.1) *2 - 0.8 * log(0.8) = 0.277528

可以發現前面一種分布X的不確定程度很高,每種狀態都很有可能。後面一種分布,X的不確定程度較低,第三種狀態有很大概率會出現。 所以對應前面一種分布,熵值很高,後面一種分布,熵值較低。


條件熵

定義:在一個條件下,隨機變數的不確定性。

舉例說明:

假設隨機變數X表示明天的天氣情況,隨機變數Y表示今天的濕度,Y 有兩種狀態 1) 潮濕 2) 乾燥。

假設基於以往的18個樣本, X 的三種狀態,概率均為 0.33, Y的兩種狀態,概率為0.5

條件概率可以通過樸素貝葉斯公式進行計算:

P(X=0|Y=0) =P(X=0,Y=0)/P(Y=0) = (1/18)/(9/18) = 1/9

P(X=1|Y=0)= P(X=1,Y=0)/P(Y=0) = (5/18)/(9/18) = 5/9

P(X=2|Y=0) =P(X=2,Y=0)/P(Y=0) = (3/18)/(9/18) = 3/9

P(X=0|Y=1) =P(X=0,Y=0)/P(Y=1) = (1/18)/(9/18) = 1/9

P(X=1|Y=1)= P(X=1,Y=0)/P(Y=1) = (5/18)/(9/18) = 5/9

P(X=2|Y=1) =P(X=2,Y=0)/P(Y=1) = (3/18)/(9/18) = 3/9

條件熵的公式:

根據這個公式:

H(X|Y) = (1/18)*log(1/9) + (5/18)*log(5/9) + (3/18)*log(3/9) + (1/18)*log(1/9) + (5/18)*log(5/9) + (3/18)*log(3/9) = 0.406885

信息增益 = 熵 – 條件熵

信息增益的定義:在一個條件下,信息不確定性減少的程度

所以Y條件產生的信息增益為 0.47712 - 0.406885

信息增益的應用: 我們在利用進行分類的時候,常常選用信息增益更大的特徵,信息增益大的特徵對分類來說更加重要。決策樹就是通過信息增益來構造的,信息增益大的特徵往往被構造成底層的節點。

Q & A:

[1] 為什麼H(X|Y)不是如下這個公式?

答:首先我們需要理解熵值是怎麼計算的,也就是本文的第一個公式。按照我的理解熵是一個多項加權平均值。p(xi) 就是i項對應的權重值,log(1/p(xi))就是i項對應的熵值。

那麼可能有人不太明白為什麼這一項的熵值 = log(1/p(xi)) , 假設x存在四種取值,可能為[0,1,2,3], 那麼為了表達這個四種可能,需要2個bit來表示: [0b00, 0b01, 0b10, 0b11]

實際上bit數就是熵值。那麼這項的熵值是2么? 不一定,從之前的公式可以看出,熵值和這項的概率成反比,也就是p(xi) 越高, 熵值越小。因為我們可以對每種可能值進行不等長的編碼,概率高的用短編碼,概率低的用長編碼。搞懂haffman編碼就能明白這一點了。

搞明白了這個最基本公式的由來,那麼回到條件熵的問題,p(x,y) 代表了每種組合的概率,無需考慮y是否已知,而計算每項熵值log p(x|y)的時候,引入y是已知的這個條件,可以容易看出y已知情況下,每項xi概率的增大(即每項熵值的減少)。

引入已知條件y,使得總熵值減少,這也是條件熵的意義所在。

如果上面講的不能理解,下面還有一段從別的文章抄來的推導,我覺得也比較好理解:

  • 兩個隨機變數X,Y的戀歌分布,可以形成聯合熵(Joint Entropy),用H(X, Y)表示。
    • 即:H(X, Y) = -Σp(x, y) log(x, y)
  • H(X, Y) - H(Y)
    • 表示(X, Y)發生所包含的熵,減去Y單獨發生包含的熵:在Y發生的前提下,X發生新帶來的熵。
  • 條件熵:H(X|Y)


互信息

定義:指的是兩個隨機變數之間的相關程度

理解:確定隨機變數X的值後,另一個隨機變數Y不確定性的削弱程度,因而互信息取值最小為0,意味著給定一個隨機變數對確定一另一個隨機變數沒有關係,最大取值為隨機變數的熵,意味著給定一個隨機變數,能完全消除另一個隨機變數的不確定性。這個概念和條件熵相對。

公式

假設X,Y完全無關,H(X) = H(X|Y) , 那麼I(X;Y) = 0

假設X,Y完全相關,H(X|Y) =0, 那麼I(X;Y) = H(X)

條件熵越大,互信息越小,條件熵越小,互信息越大。

互信息信息增益實際是同一個值。


交叉熵

定義:資訊理論中的重要概念,主要用於度量兩個概率分布間的差異性信息。

理解: 在進行優化的過程中,往往將交叉熵又命名為loss變數,優化的目標即是最小化loss。

假如X為一組已知的輸入特徵值,Y為一組已知的輸出分類。優化的目標是為了找到一個映射模型F, 使得預測值Y_ = F(X), 與真值Y最相似。但現實世界的Y和Y_的分布肯定不是完全一致的。

所以:

Y 服從 p分布(即真實分布)

Y_ 服從 q分布

交叉熵cross_entropy 即為描述p,q兩個分布差異性的指標。

交叉熵公式:


推薦閱讀:

資訊理論抄書筆記 - 馬爾可夫鏈與熵的結合
資訊理論(一)
信息與香農...
學堂在線《應用資訊理論基礎》學習筆記01

TAG:資訊理論 | 機器學習 | 深度學習DeepLearning |