最大熵模型

2021-09-11 13:43:24 字數 1286 閱讀 3609

生活中我們經常聽到人們說「不要把雞蛋放到乙個籃子裡」,這樣可以降低風險。深究一下,這是為什麼呢?其實,這裡邊包含了所謂的最大熵原理(the maximum entropy principle)。

在已知約束的情況下,我們建模時應該滿足這些約束,並且對其他條件作最複雜最一般的假設。這樣會得出更貼近於真實的結果。一般來說,這種假設就是最大熵原理。因為熵最大資訊量最大,不確定性最大。

最大熵原理認為,學習概率模型時,在所有可能的概率分布模型中,熵最大的模型,為最好的模型。

將最大熵原理應用於分類問題,我們便得到了最大熵模型。我們的目標便是:利用最大熵原理選擇乙個最好的分類模型,即對於任意給定的輸入x∈x,可以以概率p(y|x)輸出y∈y。

我們對於實際的特徵通常會採用特徵函式的方法將其量化成數,這樣我們才可以進行計算。我們通常採用二值定義的方式:

這樣我們便可以使用這個函式值來計算我們的經驗分布

我們首先要明確一點,我們的最大熵模型是未知目標分布的。也就是說我們對於約束條件以外的分布並不可知,所以我們才用最大熵來假設等概同分布。

那第乙個條件概率分布就已經是未知了,那還如何去計算後續的熵呢?要知道熵的計算公式都離不開概率。這時候我們就引入乙個經驗分布,就是將已經觀察的資料作為經驗,來模擬一下真實分布。感覺和我們計算概率的方法很接近,但是從嚴格的數學意義上來說,這並不能代表真實資料的分布情況,哪怕樣本足夠多。

有特徵函式作為資料的輸入源頭,我們計算經驗分布:f(x,y) = 1的個數/總個數。,原計算公式為:

如果我們選擇模型能夠獲取真實訓練集中的資訊,那麼我們便可以假設這兩個模型的期望值相等。這樣便有:

其中這兩個計算公式為:

當然這只是乙個預設的約束條件,也就是最終選擇的目標模型一定需要滿足此條約束。但是不表示僅僅是這一條約束,我們對待實際問題需要區別處理。比如說我們我們已知骰子的1和6朝上概率為3/20,(假設骰子不均勻)那麼這就是乙個額外的條件約束。

這是我們所要優化的目標,熵。我們的目的就是要將模型的熵提高到最大,來將此模型作為我們最終使用的模型。 假設滿足所有約束條件的模型集合為:

我們將定義在概率分布p(y|x)上的條件熵定義為:

對條件熵不太熟悉的朋友可以看維基百科中對於條件熵的描述。

最大熵模型的學習過程就是乙個求解最大熵模型的過程。我們將此過程也可以簡化稱為一種約束最優化的過程,等價約束最優化問題如下:

我們首先按照一般習慣,將此求最大問題轉化為求最小問題。對原式取負就可以。 轉化之後的公式如下:

然後就開始求解此約束條件的最優化問題:

最大熵模型

最大熵模型學習中的對偶函式極大化等價於最大熵模型的極大使然估計。這樣最大熵模型的學習問題就轉換為具體求解對數似然函式極大化或對偶函式極大化的問題。邏輯斯蒂回歸模型 最大熵模型學習歸結為以似然函式為目標函式的最優化問題。iis試圖一次只優化其中乙個變數theai,而固定其他變數。這裡b thea w ...

最大熵模型

pw y x 1z w x exp i 1nw ifi x,y 其中,zw x yexp i 1n wifi x,y 最大熵模型的學習等價於約束最優化問題 minp c h p x yp x p y x logp y x s.t.ep fi ep fi 0,i 1,2 n yp y x 1 約束最優...

最大熵模型

學習概率模型時,在所有的可能概率模型 分布 中,熵最大的模型是最好的模型。通常根據約束條件來確定概率模型的集合,所以也可理解為 在滿足約束條件的模型集合中選取熵最大的模型。假設離散隨機變數 x 的概率分布是p x 則其熵是 h p xp x lo gp x 熵滿足不等式 0 h p lo g x 其...