1. 程式人生 > >最大熵模型及其演算法

最大熵模型及其演算法

最大熵模型表面意義上來講是使資訊熵或者條件熵最大,一般來講最大熵模型是使條件熵最大的模型。

最大熵模型的一些特點:

1、最大熵模型的輸入輸出為X,Y,求解時需要代入p(x,y)的聯合概率,即p(x,y)*log(y|x)求和的模型,

這個模型裡,我們需要求解的是p(y|x)的條件概率,但這裡還有p(x,y)的概率,這裡為了能夠有效的計算模型,

這裡的p(x,y)用p'(x)*p(y|x)來代替,其中p'(x)是訓練資料集中的先驗概率,即用p'(x)來代替p(x)。

2、這裡的最大熵模型一般指帶特徵函式約束的模型,特徵函式 f(x,y) 一般是一個二值函式,輸入x,y,輸出1或者0,

為了能夠利用好這些特徵函式,我們需要將其轉換成可計算的約束條件,這裡轉換成的約束條件為:特徵函式在

訓練資料集上的期望等於在模型上的期望。這樣設計的約束條件真是太完美了。當然還有一個約束條件是:

p(y|x)在y上求和為1。

3、模型得到的結果為p(y|x),即給定一個輸入x,分別得到不同的y對應的條件概率,根據概率的大小可以將x劃分

到不同的y中,因此可以用作分類模型使用。這裡特徵函式的設計是根據訓練資料集來設計的。

最大熵模型的求解演算法常用的演算法為迭代尺度演算法(IID)

關於最大熵模型的推導可以參考:

1、李航的《統計學習方法》

2、部落格:http://blog.csdn.net/itplus/article/details/26550201

————————————————————————————————————————————————————

線性鏈條件隨機場的模型及求解與最大熵模型很相似,二者都是用一些特徵函式作為約束條件,求解方法也類似,

均可用迭代尺度演算法來求解。二者最大區別在於迭代過程中根據引數求解P(y|x)的方法有所不同,線性鏈條件隨機場

根據前向後向演算法來求解(其概率不僅包括P(Yi|Xj),還包括P(Yi-1,Yi|Xj)),最大熵模型僅包括P(Yi|Xj)。

關於線性鏈條件隨機場的具體推導可以參考《統計學習方法》