十、最大熵模型与EM算法
- 一、最大熵模型- 1、熵- 聯(lián)合熵和條件熵
- 相對熵
- 交叉熵
- 互信息
- 總結
 
- 2、最大熵模型
 
- 1、熵
- 二、EM算法(期望最大化算法)
- 三、GMM
 
- 一、最大熵模型
一、最大熵模型
lnx<=x?1lnx<=x?1
證明:f(x)=x?1?lnx,x>0f(x)=x?1?lnx,x>0,求導是凸函數(shù),在x=1處取得極值
 
  
  
 
1、熵
熵是信息的度量,與信息量成反比。
信息量:h(xi)=log21p(xi)h(xi)=log21p(xi)
事件發(fā)生的概率越高,對應的信息量越低,事件發(fā)生的概率越小,對應的信息量越大。
熵是信息量的期望:H(x)=?∑ni=1p(xi)log21p(xi)H(x)=?∑i=1np(xi)log21p(xi) 
 
 
 兩點分布的最大熵:
三點分布:
p1=p2=p3的時候,曲面的值最高(圖1)
當X滿足均勻分布時,熵最大:
聯(lián)合熵和條件熵
聯(lián)合熵:H(X,Y),表示X,Y同時發(fā)生的不確定性
H(X,Y)=?∑∑p(xi,yi)log2p(xi,yi)=H(X)+H(Y|X)H(X,Y)=?∑∑p(xi,yi)log2p(xi,yi)=H(X)+H(Y|X)
解釋:聯(lián)合熵=X發(fā)生的熵+X發(fā)生的條件下Y發(fā)生的熵
聯(lián)合熵的性質:
- 聯(lián)合熵>=變量熵中最大的
- 聯(lián)合熵<=變量熵之和
條件熵:Y發(fā)生的條件下,X發(fā)生的不確定性
相對熵
度量兩個分布之間的差異
如果用距離度量的話,兩個分布的點的個數(shù)要相等,如果不等的話,無法進行單個點距離的度量。 
 
E_px 表示期望
證明D(p||q)≥0D(p||q)≥0:利用Jenson不等式,
Jensen不等式表述如下:
- 如果f是凸函數(shù),X是隨機變量,那么E(f(X))≥f(E(x))E(f(X))≥f(E(x)) 
- 如果f是凹函數(shù),X是隨機變量,那么E(f(X))≤f(E(x))E(f(X))≤f(E(x))
交叉熵
CH(p,q)CH(p,q)
=?∑ip(xi)logq(xi)=?∑ip(xi)logq(xi) 
 =?∑ip(xi)logp(xi)+∑ip(xi)logp(xi)?∑ip(xi)logq(xi)=?∑ip(xi)logp(xi)+∑ip(xi)logp(xi)?∑ip(xi)logq(xi) 
 =H(pi)+∑ipilogpiqi=H(pi)+∑ipilogpiqi
∴CH(p||q)=H(p)+D(p||q)∴CH(p||q)=H(p)+D(p||q)
互信息
 
 (五六行添加負號)
總結
2、最大熵模型
- 承認已知事物 
- 對未知事物不做任何假設,沒有任何偏見 
示例:
假設1: 
 
假設2: 
 
利用最大熵模型:
承認已知的X,讓未知的Y的概率最大。
寫成一般的形式:
最大熵原則:
對于一個隨機事件的概率分布進行預測時,預測應當滿足全部已知的約束,而對未知的情況下不做任何主觀的假設,在這種情況下,概率分布是最均勻的,預測的風險性最小,因此得到的概率分布的熵最大。
最大熵原則就是使得未知部分的概率分布都相等,因為相等情況下不確定性最大,也就是熵最大。 
 正態(tài)分布是給定均值和方差情況下的最好的分布,熵最大的分布。
示例2:
 
 
 
 
pˉˉˉ是樣本中的概率,不加橫線的是未知的分布中的,相等的意思就是認為樣本可以代表整體的分布。pˉ是樣本中的概率,不加橫線的是未知的分布中的,相等的意思就是認為樣本可以代表整體的分布。
寫成拉格朗日函數(shù)的樣子求解:
求解:
 
 只剩lambda為未知的,求解,指數(shù)函數(shù)的解析解很難求: 
  
  
 
 
 前面是條件熵,后面是常數(shù),所以極大似然估計和最大熵模型具有相同的形式。
但是最大熵函數(shù)的目標函數(shù)好建立 
  
  
  
  
 
