EM算法嗅探

一、前言

在統計計算中,最大期望(EM)算法是在概率模型中尋找參數最大似然估計或者最大後驗估計的算法,其中概率模型依賴於無法觀測的隱藏變量(Latent Variable)。最大期望經常用在機器學習和計算機視覺的數據聚類(Data Clustering)領域。

最大期望算法經過兩個步驟交替進行計算,第一步是計算期望(E),利用對隱藏變量的現有估計值,計算其最大似然估計值;第二步是最大化(M),最大化在 E 步上求得的最大似然值來計算參數的值。M步上找到的參數估計值被用於下一個 E 步計算中,這個過程不斷交替進行。

其應用在機器學習算法包括KMeans算法GMM算法等等,通俗來說,是一種參數初始化,不斷迭代尋求較優參數的方法。

二、EM算法推導

2.1 對數似然函數

這裏寫圖片描述

假設我們有一個樣本集{x(1),…,x(m)},包含m個獨立的樣本。但每個樣本i對應的類別z(i)是未知的(相當於聚類,聯繫一下KMeans),也即隱含變量,故我們需要估計概率模型p(x,z)的參數θ,但是由於裏面包含隱含變量z,所以很難用最大似然求解。

這裏寫圖片描述

也就是說我們的目標是找到適合的θ和z讓L(θ)最大。那我們也許會想,你就是多了一個未知的變量而已啊,我也可以分別對未知的θ和z分別求偏導,再令其等於0,求解出來不也一樣嗎?本質上這樣是可以的,但利用Jensen不等式我們繞開了兩個變量求偏導的方式,轉而利用通過一個變量最大化函數下界(其實本質也可能是求導)與求一個變量導數相結合的方法。有公式:
這裏寫圖片描述

其中(2)式到(3)的轉換就是利用了Jensen不等式

2.2 Jensen不等式

2.2.1 爲什麼不求偏導

本質上我們是需要最大化(1)式(對(1)式,我們回憶下聯合概率密度下某個變量的邊緣概率密度函數的求解,注意這裏z也是隨機變量。對每一個樣本i的所有可能類別z求等式右邊的聯合概率密度函數和,也就得到等式左邊爲隨機變量x的邊緣概率密度),也就是似然函數,但是可以看到裏面有“和的對數”,求導後形式會非常複雜(自己可以想象下log(f1(x)+ f2(x)+ f3(x)+…)複合函數的求導),所以很難求解得到未知參數z和θ。那OK,我們可否對(1)式做一些改變呢?我們看(2)式,(2)式只是分子分母同乘以一個相等的函數,還是有“和的對數”啊,還是求解不了,那爲什麼要這麼做呢?咱們先不管,看(3)式,發現(3)式變成了“對數的和”,那這樣求導就容易了。我們注意點,還發現等號變成了不等號,爲什麼能這麼變呢?這就是Jensen不等式的大顯神威的地方。且看下面推導。

2.2.2 Jensen不等式

設f是定義域爲實數的函數,如果對於所有的實數x。如果對於所有的實數x,f(x)的二次導數大於等於0,那麼f是凸函數。當x是向量時,如果其hessian矩陣H是半正定的,那麼f是凸函數。如果只大於0,不等於0,那麼稱f是嚴格凸函數。

Jensen不等式表述如下:

  • 如果f是凸函數,X是隨機變量,那麼:E[f(X)]>=f(E[X])
  • 特別地,如果f是嚴格凸函數,當且僅當X是常量時,上式取等號。

這裏寫圖片描述

圖中,實線f是凸函數,X是隨機變量,有0.5的概率是a,有0.5的概率是b。(就像擲硬幣一樣)。X的期望值就是a和b的中值了,圖中可以看到E[f(X)]>=f(E[X])成立。

Jensen不等式應用於凹函數時,不等號方向反向,上述的(2)式到(3)式就是凹函數
回到公式(2),詳細推導如下:

凹函數:E[f(x)]>=f(E(x))
在這裏,
X=這裏寫圖片描述

E(x)=這裏寫圖片描述

f(x)=log(x)
則:
這裏寫圖片描述這裏寫圖片描述

到這裏,現在式(3)就容易地求導了,但是式(2)和式(3)是不等號啊,式(2)的最大值不是式(3)的最大值啊,而我們想得到式(2)的最大值,那怎麼辦呢?

