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