EM演算法學習筆記詳解

2021-10-03 11:16:22 字數 2828 閱讀 9403

基於李航的《統計學習方法》對em演算法學習的介紹性筆記。

一. 預備知識

在正式介紹em演算法之前,先介紹推導em演算法用到的數學基礎知識,包括凹凸函式,jensen不等式。

上凸函式:函式f(x)滿足對定義域上任意兩個數a,b都有f[(a+b)/2] ≥ [f(a)+f(b)]/2

下凸函式:函式f(x)滿足對定義域上任意兩個數a,b都有f[(a+b)/2] ≤ [f(a)+f(b)]/2

更直觀的可以看圖2.1和2.2:

可以清楚地看到圖2.1上凸函式中,f[(a+b)/2] ≥ [f(a)+f(b)]/2,而且不難發現,如果f(x)是上凸函式,那麼-f(x)是下凸函式。

當a≠b時,f[(a+b)/2] > [f(a)+f(b)]/2成立,那麼稱f(x)為嚴格的上凸函式,等號成立的條件當且僅當a=b,下凸函式與其類似。

jensen不等式

有了上述凸函式的定義後,我們就能很清楚的jensen不等式的含義,它的定義如下:

如果f是上凸函式,x是隨機變數,那麼f(e[x]) ≥ e[f(x)]

特別地,如果f是嚴格上凸函式,那麼e[f(x)] = f(e[x])當且僅當p(x=e[x]),也就是說x是常量。

那麼很明顯 log x 函式是上凸函式,可以利用這個性質。
有了上述的數學基礎知識後,我們就可以看具體的em演算法了。

二.em演算法詳解

三.em演算法介紹

1.模型說明

考慮乙個引數估計問題,現有共n個訓練樣本,需有多個引數θ去擬合資料,那麼這個log似然函式是:

可能因為θ中多個引數的某種關係(如上述例子中以及高斯混合模型中的3類引數),導致上面的log似然函式無法直接或者用梯度下降法求出最大值時的θ值,那麼這時我們需要加入乙個隱藏變數z,以達到簡化l(θ),迭代求解l(θ)極大似然估計的目的。

2.em演算法推導

這小節會對em演算法進行具體推導,許多跟上面例子的解法推導是相同的,如果已經懂了,可以加速閱讀。首先跟「三硬幣模型」一樣,加入隱變數z後,假設q(z)是關於隱變數z的某種分布,那麼有如下公式:

公式(7)是加入隱變數,(7)=>(8)是在基礎上分子分母同乘以,(8)=>(9)用到jensen不等式(跟「三硬幣模型」一樣),等號成立的條件是,c是常數。再因為,則有如下q的推導:

再一次重複說明,要使(9)等式成立,則為yj,z的後驗概率。算出後(9)就可以進行求偏導,以剃度下降法求得θ值,那麼又可以計算新的值,依次迭代,em演算法就實現了。

em演算法(1):

選取初始值θ0初始化θ,t=0

repeat 直到收斂

3.em演算法收斂性證明

當θ取到θt值時,求得

那麼可得如下不等式:

(10)=>(11)是因為jensen不等式,因為等號成立的條件是θ為θt的時候得到的,而現在中的θ值為θt+1,所以等號不一定成立,除非θt+1=θt,

(11)=>(12)是因為θt+1已經使得取得最大值,那必然不會小於(12)式。

所以l(θ)在迭代下是單調遞增的,且很容易看出l(θ)是有上界的(單調有界收斂),則em演算法收斂性得證。

4.em演算法e步說明

上述em演算法描述,主要是參考andrew ng教授的講義,如果看過李航老師的《統計方法學》,會發現裡面的證明以及描述表明上有些許不同,andrew ng教授的講義的說明(如上述)將隱藏變數的作用更好的體現出來,更直觀,證明也更簡單,而《統計方法學》中則將迭代之間θ的變化羅列的更為明確,也更加準確的描述了em演算法字面上的意思:每次迭代包含兩步:e步,求期望;m步,求極大化。下面列出《統計方法學》書中的em演算法,與上述略有不同:

em演算法(2):

選取初始值θ0初始化θ,t=0

repeat 直到收斂

(13)式中,y=,z=,不難看出將(9)式中兩個σ對換,就可以得出(13)式,而(13)式即是關於分布z的乙個期望值,而需要求這個期望公式,那麼要求出所有的em演算法(1)中e步的值,所以兩個表明看起來不同的em演算法描述其實是一樣的。

四.總結em演算法是迭代求解最大值的演算法,同時演算法在每一次迭代時分為兩步,e步和m步。一輪輪迭代更新隱含資料和模型分布引數,直到收斂,即得到我們需要的模型引數。

乙個最直觀了解em演算法思路的是k-means演算法。在k-means聚類時,每個聚類簇的質心是隱含資料。我們會假設k個初始化質心,即em演算法的e步;然後計算得到每個樣本最近的質心,並把樣本聚類到最近的這個質心,即em演算法的m步。重複這個e步和m步,直到質心不再變化為止,這樣就完成了k-means聚類。。

em演算法可以解決hmm中的學習問題的baum-welch演算法。利用em演算法推導出高斯混合模型(gmm)中的引數。

五.參考鏈結

EM演算法學習 三

在前兩篇文章中,我們已經大致的講述了關於em演算法的一些基本理論和一些基本的性質,以及針對em演算法的缺點進行的優化改進的新型em演算法,研究之後大致就能夠進行初步的了解.現在在這最後一篇文章,我想對em演算法的應用進行一些描述 em演算法在多元正態分佈缺失的資料下一般都是有較為廣泛的應用,所以在這...

EM演算法學習筆記 1 對EM演算法的簡單理解

因做實驗的需要,最近在學習 em演算法,演算法介紹的資料網上是有不少,可是沒有一篇深入淺出的介紹,演算法公式太多,比較難懂,畢竟她是 ml領域 10大經典演算法之一 且一般是結合 gmm模型的引數估計來介紹 em的。看過不少 em的資料,現將自己對 em演算法用稍微通俗點的文字寫下來,當然你可以用 ...

機器學習 03 EM演算法學習筆記

假設有兩枚硬幣a和b,每次選乙個硬幣來拋10次。現在已經進行了5輪 也就是選了5次硬幣,並分別拋了10次 結果如下 h表示正面,t表示反面 假定隨機拋擲後正面朝上概率分別為pa,pb。為了估計這兩個硬幣朝上的概率,咱們輪流拋硬幣a和b,每一輪都連續拋5次,總共5輪 硬幣結果統計a 正正反正反 3正 ...