- 最大熵模型預備知識
信息量:一個事件發生的概率越小,信息量越大,所以信息量應該為概率的減函數,對於相互獨立的兩個事有p(xy)=p(x)p(y),對於這兩個事件信息量應滿足h(xy)=h(x)+h(y),那么信息量應為對數函數:
對於一個隨機變量可以以不同的概率發生,那么通過信息量期望的方式衡量,即信息熵。
信息熵:一條信息(屬性、特征)的信息量大小和它的不確定性程度有直接的關系,不確定性越大,信息量越大。以e為底單位為nat。公式為:
每個xi表示一種特征。
H(X)在每個p(xi) = 1/N是最大,N為信息的個數。在概率為1/N時信息是最不確定的,所以H(X)越大,信息熵越不確定。
注意:均勻分布的信息熵:
N點離散均勻分布:
連續均勻分布:
聯合熵:兩個隨機變量的X與Y的聯合分布形成的熵稱為聯合熵,記為H(X, Y)。
條件熵:X給定的條件下,Y的信息熵,即H (Y | X )。公式為:
條件熵等於(X, Y)的聯合熵,減去X熵,即:
相對熵:又稱互熵、交叉熵、交叉信息、Kullback熵、Kullback-Leibel散度。設p(x), q(x)是X中的兩個概率分布,p對q的相對熵可以表示為:
相對熵可以度量兩個隨機變量的"距離"。
互信息:兩個隨機變量X,Y的聯合分布與獨立分布乘積的相對熵,即:
幾種熵之間的關系:
- 最大熵直觀理解:在沒有任何前提條件的時候,我們猜測骰子每個面出現的概率為1/6;當骰子的重心發生變化時,如果我們已知出現1點的概率為1/3,那么我們會猜測剩下的各面出現的概率為(1-1/3)/5=2/15(在沒有任何先驗知識的前提下,我們推測為均勻分布)。這個過程實際就是在運用最大熵原理。
最大熵原理指出:對一個隨機事件的概率分布進行預測時,預測應當滿足全部已知的約束,而對未知的情況不要做任何主觀假設。在這種情況下,概率分布最均勻,預測的風險最小,因此得到的概率分布的熵是最大。
最大熵目標:運用觀測到的實驗樣本如何對實驗數據分布做出合理的推斷。
最大熵模型是建立一個概率判別模型,該模型的任務是對於給定的 X=x以條件概率分布 P(Y|X=x) 預測 Y的取值。
- 最大熵:
無條件最大熵:若隨機變量退化為定值,熵最小為0,若隨機變量為均勻分布,那么熵最大,所以熵滿足:
有條件最大熵:最大熵模型
如果用歐式空間的單純形(simplex)來描述隨機變量的話,那么可以將隨機變量A,B,C映射到等邊三角形的三個頂點上(等邊三角形的內部任意一點到三條邊的距離之和相等,等於三角形的高),如(a)所示,這里定義三角形中任意一點到三條邊的距離之和為 1,任給一點p,比如P(A) 等於p到邊 BC 的距離。圖(b)中,P(A)=1, P(B)=P(C)=0。圖(c)中,P(A)=P(B)=P(C)=1/3。
上圖(a)中沒有任何概率約束條件,所以所有的P(Y|X)都是允許的,整個概率空間的取值可以是 三角形(simplex)中的任意一點,只需找到滿足最大熵條件的即可。當引入約束時,模型被限制在約束上,如下圖所示
(1) 圖(a)中,增加了(線性)約束C1,P(Y|X)只能落在定義C1的那條線段上;
(2) 圖(b)中,在圖(a)的基礎上增加了線性約束C2,且C1∩C2≠Φ,所以P(Y|X)必須同時落在C1與C2上,所以只能落在C1與C2的交點上;
(3) 圖(c)中,在圖(a)的基礎上增加了線性約束C2,但C1∩C2=Φ,此時,沒有同時滿足C1與C2的P(Y|X)。在最大熵模型中,由於約束從訓練數據中取得,所以不會出現不一致。即不會出現(c) 的情況。
- 最大熵約束條件
對於一般訓練集:
按照最大熵目標,應先找到最大熵對應的全部約束條件。約束條件從何而來?實際上就是從訓練集中抽取部分樣本,要求這些樣本在訓練集上的經驗分布的期望等於它們在模型中P(X, Y)的期望相同。
從訓練集中抽取部分樣本,要求樣本服從聯合經驗分布P̃(X, Y)以及邊緣經驗分布P̃(X)。可以表示為:
其中,v(X=x, Y=y)表示訓練集中x與y出現的頻數,v(X=x)表示輸入x出現的頻數。
用特征函數f(x, y)表示訓練數據中樣本輸入x與輸出y之間是否為對應關系,其定義為:
f(x, y)為二值函數。
特征函數f(x, y)關於聯合經驗分布P̃(X, Y)在樣本上的期望可以表示為:
特征函數f(x, y)關於模型P(Y|X=x)的期望可以表示為:
上式中P̃(x)應為邊緣分布P(x),而實際上,P(x)無法計算得到所以用P̃(x)代替。P(x|y)為所求的模型。
根據約束條件,兩個期望相等,即:
- 最大熵模型
假設滿足所有約束條件的概率模型的集合為:
其中,i表示約束條件的個數。P為分布的集合。定義在條件概率分布P(X|Y)上的條件熵為:
集合C中條件熵H(P)最大的概率模型稱為最大熵模型。
最大熵模型的學習過程就是求解最大熵模型的過程,最大熵模型的學習過程等價於約束最優化問題,模型可以等價於:
按照最優化問題習慣,最大值問題可以等價的求最小值,所以有:
針對約束條件,引入拉格朗日乘子w0, w1, w2,…,wn,定義拉格朗日函數L(P, w):
拉格朗日函數 L(P, w) 的約束是要滿足的 ,如果不滿足約束的話,只需另 wi →+∞,則可得 L(P, w)→+∞,因為需要得到極小值,所以約束必須要滿足。即:
所以原問題轉換為:
滿足KKT條件,所以可以轉換到對偶問題求解,即:
首先將L(P, w)對P(y|x)求導等於0,即
由於一階導數等於0,而P̃(x)>0,可以解Pw(X|Y),
由於,得:
Zw(x)為規范化因子。
Pw(y|x)為最大熵模型,回帶入L(P, w),現在內部的極小化求解得到關於 w的函數,現在求其對偶問題的外部極大化即可,即:
得到w*帶入就得到了要求解得最大熵模型。
得到了需要極大化的式子:
最大似然估計
訓練數據得經驗概率分布P̃(X, Y),條件概率分布P(Y|X)的對數似然函數可以表示為:
將Pw(y|x)帶入有:
顯而易見,拉格朗日對偶得到的結果與極大似然得到的結果時等價的,現在只需極大化似然函數即可,順帶優化目標中可以加入正則項,這是一個凸優化問題,一般的梯度法、牛頓法都可解之,專門的算法有GIS IIS 算法。
討論:只給定均值與方差的前提下,最大熵的分布形式?即:
很明顯是最值問題,采用Lagrange乘子,有:
一階導數為0,即:
接下來討論幾種分布的lnp(x)的形式:
(1) 正態分布:
(2) Gamma分布:
(3) 均勻分布:
(4) 指數分布:
所以證據上述分布的特點,已知均值與方差的最大熵分布應該滿足正態分布。
談最大熵模型與最大似然估計自己的理解(此理解非常"不負責任"):最大似然估計是在樣本分布的未知的情況下認為樣本的乘積最大。最大熵模型是未知部分不做假設。最大熵模型有時可以作為目標函數。
參考:
http://www.cnblogs.com/ooon/p/5677098.html
《統計學習方法》
鄒博課件
未經許可不得轉載!