最大熵原理是概率模型學習的一個準則,最大熵原理認爲,學習概率模型時,在所有可能的概率模型(分佈)中,熵最大的模型是最好的模型。最大熵原理也可以表述爲在滿足約束條件的模型集合中選取熵最大的模型。
假設隨機變量X的概率分佈是P(X),則其熵是
熵的性質:
|X|是X的取值個數
當且僅當X的分佈是均勻分佈時右邊的等號成立,也就是說,當X服從均勻分佈時,熵最大。
直觀地,最大熵原理認爲要選擇的概率模型首先必須滿足已有的事實,即約束條件,在沒有更多信息的情況下,那些不確定的部分都是“等可能的”,最大熵原理通過熵的最大化來表示等可能性,“等可能”不容易操作,而熵則是一個可優化的數值指標。
2.1.最大熵模型的定義
給定一個訓練數據集:
在訓練數據集上,可以計算聯合分佈P(X,Y)的經驗分佈和邊緣分佈P(X)的經驗分佈,公式如下:
其中,v(X=x,Y=y)表示訓練數據中樣本(x,y)出現的頻數,v(X=x)表示訓練數據中輸入x出現的頻數,N表示訓練樣本容量。
用特徵函數(feature function)f(x,y)描述輸入x和輸出y之間的某一個事實,其定義是:
特徵函數f(x,y)關於經驗分佈的期望,用表示,公式如下:
特徵函數f(x,y)關於模型P(X|Y)與經驗分佈的期望,用表示,公式如下:
如果模型能夠獲取訓練數據中的信息,就可以假設這兩個期望相等,即:
假設有n個特徵函數,i=1,2,3…,n,那麼就有n個約束條件,假設滿足所有約束條件的模型集合爲:
定義在條件概率分佈P(X|Y)上的條件熵爲:
則模型集合C中條件熵H§最大的模型稱爲最大熵模型。
2.2.最大熵模型的學習
最大熵模型的學習過程就是求解最大熵模型的過程,最大熵模型的學習可以形式化爲約束最優化問題,公式如下:
按照最優化問題的習慣,將求最大值問題改爲求最小值問題:
上述最優化問題的求解過程。
將約束最優化的原始問題轉換爲無約束最優化的對偶問題。
引入拉格朗日乘子,,…,,定義拉格朗日函數
求取得最大時的參數,即:
令偏導數等於0,在的情況下,解得:
由於,得
稱爲規範化因子;
:特徵函數;
:特徵的權重
模型就是最大熵模型,w是最大熵模型中的參數向量
接下來,求對偶問題外部的極大化問題:
將其解記爲,即
應用最優化算法求對偶函數的極大化,得到,用來表示,這裏是學習到的最優模型(最大熵模型),也就是說,最大熵模型的學習歸結爲對偶函數的極大化。
2.2.1.例子
解釋隨機變量X有5個取值{A,B,C,D,E},用,,,,表示,要估計取各個值的概率P(A),P(B),P©,P(D),P(E)。
解:
這些概率值滿足一下約束條件:
P(A)+P(B)=3/10
P(A)+P(B)+P©+P(D)+P(E)=1
最大熵模型學習的最優化問題是:
引入拉格朗日乘子,,定義拉格朗日函數:
根據拉格朗日對偶性,可以通過求解對偶最優化問題得到原始問題最優化問題的解,即:
首先求解關於P的極小化,爲此,固定,,求偏導數:
令各偏導數等於0,解得
再求解關於w的極大化問題:
分別求對,的偏導數並令其爲0,得到
於是得到所要求的概率分佈爲:
2.2.2.極大似然估計
最大熵模型是由以下公式表示的條件概率分佈:
證明對偶函數的極大化等價於最大熵模型的極大似然估計。