1. 程式人生 > >極大似然估計與EM演算法

極大似然估計與EM演算法

極大似然估計

1.用途

在已知樣本的情況下,估計滿足樣本分佈的引數。

2.例子

  為了調查一個學校中男生的身高分佈,我們隨機抽取了100個男生作為樣本X = {x1,x2,…,x100};已知男生身高分佈滿足高斯分佈,求高斯分佈的引數均值和標準差。
   極大似然的思想就是出現的就是最大的,可以這樣想,那麼多學生我們隨機抽取100個,剛好就抽到我們樣本中那100個學生,這說明了這100個學生是所有組合中出現概率最大的。也就是說這100個學生身高對應高斯分佈中的概率密度值的乘積應該是最大的。我們把身高x對應的概率密度值記為x~p(x;θ),θ代表高斯分佈。


L(θ) = p(x1;θ)*…p(x100;θ)

  上式叫做似然函式,在已知樣本的情況下就要保證L(θ)最大。這個式子相對於θ求導不好求,因此兩端去取對數得

l(θ) = lnp(x1;θ)+…+lnp(x100;θ);

  接下來就是求解l(θ)的最大值,這裡θ是有兩個引數的,所以要分別求偏導,令導數為零。如果有n個引數也只能一個個求偏導。 令偏導為零,然後求解最大值。

3.求解步驟

(1)寫出似然函式
(2)兩邊取對數
(3)對新的似然函式求導
(4)令導數為零,得引數解

EM演算法

1.凸函式與凹函式

  凸函式:當f函式的二次導數大於等於零時,那麼稱f為凸函式;當其二次導大於零不等於零時,成為嚴格的凸函式。
  凹函式:f是(嚴格)凹函式當且僅當-f為(嚴格)凸函式。

2.Jerson不等式

  當f為凸函式時,E[f(X)]>=f(E[X]);當f為嚴格的凸函式時,當X為常數時,等號成立。當f為凹函式時,不等號相反。如下圖:從圖中可知,f(b)>f(E(X))


l(θ) = lnp(x1;θ)+...+lnp(x100;θ);

3.EM演算法(期望最大化演算法)

   為了統計學校男女生的身高分佈,我們隨機抽樣了200個身高樣例X = {x1,x2,…,x200},但是不知道哪個是男生哪個是女生。如果知道男女生類別後就可以用極大似然估計了。所以這個地方就多了一個隱變數z,z服從多項式分佈。對於這個地方只有男女兩個類,我們就簡單認為服從伯努利分佈。




   針對我們的例子來講,i=0~200;對應不同的Zi,高斯分佈引數θ也不一樣。假設Zi已經知道,那麼對於這200個樣本同樣按照極大似然的思路,求概率密度乘積的最大值。關鍵就是Zi是未知量,那我們只能以不等式的形式來一步步逼近真實結果了。於是,Jerson不等式就發揮作用了,為了使不等式成立,就要保證不等號左邊那一部分的對數函式是凹函式,這個如何保證呢?對數函式log(x)肯定是凹函式啦。
=1,之所以加入Qi主要是為了湊出平均值然後利用Jerson不等式。就相當於E(x)。但是這個地方的Qi是根據什麼得來的,怎麼算呢?前面說過了,對於Jerson不等式在凹函式的情況下,如果想取等號,那就需要變數為常數,也即=c;由於分母的和為1,所以分子的和為c,為什麼呢?舉個栗子,(1+2)/(2+4) = 1/2 = 2/4。所以這個地方分子的和除以分母的和也即Qi的和結果還是c;所以由=c可以推匯出



   這個就是θ固定時,Qi的求解公式。 然後依據先驗知識,初始化θ,這個時候中只有Zi一個變量了,優化Zi使這個式子的結果最大也即先固定男生和女生的θ,然後對樣本進行男女分類使得200個樣本的概率密度乘積最大。分完後再分別以得到的男女類別裡面的樣本求取最大似然對應的θ’,然後再固定θ’,優化Zi,反覆迭代直到收斂到最優。
   總結下EM演算法的流程:
先初始化引數θ
1.E-STEP:根據初始化引數θ或者上一步迭代出來的引數,依據後驗概率求取隱含變數的均值Qi(Zi),拉昇下界。此時,可以化簡為 *logc
2.M-STEP:固定上一部求出來的Zi,再以求似然函式最大值為目標,更新θ。接著跳到E-STEP。
細心的讀者會問,你怎麼知道最終肯定會收斂的,這個就是數學上的證明了。想要詳細瞭解,可以去網上接著搜資源繼續深挖。
可以參考高斯混合模型,一個EM演算法思想的應用。