1. 程式人生 > >機器學習筆記:最大熵(模型,推導,與似然函式關係的推導,求解)

機器學習筆記:最大熵(模型,推導,與似然函式關係的推導,求解)

1、最大熵模型

最大熵原理:最大熵原理認為在學習概率模型時,在所有可能的概率模型中,熵最大的模型是最少的模型。

該原理認為要選擇的概率模型首先得承認已有的現實(約束條件),對未來無偏(即不確定的部分是等可能的)。比如隨機變數取值有A,B,C,另外已知 P ( A ) =

0.2 P(A)=0.2 ,那麼根據最大熵原理,首先滿足約束條件 P ( A ) = 0.2
, P ( B ) + P ( C ) =
0.8 P(A)=0.2,P(B)+P(C)=0.8
,然後未知的部分即 P ( B ) P ( C ) P(B)和P(C) ,應該是等可能的,所以 P ( B ) = P ( C ) = 0.4 P(B)=P(C)=0.4 ,此時模型熵最大,被認為是最好的模型。

那麼根據最大熵原來來定義最大熵模型。假設要學習的是個分類模型,表示為條件概率分佈 P ( Y X ) P(Y|X) ,訓練集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\} X X 是輸出變數, Y Y 是輸出變量表示類別。我們需要獲得最佳的分類模型 P ( Y X ) P^*(Y|X)

根據最大熵原理,在滿足約束條件下, P ( Y X ) P(Y|X) 的熵最大的模型為最佳模型。所以我定義最大熵模型就是做兩件事

  1. P ( Y X ) P(Y|X) 的熵
  2. 約束條件

先給出聯合分佈 P ( X , Y ) P(X,Y) 和邊緣分佈 P ( X ) P(X) 如下:

P ( X = x , Y = y ) = c ( X = x , Y = y ) n \overline{P}(X=x,Y=y)=\frac{c(X=x,Y=y)}{n} ,分子表示(x,y)的頻數
P ( X = x ) = c ( X = x ) n \overline{P}(X=x)=\frac{c(X=x)}{n} ,分子表示 X = x X=x 的頻數

P ( Y X ) P(Y|X) 的熵 H ( P ) H(P) 的定義和變換如下
H ( P ) = i = 1 n p i H ( Y X = x i ) = i = 1 n p i j = 1 n p ( Y = y j X = x i ) l o g p ( Y = y j X = x i ) = i = 1 n j = 1 n p i p ( Y = y j X = x i ) l o g p ( Y = y j X = x i ) H(P)=\sum\limits_{i=1}^{n}p_iH(Y|X=x_i)\\ =-\sum\limits_{i=1}^{n}p_i\sum\limits_{j=1}^{n} p(Y=y_j|X=x_i)logp(Y=y_j|X=x_i)\\ =-\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n}p_i\cdot p(Y=y_j|X=x_i)logp(Y=y_j|X=x_i)

從而得到 P ( Y X ) P(Y|X) 的熵 H ( P ) = ( x , y ) P ( x ) P ( y x ) l o g P ( y x ) H(P)=-\sum\limits_{(x,y)}\overline {P}(x)P(y|x)logP(y|x) 。如果看不習慣那就寫成 i = 1 n j = 1 n P ( x i ) P ( y j x i ) l o g P ( y j x i ) -\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n}\overline {P}(x_i)\cdot P(y_j|x_i)logP(y_j|x_i)