最大熵模型在分類方法里算是比較優(yōu)的模型,但是由于它的約束函數(shù)的數(shù)目一般來說會隨著樣本量的增大而增大,導致樣本量很大的時候,對偶函數(shù)優(yōu)化求解的迭代過程非常慢,scikit-learn甚至都沒有最大熵模型對應的類庫。但是理解它仍然很有意義,尤其是它和很多分類方法都有千絲萬縷的聯(lián)系。
最大熵模型的優(yōu)點有:
a) 最大熵統(tǒng)計模型獲得的是所有滿足約束條件的模型中信息熵極大的模型,作為經典的分類模型時準確率較高。
b) 可以靈活地設置約束條件,通過約束條件的多少可以調節(jié)模型對未知數(shù)據的適應度和對已知數(shù)據的擬合程度
最大熵模型的缺點有:
a) 由于約束函數(shù)數(shù)量和樣本數(shù)目有關系,導致迭代過程計算量巨大,實際應用比較難
二、EM算法(期望最大化算法)
我們經常會從樣本數(shù)據中,找出最可能得到該樣本的模型參數(shù),最常用的就是對數(shù)似然函數(shù)。
但是在一些情況下,得到的觀察數(shù)據含有未觀察到的隱含數(shù)據,此時的隱含數(shù)據和模型參數(shù)都變成了未知的,所以無法用極大化對數(shù)似然函數(shù)的模型來得到模型的參數(shù)。
EM算法解決含有未知觀測數(shù)據的思路是利用啟發(fā)式的迭代方法,既然我們沒法直接求得模型分布參數(shù),那么可以先猜想隱含數(shù)據(E步),接著基于觀察數(shù)據和猜想數(shù)據來極大化對數(shù)似然函數(shù)(M步),求解模型參數(shù)。
由于之前的數(shù)據是猜測的,所以得到的模型參數(shù)一般還不是我們想要的結果,不過基于當前得到的模型參數(shù),繼續(xù)猜測隱含數(shù)據,然后繼續(xù)極大化對數(shù)似然,求解我們的模型參數(shù),以此類推,不斷迭代,直到模型分布參數(shù)基本無變化,算法收斂,得到最優(yōu)參數(shù)。
kmeans無法給出屬于某類的可信度
利用極大似然估計推出EM算法:
 
 上式是先取對數(shù),再求導=0,得到0.7。
假設含有隱變量的似然函數(shù)為:
L(θ)=∏j=1NPθ(yi)=∏j=1n∑zPθ(yi|z)P(z)L(θ)=∏j=1NPθ(yi)=∏j=1n∑zPθ(yi|z)P(z)
對上式取ln:
lnL(θ)=∑j=1Nln∑zPθ(yi|z)P(z)lnL(θ)=∑j=1Nln∑zPθ(yi|z)P(z)
對數(shù)函數(shù)中有加和項,難以求得解析解,故求近似最優(yōu)解。
要求迭代至得到maxlnL(θ)maxlnL(θ),即lnL(θn+1)>lnL(θn))lnL(θn+1)>lnL(θn)),迭代若干次,就是漸漸逼近最優(yōu)解。
lnL(θ)?lnL(θn)≥Q(θ|θn)lnL(θ)?lnL(θn)≥Q(θ|θn)
Q(θ|θn)Q(θ|θn)被稱為下確界函數(shù),我們要使得lnL(θ)lnL(θ)盡可能的大,就要使得Q(θ|θn)Q(θ|θn)盡可能的大,所以我們每次求得下確界函數(shù)的極大值(求偏導=0,得到極大值),將該極大值帶入似然函數(shù),求得新的下確界函數(shù),一直迭代到||θn+1?θn||≤ξ||θn+1?θn||≤ξ,得到的參數(shù)即為最優(yōu)參數(shù)。 
 
紅色那條線就是我們的對數(shù)似然函數(shù),藍色那條是我們在當前參數(shù)下找到的對數(shù)似然的下界函數(shù),可以看到,我們找到它的局部極值那么參數(shù)更新成thetanew,此時對數(shù)似然函數(shù)的值也得到了上升,這樣重復進行下去,是不是就可以收斂到對數(shù)似然函數(shù)的一個局部極值了嘛。對的,局部極值
EM算法思想:
含有隱含項的最大似然函數(shù)難求解–>求得下邊界函數(shù)的極值->將其看做此時的函數(shù)參數(shù)–>得到新的似然函數(shù)–>再次得到新的下邊界曲線–>迭代至收斂
1 拿到所有的觀測樣本,根據先驗或者喜好先給一個參數(shù)估計。
2 根據這個參數(shù)估計和樣本計算類別分布Q,得到最貼近對數(shù)似然函數(shù)的下界函數(shù)。
3 對下界函數(shù)求極值,更新參數(shù)分布。
4 迭代計算,直至收斂。
EM算法的流程:
輸入:已知數(shù)據Y,和未知隱變量Z(隨機賦值) 
 輸出:θθ