現在我們就需要一點想象力了,上面的式(2)和式(3)不等式可以寫成:似然函數L(θ)>=J(z,Q),那麼我們可以通過不斷的最大化這個下界J,來使得L(θ)不斷提高,最終達到它的最大值。
這裏寫圖片描述

見上圖,我們固定θ,調整Q(z)使下界J(z,Q)上升至與L(θ)在此點θ處相等(綠色曲線到藍色曲線),然後固定Q(z),調整θ使下界J(z,Q)達到最大值(θt到θt+1),然後再固定θ,調整Q(z)……直到收斂到似然函數L(θ)的最大值處的θ*。這裏有兩個問題:什麼時候下界J(z,Q)與L(θ)在此點θ處相等?爲什麼一定會收斂?

首先第一個問題(回答第二個問題看2.3),在Jensen不等式中說到,當自變量X是常數的時候,等式成立。而在這裏,即:
這裏寫圖片描述

因爲Q是隨機變量z(i)的概率密度函數,則可以得到:分子的和等於c(分子分母都對所有z(i)求和:多個等式分子分母相加不變,這個認爲每個樣例的兩個概率比值都是c),則:
這裏寫圖片描述

至此,我們推出了在固定參數θ後,使下界拉昇的Q(z)的計算公式就是後驗概率,解決了Q(z)如何選擇的問題。這一步就是E步,建立L(θ)的下界,也就是不等式的作用所在。接下來的M步,就是在給定Q(z)後,調整θ,去極大化L(θ)的下界J(在固定Q(z)後,下界還可以調整的更大)。

2.3 EM算法概述

期望最大算法是一種從不完全數據或有數據丟失的數據集(存在隱含變量)中求解概率模型參數的最大似然估計方法。

EM的算法流程:

  • 初始化分佈參數θ;
  • 重複以下步驟直到收斂:
    E步驟:根據參數初始值或上一次迭代的模型參數來計算出隱性變量的後驗概率,其實就是隱性變量的期望。作爲隱藏變量的現估計值:
    這裏寫圖片描述
    M步驟:將似然函數最大化以獲得新的參數值
    這裏寫圖片描述

說說M步驟,回答爲什麼會收斂:

這個不斷的迭代,就可以得到使似然函數L(θ)最大化的參數θ了。那就得回答剛纔的第二個問題了,它會收斂嗎?

感性的說,因爲下界不斷提高,所以極大似然估計單調增加,那麼最終我們會到達最大似然估計的最大值。理性分析的話,就會得到下面的東西:
這裏寫圖片描述

博客中提到這個怎麼來的:

第(4)步得到時,只是最大化,也就是的下界,而沒有使等式成立,等式成立只有是在固定θ,並按E步得到Qi時才能成立。

況且根據我們前面得到的下式,對於所有的Qi和θ都成立
這裏寫圖片描述

第(5)步利用了M步的定義,M步就是將調整到,使得下界最大化。因此(5)成立,(6)是之前的等式結果。

這樣就證明了會單調增加。一種收斂方法是不再變化,還有一種就是變化幅度很小。

再次解釋一下(4)、(5)、(6)。首先(4)對所有的參數都滿足,而其等式成立條件只是在固定θ,並調整好Q時成立,而第(5)步只是固定Q,調整θ,不能保證等式一定成立。(4)到(5)就是M步的定義,(5)到(6)是前面E步所保證等式成立條件。也就是說E步會將下界拉到與一個特定值(這裏)一樣的高度,而此時發現下界仍然可以上升,因此經過M步後,下界又被拉昇,但達不到與另外一個特定值一樣的高度,之後E步又將下界拉到與這個特定值一樣的高度,重複下去,直到最大值。

總體來說:

  • 從(2)到(3)取“=”就是“通過一個變量最大化函數下界”的步驟,即E步,聯想一下KMeans中取各個類數據的均值作爲質心這個步驟,就是在數據屬於某個類的情況下(固定一個變量)最大化某個概率。
  • 而固定z或說Q(z),使(3)式數值變大就是“求一個變量導數”的步驟,即M步。

本文參考以下優秀博文並理清一些邏輯:
http://blog.csdn.net/zouxy09/article/details/8537620
http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

有些東西還是講得有些抽象,但相信不斷地深入學習和應用到實際場景應該就有所領悟,共勉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章