EM算法

  首先感謝高佩旭同學的PPT,很懷念以前一起學習數據挖掘十大算法的時光。

1.問題引入

一般情況:

  假設我們遇到這樣一個問題:我們需要調查我們學校的男生和女生的身高分佈。採取抽樣調查的方法,在校園裏隨便選取100個男生和100個女生,共200個人(也就是200個身高的樣本數據)。

  爲了方便分類統計,我們可以將他們帶進一個教室,然後讓男生站到左邊,女生站到右邊。這樣就可以先統計抽樣得到的100個男生的身高。假設他們的身高是服從高斯分佈的。但是這個分佈的均值u 和方差2 我們不知道,這兩個參數就是我們要估計的。記作θ=[u,]T

  假設抽到男生的概率是p(XA|θ) ,且每次抽取都是相互獨立的,則抽到100個男生的概率爲:

P(XA1,XA2,...,XA100;θ)=i=1100p(xi,θ)

根據極大似然估計的思想,出現了的就應該是最有可能出現的,它出現的概率應該最大,所以轉化爲求解在何種θ 的取值下,P(XA1,XA2,...,XA100;θ) 能取到最大值。直接求導不方便,可以先去對數,然後再求導數:
L(XA1,XA2,...,XA100;θ)=lnP=i=1100logp(xi;θ)

然後便可以求解出參數{u,} ,這樣就可以得到相應的高斯分佈,可以直接用於測試樣本的性別了。

特殊情況:

  若這200人是混在一起的,無法分開。隨機選取一人無法確定其是男生還是女生。 用數學的語言就是,抽取得到的每個樣本都不知道是從哪個分佈抽取的。

  這個時候參數不僅僅是高斯分佈的{u,} ,還多了一個這個樣本是男生還是女生?直接用極大似然估計求解是不可能的,因爲壓根就不知道樣本到底是男性還是女性,無法將所有男性連乘(哪些是男性都不知道,怎麼連乘?)。這個時候就需要用到EM算法了。

  EM算法的基本思想是:假設我們想估計知道A和B兩個參數,在開始狀態下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反過來知道了B也就得到了A。可以考慮首先賦予A某種初值,以此得到B的估計值,然後從B的當前值出發,重新估計A的取值,這個過程一直持續到收斂爲止。

2.EM算法

  對於每個實例i ,用Qi 表示樣本實例i的隱含變量z 的某種分佈,且Qi 滿足條件:(zQi(z)=1,Qi(z)>=0) ,如果Qi 是連續性的,則Qi 表示概率密度函數,需要將求和符號換成積分符號。例如上面的例子中隱變量就是樣本的性別分佈,該分佈中有兩種取值{} ,Qi(z) 表示樣本i 的隱變量第z 種可能取值的概率。

  我們的目標就是求解使得P(x1,x2,...,xn;θ) 最大的參數θ ,也就是最大化ilogp(xi;θ) ,又由於隱變量存在,所以需要引入隱變量,上式等價於:

ilogp(xi;θ)=ilogzip(xi;zi,θ)(2.1)
=ilogziQi(zi)p(xi;zi,θ)Qi(zi)(2.2)

>=iziQi(zi)log(p(xi;zi,θ)Qi(zi))(2.3)

第一步到第二步(公式2.1)很好理解,就是求各種取值下的z 的概率之和,即p(xi;θ)=zip(xi;zi,θ) ,根據概率歸1性,這是很好理解的;第二步到第三步(公式2.2)相當於先乘了Qi(zi) 再除以一個Qi(zi) ,值是保持不變的。但是第三步到第四步(公式2.3)就不那麼好理解了,需要先理解Jensen 不等式。請參考後面的Jensen 不等式說明。

  假設你已經看了下面的Jensen 不等式介紹。我們可以將公式2.2和公式2.3中的對數函數看成某個凹函數,即f=log ,將p(xi;zi,θ)Qi(zi) 看成是X ,將Qi(zi) 看成是p(X) .
  根據期望的定義E(X)=Xp(X) ,在公式2.2中ziQi(zi)p(xi;zi,θ)Qi(zi) 就是自變量p(xi;zi,θ)Qi(zi) 的期望,然後再取log 函數值,也就是期望的函數
  同理在公式2.3中,根據E(f(X))=f(X)p(X) 的定義,將公式2.3中的Qi(zi) 看成是p(X) ,將log(p(xi;zi,θ)Qi(zi)) 看成f(X) 那麼ziQi(zi)log(p(xi;zi,θ)Qi(zi)) 就是函數值的期望
  根據Jensen 不等式,期望值的函數要大於等於函數的期望值,所以上面的不等式是成立的。

  之所以轉化爲公式2.3有兩個原因,一是因爲公式2.3中的函數方便求導;二是這樣可以得到目標函數L(x;θ) 的一個下界,通過不斷優化下界的最大值就可以讓目標函數儘可能取到最大值,最終收斂。

  我們的目標函數L(x;θ)=ilogp(xi;θ)>=iziQi(zi)log(p(xi;zi,θ)Qi(zi))=J(x;z,θ) ,其中x 是樣本,是已知的,未知參數是{z,θ} ,所以我們要想辦法不斷的最大化J(z,θ) ,使得L(θ) 能夠最大化。根據下圖來進行講解:

