1. 程式人生 > >最大熵模型(Maximum Entropy Model, ME)理解

最大熵模型(Maximum Entropy Model, ME)理解

資訊理論的創始人Shannon認為,“資訊是指人們對事物理解的不確定性的降低或消除”,他稱這種不確定的程度為資訊熵。

可以這樣理解,熵就是隨機事件的不確定性,熵越小資訊就越明確,而越不確定的事情熵就越大。比如,一個正常骰子6個面(1,2,3,4,5,6),投擲時每個面的概率相等;而另一個作弊骰子,也有6個面,在為”6”的那一面灌鉛,投擲時永遠出現“6”那一面。那麼很明顯投擲正常骰子的資訊更為不確定,熵更大。而作弊骰子的資訊更確定,熵更小。

下面我們將從隨機變數開始一步一步慢慢理解熵。

1,隨機變數(random variable)

1.1 隨機變數(random variable)

什麼是隨機變數?

表示隨機現象(在一定條件下,並不總是出現相同結果的現象稱為隨機現象)各種結果的實值函式(一切可能的樣本點)。如擲一顆骰子,它的所有可能結果是出現1點、2點、3點、4點、5點和6點 ,若定義X為擲一顆骰子時出現的點數,則X為一隨機變數。

隨機變數   X{1,2,3,4,5,6}

      圖(1)

1.2 隨機變數概率(The probability of a random variable)

什麼是隨機變數的概率?

要全面瞭解一個隨機變數,不但要知道它取哪些值,而且要知道它取這些值的規律,即要掌握它的概率分佈。概率分佈可以由分佈函式刻畫。若知道一個隨機變數的分佈函式,則它取任何值和它落入某個數值區間內的概率都可以求出。所以我們可以P(X=x)其中一種情況出現的概率。而P(X)我們叫它為概率分佈函式。

如上述擲一顆骰子,X是均勻分佈 X~U[1,6]。而P(X)的分佈函式如下,也可以看出P(X=1)=1/6

              圖(2)

又如某一地區的大學生身高為正態分佈,若定義X為男性身高可能出現的值,則X也是一個隨機變數,服從X~N(172.70, 8.01)。用P(X)表示隨機變數的概率分佈。

分佈函式

                 

概率分佈圖如下,而每個學生的身高都對應了一個概率,如P(X=1.7)就能得到相應的概率

              圖(3)

 1.3 隨機變數的期望(Expected value)

期望又如何表示,表示什麼?

假設隨機變數X有值x1概率為p1,X有值x2概率為p2,..X有值xk概率為pk。

則離散隨機變數的期望可以定義為:

如骰子點數的期望E[X]=1/6(1+2+3+4+5+6)

也就相當於用每一個取值乘以相應的概率

其實期望就是我們生活中常常遇到的平均值,相當於用一個值綜合的描述一個隨機變數的分佈情況取值情況

1.4 隨機變數的隨機性(randomness of a random variable)

  • 韋小寶用灌鉛作弊骰子投擲的隨機變數X更隨機 還是 我們用正常骰子投擲得到的隨機變數X更隨機?
    從圖(4)的概率分佈可以看出,正常骰子投擲時隨機變數X有6種可能性{1,2,3,4,5,6},而作弊骰子擲時隨機變數X 只有一種可能性"6".
    很明顯投擲正常骰子時隨機變數X資訊更為不確定,投擲正常骰子時的隨機變數X更隨機。
                                                                        圖(4)

  • 什麼是隨機變數的隨機性(不確定性)? 如何衡量隨機變數的隨機性?

 如圖(5)中哪個分佈的隨機變數X更隨機?  

 第一個圖服從均勻分佈X~U(1,6),第二個圖服從高斯分佈X~N(3.5,1)

 兩組都是X都是{1,2,3,4,5,6}只是它們取得概率不同, 如果單從X的可能性情況無法判斷哪個更為隨機。 

