em演算法詳細例子及推導 統計學習方法 EM演算法

2021-10-11 08:21:45 字數 2308 閱讀 8909

em演算法是一種演算法,不是模型,該演算法用於解決含有隱變數的的概率模型的引數估計問題,利用極大似然估計的思想求優。

從而em演算法的目標是:

其中,x是觀測資料(observed data),

是引數,包含的隱變數z(latent variable)。(x,z)稱為完整資料(complete data)。

但有時候

無法得到,因為x較為複雜,從而想著是不是有個變數對x產生影響,或者說存在乙個變數z對x產生影響,從而將z求解問題拆分成

的問題求解。這實際上是將x的求解分解出離,簡單化。

將求解目標轉換成隱變數的形式:

兩邊分別對隱變數分布q(z)求期望:

其中 從而右邊對因變數分布q(z)求期望:

其中 稱為elbo,evidence lower bound(證據下界),

是kl散度,

。因為kl值取值為[0,1],從而

。當前僅當kl(p || q)=0時,即

時, 。注意在推導過程中,假設kl(p || q)能夠為0。

從而可以將elbo看作

的下界,當逐步提高這個下界值時,相當於增大了

,從而對elbo求期望最大化。

從而,因為這裡假設kl=0,從而

,所以q(z)可以用

取代,此時這裡的

是t時刻的

值,是乙個常量:

在倒數第二步的時候,可以將

是因為我們對

求極大值,而該式子是乙個常數項,從而可以忽略。

這樣最就得到了em的表示式:

其中,e-step要做的事情是:將t時刻的

的期望表示式寫出來:

m-step就是最大化期望:

從而達到迭代攀爬的目的:

jensne inequlity,琴生不等式。意思是對於凸函式而言,函式的期望大於期望的函式值。我個人沒有去了解它的證明。這裡就直接照抄白板的解說過程:

如上圖,f(x)是凸函式,在f(x)上存在兩點a,b。其中在a,b之間有一點c,那麼他們之間滿足:

其中,

。當t = 1/2 時:

。前者是先求期望,再求函式值;後者是先求函式值,再求他們的期望。從而:

。那麼接下來將琴生不等式運用到em公式推導過程中:

什麼時候

與 相等呢?當且僅當

的比值為乙個常數時,該等式成立。

假設 則 ,兩邊對z求積分得:

其中 可以看作是

的邊緣概率;

可以看作是c的邊緣概率,從而:

將(2)帶入(1)的:

注意,(3)中

是乙個常數值,比如當

時,則(3)中的theta就是t時刻的值

。將(3)帶入(ⅰ)得:

從而,就得到了em公式:

其中,z是隱變數,x是觀測資料,

是上一時刻t的引數,是乙個常量,

是關於z的後驗。

根據白板大佬說的,吳恩達老師cs229課程中關於em的推導也是用該方法進行推導的。

em演算法的收斂性主要是通過證明

它來獲得的。

首先:兩邊關於

求期望:

記:其中,

是乙個變數,我們可以取任意值,這裡就取值為

。現在,我們想要證明的是em演算法的收斂性,可分別證明:

及 。關於(4),由於

使 達到極大值,從而:

關於(5):

其中,

是利用琴聲不等式得到的。

從而 聯立(6)和(7),關於em的收斂性的證明就完成了。

在2和3中關於em表示式推導過程,都提到了乙個假設,即

。但這個假設有可能是不成立的,是intractable問題。為什麼呢?這還需要回到生成模型,對於大多數情況下,後驗是求解不出來的。從而就有了變分推斷,變分推斷就是要解決後驗求解不出來的問題,還有蒙特卡洛。

那如何解決這個問題呢?

既然 與

很可能相等,即kl(p||q)>0,那麼我們就

,這樣當kl(p||q)無限接近於0時,q(z)分布與

分布就無限接近。從而廣義em演算法的求解步驟如下:

固定 ,

固定 ,

廣義em表示式:

其中,

可以看到,

是熵,表示為h[q]。

從而 。

與狹義的em表示式對比:

,我們可以發覺它多了熵這部分的資訊。這是因為在狹義中

是常數項,而在廣義中用的是

。還有em在gmm的應用,後面補充。

這一章節不寫回顧主要是因為不熟。。。

該文章是從白板系列那搬過來的(衷心的感謝!)。

em演算法詳細例子及推導 EM演算法推導的兩個注意點

em演算法非常經典,公式推導也十分完美。然而含金量這麼高的公式,常常由於知識密度太大導致無法消化。我在看部落格推導em演算法的過程中,為了解決前後邏輯跨度大的問題,分析到了兩個注意點,能夠使得公式推導更加合理。一 在公式推導假設 機器學習 em演算法詳細推導和講解 bigmoyan 成立的過程中我們...

EM演算法詳細推導

em演算法推導 em演算法舉例 em演算法收斂性證明 一點小思考 參考文獻 概率模型有時既含有觀測變數,又含有隱變數或潛在變數。如果概率模型的變數都是觀測變數,那麼給定觀測資料,直接根據極大似然估計求解模型引數。em演算法是一種迭代演算法,用於含有隱變數的概率模型引數的極大似然估計或者極大後驗概率估...

機器學習 EM演算法詳細推導和講解

今天不太想學習,炒個冷飯,講講機器學習十大演算法裡有名的em演算法,文章裡面有些個人理解,如有錯漏,還請讀者不吝賜教。然而現在我面臨的是這種情況,我手上的資料是四川人和東北人的身高合集,然而對於其中具體的每乙個資料,並沒有標定出它來自 東北人 還是 四川人 我想如果把這個資料集的概率密度畫出來,大約...