熵,條件熵,互信息,交叉熵 的理解總結
熵
定義: 用來度量信息的不確定程度。
解釋: 熵越大,信息量越大。不確定程度越低,熵約小,比如「明天太陽從東方升起」這句話的熵為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 |