最大熵模型與邏輯斯蒂迴歸模型一樣,屬於對數線性模型,因爲推導出的最大熵模型公式滿足輸入與輸出的對數函數成線性關係,如下:
其中,
1、最大熵原理
將最大熵原理使用到具體的應用模型中,就得到了最大熵模型。所以,要了解最大熵模型,首先需要知道最大熵原理。
最大熵原理要求在概率分佈中,將使得熵最大的概率分佈作爲最好的選擇。所謂熵,可以理解爲系統的不確定程度。熵越大,系統的不確定程度就越高。比如在擲骰子游戲中,在條件未知的情況下,因爲無法知道具體是哪一面,其不確定程度程度最高,即熵最大;當加入可能是兩點或四點條件後,其不確定性就降低了,因爲只有兩個選擇可以選,這時的熵也就變小了。
下面給出熵的定義:
假設離散隨機變量X的概率分佈是P(X),則定義熵H(P)爲:
由熵的定義可知:
式中|X|表示變量X的取值個數。不等式左側顯然成立,右側證明如下:
由不等式log x≤x-1,上式可變爲:
不等式成立當且僅當:
即:
此時,X滿足均勻分佈,也就是說當X服從均勻分佈時,熵最大。
直觀地,最大熵原理要求選擇的概率模型必須滿足已有事實,而對未知事實不做任何主觀假設,也即認爲未知事實是等可能的。這個等可能性在最大熵原理中用熵的最大化來度量,用一個例子來說明如下:
假設隨機變量X有5個取值{
首先,概率值應滿足約束條件:
滿足約束條件的概率值有無窮多組,我們在不知道其他信息的情況下,認爲其等可能地其服從均勻分佈,即:
這個時候得出的概率分佈的熵也是最大的。
若我們根據一些先驗知識得知,
那麼,根據 最大熵原理,首先我們要滿足所有約束條件:
在滿足以上條件情況下,認爲未知情況服從均勻分佈,即:
這就是用最大熵原理來得出概率分佈的方法。
2、最大熵模型
最大熵模型是對最大熵原理的應用。
假設分類模型爲條件概率分佈P(Y|X),X表示輸入,Y表示輸出。在給定一組訓練數據
的情況下,學習目標是用最大熵原理選擇最好的分類模型。
在給定訓練數據集的情況下,聯合概率分佈P(X,Y)和邊緣概率分佈P(X)的經驗分佈都可以確定:
其中
根據最大熵原理,首先要考慮滿足已有約束條件。這裏我們引入特徵函數f(x,y)來表示對模型條件的約束,如下:
則,
有了特徵函數,我們給出特徵函數
特徵函數
在給定數據集足夠大的情況下,這兩個期望值應該是相等的,即:
該等式將概率模型需要滿足的約束條件形式化表示。
在滿足約束條件的情況下,我們給出最大熵模型的定義:
假設滿足所有約束條件的模型集合爲:
定義在條件概率分佈P(Y|X)上的條件熵爲
稱滿足模型集合C中條件熵最大的模型爲最大熵模型。
3、模型的學習
與支持向量機一樣,最大熵模型也是一個有約束的目標最優問題。
對於給定訓練數據集
將其寫成等價的求最小值問題:
根據前面介紹的支持向量機模型經驗,引入拉格朗日函數,將約束目標問題轉換爲無約束目標優化問題,並求其對偶問題,解得:
其中,
即得出了開篇我們提到的最大熵模型公式,可以看出其是一個對數線性模型。
4、最大熵模型的學習算法
支持向量機的學習算法爲最小序列最優化(SEO)算法,最大熵模型因爲可以歸結爲以似然函數爲目標函數的最優化問題,一些求解最優化的方法都可以拿來使用,如改進的迭代尺度算法(IIS)、牛頓法、擬牛頓法等,希望在接下來繼續介紹這些學習算法。