1. 前言
最大熵模型(maximum entropy model, MaxEnt)也是很典型的分類算法了,它和邏輯迴歸相似,都是屬於對數線性分類模型。在損失函數優化的過程當中,使用了和支持向量機相似的凸優化技術。而對熵的使用,讓咱們想起了決策樹算法中的ID3和C4.5算法。理解了最大熵模型,對邏輯迴歸,支持向量機以及決策樹算法都會加深理解。本文就對最大熵模型的原理作一個小結。算法
2. 信息論回顧
2.1 信息熵
熵度量了事物的不肯定性,越不肯定的事物,它的熵就越大。在沒有外部環境的做用下,事物老是向着熵增大的方向發展,因此熵越大,可能性也越大。 $$ H(X)=-\sum_{i=1}^np_{(i)}logp_{(i)} $$函數
2.2 條件熵
X肯定時,Y的不肯定性度量。 在X發生是前提下,Y發生新帶來的熵。 $$ H(Y|X)=H(X,Y)-H(X)=-\sum_{x,y}p(x,y)logp(y|x) $$學習
2.3 聯合熵
(X,Y)在一塊兒時的不肯定性度量 $$ H(X,Y)=-\sum_{x,y}p(x,y)logp(x,y) $$優化
2.4 互信息(信息增益)
表示兩個變量X與Y是否有關係,以及關係的強弱。 $$ I(X,Y)=∫_X∫_YP(X,Y)log\frac{P(X,Y)}{P(X)P(Y)} $$ $$ I(X,Y)=H(Y)-H(Y|X) $$ $$ I(X,Y)=H(Y)+H(X)-H(X,Y) $$ 能夠看出,I(X,Y)能夠解釋爲由X引入而使Y的不肯定度減少的量,這個減少的量爲H(Y|X)。因此,若是X,Y關係越密切,I(X,Y)就越大,X,Y徹底不相關,I(X,Y)爲0,因此互信息越大,表明這個特徵的分類效果越好。spa
3. 最大熵模型的定義
最大熵模型假設分類模型是一個條件機率分佈$P(Y|X)$,X爲特徵,$Y$爲輸出。ci
給定一個訓練集$(x_1,y_1),(x_2,y_2),...,(x_m,y_m)$,其中x爲n維特徵向量,y爲類別輸出。咱們的目標就是用最大熵模型選擇一個最好的分類類型。it
在給定訓練集的狀況下,咱們能夠獲得整體聯合分佈$P(X,Y)$的經驗分佈$P'(X,Y)$和邊緣分佈$P(X)$的經驗分佈$P'(X)$。$P'(X,Y)$即爲訓練集中$X,Y$同時出現的次數除以樣本總數m,$P'(X)$即爲訓練集中$X$出現的次數除以樣本總數m。io
用特徵函數$f(x,y)$描述輸入x和輸出y之間的關係。定義爲:class
$$ f(x,y)=\begin{cases} 1, & x,y;has;some;relation\ 0, & others \end{cases} $$ 能夠認爲只要出如今訓練集中出現的$(x_i,y_i)$,其$f(x_i,y_i)=1$. 同一個訓練樣本能夠有多個約束特徵函數。變量
特徵函數$f(x,y)$關於經驗分佈$P'(X,Y)$的指望值,用$E_P(f)$表示爲:
$$ E_{P'}(f) = \sum\limits_{x,y}{P'}(x,y)f(x,y) $$ 特徵函數$f(x,y)$關於條件分佈$P(Y|X)$和經驗分佈$P'(X)$的指望值,用$E_P(f)$表示爲: $$ E_{P}(f) = \sum\limits_{x,y}{P'}(x)P(y|x)f(x,y) $$ 若是模型能夠從訓練集中學習,咱們就能夠假設這兩個指望相等。即:
$$ E_{{P'}}(f) = E_{P}(f) $$ 上式就是最大熵模型學習的約束條件,假如咱們有M個特徵函數$f_i(x,y)(i=1,2...,M)$就有$M$~個約束條件。能夠理解爲咱們若是訓練集裏有m個樣本,就有和這m個樣本對應的M個約束條件。
這樣咱們就獲得了最大熵模型的定義以下:
假設知足全部約束條件的模型集合爲:
$$ E_{{P'}}(f_i) = E_{P}(f_i) (i=1,2,...M) $$ 定義在條件機率分佈$P(Y|X)$上的條件熵爲:
$$ H(P) = -\sum\limits_{x,y}{P'}(x)P(y|x)logP(y|x) $$ 咱們的目標是獲得使$H(P)$最大的時候對應的$P(y|x)$,這裏能夠對$H(P)$加了個負號求極小值,這樣作的目的是爲了使$-H(P)$爲凸函數,方便使用凸優化的方法來求極值。
4. 最大熵模型小結
最大熵模型在分類方法裏算是比較優的模型,可是因爲它的約束函數的數目通常來講會隨着樣本量的增大而增大,致使樣本量很大的時候,對偶函數優化求解的迭代過程很是慢,scikit-learn甚至都沒有最大熵模型對應的類庫。可是理解它仍然頗有意義,尤爲是它和不少分類方法都有千絲萬縷的聯繫。
慣例,咱們總結下最大熵模型做爲分類方法的優缺點:
最大熵模型的優勢有:
- 最大熵統計模型得到的是全部知足約束條件的模型中信息熵極大的模型,做爲經典的分類模型時準確率較高。
- 能夠靈活地設置約束條件,經過約束條件的多少能夠調節模型對未知數據的適應度和對已知數據的擬合程度
最大熵模型的缺點有:
- 因爲約束函數數量和樣本數目有關係,致使迭代過程計算量巨大,實際應用比較難。