1°:給 θθ 隨機賦初值θ0θ0 
 2°:E步,令θnθn為第n次已經求得的參數(shù),對lnP(y|z)lnP(y|z)以Pθn(z|y)Pθn(z|y)為概率求期望。
Q(θ|θn)=∑zPθn(z|y)lnP(y|z)Q(θ|θn)=∑zPθn(z|y)lnP(y|z)
3°:M步,對QQ函數(shù)求偏導,得到極大值,得到使得其獲得極大值的θθ值。 
 4°:重復2和3步,直到||θn+1?θn||≤ξ||θn+1?θn||≤ξ 
 5°:輸出最優(yōu)模型參數(shù)θθ
EM算法可以保證收斂到一個穩(wěn)定點,但是不能保證收斂到全局的極大值點,因此是局部的最優(yōu)算法。當然,如果我們的優(yōu)化目標是凸的,則EM算法可以保證收斂到全局最大值。
如果我們從算法思想的角度來思考EM算法,我們可以發(fā)現(xiàn)我們的算法里已知的是觀察數(shù)據,未知的是隱含數(shù)據和模型參數(shù),在E步,我們所做的事情是固定模型參數(shù)的值,優(yōu)化隱含數(shù)據的分布,而在M步,我們所做的事情是固定隱含數(shù)據分布,優(yōu)化模型參數(shù)的值。比較下其他的機器學習算法,其實很多算法都有類似的思想。比如SMO算法(支持向量機原理(四)SMO算法原理),坐標軸下降法(Lasso回歸算法: 坐標軸下降法與最小角回歸法小結), 都使用了類似的思想來求解問題。
三、GMM
高斯混合模型指的是多個高斯分布函數(shù)的線性組合,理論上GMM可以擬合出任意類型的分布,通常用于解決同一集合下的數(shù)據包含多個不同分布的情況,或者是同一類分布但是參數(shù)不同,或者是不同類型的分布。
GMM中,樣本的分類標簽是未知的
下圖中,明顯是兩個類別,如果沒有GMM,那么只能用一個二維高斯分布來描述圖1的數(shù)據。 
 這時候就可以使用GMM了! 
 
如圖2,數(shù)據在平面上的空間分布和圖1一樣,這時使用兩個二維高斯分布來描述圖2中的數(shù)據,分別記為N(μ1,Σ1)N(μ1,Σ1) 和N(μ2,Σ2)N(μ2,Σ2). 圖中的兩個橢圓分別是這兩個高斯分布的二倍標準差橢圓。可以看到使用兩個二維高斯分布來描述圖中的數(shù)據顯然更合理。實際上圖中的兩個聚類的中的點是通過兩個不同的正態(tài)分布隨機生成而來。如果將兩個二維高斯分布N(μ1,Σ1)N(μ1,Σ1)和N(μ2,Σ2)N(μ2,Σ2)合成一個二維的分布,那么就可以用合成后的分布來描述圖2中的所有點。最直觀的方法就是對這兩個二維高斯分布做線性組合,用線性組合后的分布來描述整個集合中的數(shù)據。這就是高斯混合模型(GMM)。 
 
GMM: 
 設有隨機變量X ,則混合高斯模型可以用下式表示: 
其中N(x|μk,Σk)N(x|μk,Σk)稱為混合模型中的第k 個分量(component)。如前面圖2中的例子,有兩個聚類,可以用兩個二維高斯分布來表示,那么分量數(shù)K=2K=2. πkπk 是混合系數(shù)(mixture coefficient),且滿足:
∑k=1Kπk=1,0≤πk≤1∑k=1Kπk=1,0≤πk≤1πkπk相當于每個分量N(x|μk,Σk)N(x|μk,Σk)的權重。
 
 
總結
以上是生活随笔為你收集整理的十、最大熵模型与EM算法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 五倍的快乐,《英雄联盟手游》克隆大作战模
- 下一篇: 基金上证指数什么意思?
