1. 程式人生 > >EM演算法與高斯混合模型

EM演算法與高斯混合模型

 

 

 

由k個高斯模型加權組成,α是各高斯分佈的權重,Θ是引數。對GMM模型的引數估計,就要用EM演算法。更一般的講,EM演算法適用於帶有隱變數的概率模型的估計,即不同的高斯分佈所對應的類別變數。

 

為何不能使用極大似然估計,如果直接使用極大似然估計,沒有考慮資料中的隱變數,很明顯是不合適的。

 

那我們將隱變數考慮進去,最大化似然函式:

 

 

對這個似然函式通過求導的方式明顯是很困難的,我們的策略是建立l(θ)的下界,並且求該下界的最大值,重複這個過程,知道收斂到區域性最大值。

 

我們引入一個Q(z),即隱變數z的分佈函式

 

 

上述不等式成立的條件是使用了Jensen不等式,log是凹函式,滿足E(f(x))<= f(E(x)),當且僅當X是常數時,等式成立。

 

接下來我們我們直接優化最後那個等式是否就可以了呢?答案是不行的,我們必須保證下界是緊的,即等號成立。等式成立的條件是隨機變數是常數,也就是

 

又因為Q(z)是z的分佈函式,所以:

 

 

可以求出C值的表示式:代入前面第二個式子,得到:

 

 

得到Q(z)之後,我們可以將Q(z)代入含θ的似然函式,求出似然函式的下界(即最大化似然函式),如此反覆迭代計算,便可以得到似然函式的區域性極大值,那麼似然函式最大值對應的θ值就是我們要估計的引數值了。

 

EM演算法:

首先,初始化引數θ

(1)E-Step:根據引數θ計算每個樣本屬於zi的概率,即這個身高來自四川或東北的概率,這個概率就是Q

(2)M-Step:根據計算得到的Q,求出含有θ的似然函式的下界並最大化它,得到新的引數θ

 

 

EM演算法求解GMM問題

隨機挑選10000名志願者,測量他們的身高,樣本中有男性和女性,身高服從高斯分佈,分別為N(μ1, σ1), N(μ2, σ2)

假設取各個高斯分佈的概率是φ,如何估計μ,σ,φ呢?

μ,σ,φ是EM演算法中的θ

 

E-step

 

 

M-step

將Q(z),μ,σ,φ入似然函式,得到:

 

 

此時,可以使用Jensen不等式,求最緊的下界,反覆迭代得到引數值,但是如果直接求導可以得到引數值,無疑是是更加簡單的。對於GMM,我們可以直接求導,不需要使用Jensen不等式反覆迭代:

對均值求偏導:

 

 

另上式等於0,解得均值為:

 

 

 

然後對方差求偏導,並使得等式為0,得到方差為:

 

 

多項分佈引數φ的求解:

將似然函式的常數項均刪除,得到:

 

 

由於多項式分佈的概率和為1,建立拉格朗日方程:

 

 

對φ求偏導,使等式為0,得到:

 

 

 

至此,引數μ,σ,φ均已經求出來了