這裏寫圖片描述

  EM算法的核心思想就是:假設我們想估計知道A和B兩個參數,在開始狀態下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反過來知道了B也就得到了A。可以考慮首先賦予A某種初值,以此得到B的估計值,然後從B的當前值出發,重新估計A的取值,這個過程一直持續到收斂爲止。

  如上圖中,首先我們固定θ ,調整Q(z) 使下界J(z,Q) 上升至與L(θ) 在此點θ 處相等(綠色曲線到藍色曲線),然後固定Q(z) ,調整θ 使下界J(z,Q) 達到最大值θtθt+1 ,然後再固定θ ,調整Q(z) ……直到收斂到似然函數L(θ) 的最大值處的θ

  因爲L(x;θ)>=J(x;z,θ) ,所以J 的最大值就是L ,所以每次θ 固定時,調整z 要取到的最大值就是L ,也就是要調整z 使得J =L。所以現在有兩個問題:1.怎麼樣選擇Q(z) (即每種z的取值概率)才能讓J 取到最大值,即J=L 。2.該算法是否一定會收斂呢?

  對於第一個問題,根據Jensen 不等式中,二者相等的條件,即變量X 爲常數時才相等,所以要讓公式2.3中的p(xi;zi,θ)Qi(zi) 爲常數是,即p(xi;zi,θ)Qi(zi)=c 時才能取到最大值。

  做一下變換,p(xi;zi,θ)=Qi(zi)c ,兩邊對各種z 的可能取值的概率求和,即:

zp(xi;zi,θ)=zQi(zi)c=czQi(zi)(2.4)

zQi(zi)=1 ,即z 的可能取值之和的概率爲1.則有:
zp(xi;zi,θ)=c(2.5)

p(xi;zi,θ)=Qi(zi)c ,根據公式2.5,用zp(xi;zi,θ) 替換c 的取值,則有:
p(xi;zi,θ)=Qi(zi)c=Qi(zi)zp(xi;zi,θ)=>

Qi(zi)=p(xi;zi,θ)zp(xi;zi,θ)=p(xi;zi,θ)p(xi;θ)=p(zi|xi;θ)

至此,我們推出了在固定參數θ 後,使得下界拉昇到最大值的Q(z) 的計算公式就是後驗概率(條件概率),這樣就解決了如何確定Q(z) 的值使得J 最大,也就是前面的要解決的第一個問題。以前面的男女混在一起抽樣爲例,我們初始化了男的和女的高斯分佈參數,這樣就能夠對每個樣本進行分類,分爲男的和女的。此時根據分類結果,計算男的後驗概率和女的後驗概率,作爲讓J 取到最大值的Q(z) ,然後再固定這個Q(z) 值,用極大似然估計來求解θ ,然後循環往復的進行,直到收斂。這就是EM的兩個基本步驟,E步驟和M步驟

E步驟和M步驟:
E步驟:
  根據參數初始值的θ 或上一次迭代的模型參數的θ 來計算出隱性變量z 的後驗概率,其實就是隱性變量的期望。作爲隱藏變量的現估計值:

Qi(zi)=p(zi|xi;θ)

M步驟:
  在獲得當前的隱變量的估計值的情況下將似然函數最大化以獲得新的參數值θ:
θ=argmaxθiziQi(zi)log(p(xi;zi,θ)Qi(zi))

  對於第二個問題,爲什麼一定會收斂呢? 假設現在進行第t輪和第(t+1)輪迭代,此時t輪結束時有:

L(θ(t))=iziQti(zi)log(p(xi;zi,θ(t))Qti(zi))

其中Qti 表示第t輪確定的隱變量取值,注意,下一輪開始時,這個Qti 還是會用到

第(t+1)開始時有,固定Q(z) ,優化θ ,假設此時爲θ(t+1) ,則有:

L(θ(t+1))=iziQti(zi)log(p(xi;zi,θ(t+1))Qti(zi))

Q(z) 相同的情況下,L(θ(t+1)) 是在L(θ(t)) 基礎上優化θ 取到的最大值,顯然有:
L(θ(t+1))=iziQti(zi)log(p(xi;zi,θ(t+1))Qti(zi))
>=iziQti(zi)log(p(xi;zi,θ(t))Qti(zi))=L(θ(t))

這就證明了L(θ) 會單調增加,肯定會達到最大值,然後收斂。要判斷是否已經收斂有兩種辦法:一是L(θ) 值不再變化;第二種是L(θ) 變化幅度特別特別小了,這時需要定義一個閥值,如果小於這個閥值,那麼就認爲收斂了。

  至此就完成了證明過程,下面是Jensen 不等式的介紹。

3.Jensen不等式

Jensen不等式:
  如果f 是凹函數,X是隨機變量,那麼:

f(E[X])>=E[f(X)]
。(若爲凸函數則相反)特別地,如果f是嚴格凸函數,當且僅當X是常量時,上式取等號。通俗一點就是如果函數是凹函數,那麼期望值的函數要大於或等於函數值的期望。

  根據下圖中的凹函數進行理解:

這裏寫圖片描述

顯然有f(x1+x22)>=f(x1)+f(x2)2 ,前面是x1x2 的期望值的函數,後面是函數f(x1)f(x2) 的期望。

  由於log 函數(即對數函數)是凹函數,那麼也滿足上述性質,就可以用於EM算法推導過程。

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