因此我們急需引入一個概念來表述隨機變數的隨機性,這也就是我們馬上要說的熵(Entropy) 

                                                  圖(5)              

2, 最大熵原理(Principle of maximum entropy)

2.1 熵的定義

熵的計算公式:(為什麼要將熵計算公式定義成這樣? 夏農這樣定義肯定有他的道理哈。在後面推導以及應用的時候就能感受到夏農這麼定義的強大。

 

也相當於隨機變數X每一個取值的概率乘以對應的概率的對數。

其中,x表示隨機變數,與之相對應的是所有可能輸出的集合,定義為符號集,隨機變數的輸出用x表示。P(x)表示輸出概率函式。變數的不確定性越大,熵也就越大,把它搞清楚所需要的資訊量也就越大.  

現在我們可以用熵的公式來比較圖4與5中到底哪個更隨機了。

  • X均勻分佈,正常骰子投擲時的熵:

                   

  • X特殊分佈,韋小寶骰子投擲時的熵:


  • X服從正態分佈X~N(3.5,1),正態分佈時骰子投擲的熵:H(X)=2.028845

X~N(3.5,1)可得隨機變數X的概率分佈為

代入f(x),可以得到 6個點的概率分別為{ 0.0175283 0.1295176 0.3520653 0.3520653 0.1295176 0.0175283}。

代入公式可以得到正態分佈時骰子投擲的熵


=-(0.0175283*log2(0.0175283)+0.1295176*log2(0.1295176)+0.3520653*log2(0.3520653)+

           0.3520653*log2(0.3520653)+0.1295176*log2(0.1295176)+0.0175283*log2(0.0175283))

              =2.028845

結論:對於投擲骰子這個事件,隨機變數X,當X概率分佈P(X)是均勻分佈時,熵H(X)值最大,是最隨機的。

猜測:對於一個隨機變數X,當它的分佈是均勻分佈時,它的熵H(X)是最大的(X是最隨機的)。這也就是我們說的最大熵。

2.2 單約束 最大熵推導

單約束最大熵的基本想法就是在一定條件下(概率和為1),找到一個分佈p*(X),使熵H(X)的值達到最大。可以寫成:

        

在約束下求最大值,使用拉格朗日乘子法。設

                

得到拉格朗日方程

要求最大值,則考慮對求偏導:

      

   

 

從而得到方程組

            推出 :             

推出:

證明猜想是正確的,一個隨機變數X,當p(X)為均勻分佈時,熵H(X)最大。

2.3 多約束 最大熵推導

多約束最大熵的基本想法就是在多個條件下(共m+1個約束),找到一個分佈p*(X),使熵H(X)的值達到最大。可以寫成:

=>拉格朗日方程

對所有求偏導

=>   

=>

又因為:

=> 

3,最大熵模型(Maximum Entropy Model)

 上面講的都是關於一個隨機變數的熵H(X),對於條件概率模型P(Y|X)的條件熵H(Y|X)也常常被用到,定義為

 

 其中集合Z包含變數X,Y的所有範圍。(x,y都是向量)

具體推導如下:

 

求最大熵就相當於求一個條件分佈p(y|x)使得條件熵H(y|x)最大,其中x,y表示向量

 

已知存在m+1個約束:

  

p(x,y)表示邊緣概率,f(x,y)表示x與y的函式,~p(x,y)表示經驗分佈

使用拉格朗日乘子法可以得到拉格朗日方程:

於各個部分對p(x1),p(x2)...求偏導數,

最後解方程可得

具體推導請看 http://pan.baidu.com/s/1i31hnEX 

4,圖模型表示

  

5,引用

http://pan.baidu.com/s/1i31hnEX

http://pan.baidu.com/s/1ntBO2pj

http://pan.baidu.com/s/1nt9M7ln

http://pan.baidu.com/s/1o6v7vfW

http://pan.baidu.com/s/1hqvJ9lE

http://pan.baidu.com/s/1qWHhYSO