最大熵模型 推導


1、似然函數

  概率和似然的區別:概率是已知參數的條件下預測未知事情發生的概率,而似然性是已知事情發生的前提下估計模型的參數。我們通常都是將似然函數取最大值時的參數作為模型的參數。

  那么為何要取似然函數取最大值的參數作為模型的參數?我們基於這樣的假設:對於已經發生的事情,在同樣條件下再次發生的概率就會很大。假如模型的參數固定,然后用這個參數固定的模型來預測已經發生的事情,這時我們得到的概率不一定很大,並且不同的參數得到概率是不一樣的,但是事實上這個事情已經發生了,也就是說發生這個事情的概率為1,此時我們就需要讓模型對這個事情的預測概率越大越好。即概率越大其發生的可能性越大,也就越符合已經發生的事情!(寫得好啰嗦!)

  最大似然估計也是統計學中經驗風險最小化的例子。計算極大似然估計的方法:首先寫出似然函數,對似然函數取對數並整理,然后求導數,最后解似然方程。其中似然函數常用概率密度函數。

 

2、預分析

  假設分類模型為條件概率分布P(y|x),訓練集為T={(x1,y1),(x2,y2),…,(xn,yn)}。則聯合分布P(x,y)的經驗分布和邊緣分布P(x)的經驗分布為:

  對於訓練集特征i的函數fi(x,y),設:

:表示特征函數f在訓練數據T上關於的數學期望。其計算公式為:

:表示特征函數f在模型上關於P(x,y)的數學期望。其計算公式為:

  由於P(x)是未知的,我們使用 來近似表示。於是有:

  最終我們需要計算的條件概率為:P(y|x)。

 

3、最大熵模型分析

  最大熵模型的依據是最大熵原理,最大熵原理是:在沒用更多信息的前提下,使用等概率的方法會使得模型的效果最好。最大熵模型基本圍繞下面兩點而展開:

  1)保證模型滿足已知的所有約束。

  2)在第一點的基礎上使得模型的熵最大。        

  最大熵模型的分析過程:

  1)從訓練集合中抽取若干特征。(抽取特征的方法在此略)

  2)對於抽取出的每個特征i,我們使用特征函數fi(x,y)來表示。當特征i符合某一條件時,我們將特征函數設置一個值1,否則設置0。

  3)找出特征函數的約束條件。為了讓模型擬合訓練數據,我們需要讓:

  4)我們的分類模型為條件概率分布P(y|x),在滿足約束條件的前提下使得模型的熵最大,即:max H(P(y|x))。

  在第4步中,條件熵為:

  同樣,我們需要將P(x)的值進行近似處理:

 

  另外,對於任意輸入樣例,它總是屬於某一個輸出類別,因而:

  現在,我們將上述問題轉變成了一個有條件的最優化問題:

 

  在支持向量機中,有過對此類問題的專門分析。首先我們需要將上述問題轉化成無條件的最優化問題,這時需要用Lagrange定理,但是上述問題並不滿足Lagrange定理,於是我們先將最大化問題轉化成最小化問題:

  引進Lagrange乘子,得到:

  於是得到最優化的原始問題為:

  為了便於計算,我們將最小最大化問題轉化成它的對偶問題:即最大最小化問題。要進行這種轉化需要滿足為凸函數,以及為仿射函數。於是我們可以將原始問題等價轉化成它的對偶問題來進行求解:

  現在我們先考慮對L的最小化問題,想法很簡單,先求導:

 

  令導數為0,即:

  另外:

  所以有:

  即:

(式2.1)

  另外,還有約束條件:

  代入上式得:

  稱為規范化因子。

  將上式代入(式2.1)得到對偶問題的極小解為:

(式2.2)

  這就是我們所需要的最大熵模型下的概率估計,實際上,對偶問題的極大化等價於最大熵模型的極大似然估計。至此,我們已經得到了最大熵模型的目標估計,而模型中的最優參數則是對偶問題最大時的參數。

/*******************分割線

  現在我們開始求對偶函數最大時參數的值,首先將看成一個關於的函數,設

  於是有:

  根據(式2.2),所以:

  所以:

  現在我們需要:

  上式並沒有一個顯式的解析解,因此需要借助於數值的方法。由於 是一個光滑的凸函數,所以可以求解的方法很多。可以使用的方法有:

  1)通用迭代尺度法(GIS: Generalized Iterative Scaling)。

  2)改進的迭代尺度法(IIS: Improved Iterative Scaling)。

  3)梯度下降算法

  4)擬牛頓法(牛頓法)

  其中,前兩個方法是專門為最大熵模型而設計的,后兩種方法為通用的算法。

  此處對優化方法暫不介紹,下次專門進行討論!

 

總結

  此文有較多的公式化簡過程,看起來很復雜,實際上是紙老虎。總的來說,最大熵模型是個相對簡單的算法,簡單來說,它主要就是約束條件+最大化條件熵。其中約束條件主要是提取訓練集的特征,得到每個特征的特征函數,然后將特征函數關於經驗聯合分布的期望近似為特征函數關於模型的聯合分布期望,這樣對每個特征函數都到一個約束條件,另外,還要附加上,然后在滿足約束條件的基礎上求最大化條件熵max H(P(y|x))。

 

 

 

參考文獻:

[1] 李航,統計學習方法。

[2] peghoty, http://blog.csdn.net/itplus/article/details/26550201

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM