1. 程式人生 > >機器學習-EM演算法

機器學習-EM演算法

 最大期望演算法

EM演算法的正式提出來自美國數學家Arthur Dempster、Nan Laird和Donald Rubin,其在1977年發表的研究對先前出現的作為特例的EM演算法進行了總結並給出了標準演算法的計算步驟,EM演算法也由此被稱為Dempster-Laird-Rubin演算法。1983年,美國數學家吳建福(C.F. Jeff Wu)給出了EM演算法在指數族分佈以外的收斂性證明。

MLE

MLE就是利用已知的樣本結果,反推最有可能(最大概率)導致這樣結果的引數值 的計算過程。直白來講,就是給定了一定的資料,假定知道資料是從某種分佈中 隨機抽取出來的,但是不知道這個分佈具體的引數值,即“模型已定,引數未 知” ,MLE就可以用來估計模型的引數。MLE的目標是找出一組引數(模型中的 引數),使得模型產出觀察資料的概率最大。

 

MLE求解過程:

  • 編寫似然函式(即聯合概率函式)

  • 對似然函式取對數,並整理;(一般都進行)

  • 求導數;

  • 解似然方程。

 

貝葉斯

貝葉斯演算法估計是一種從先驗概率和樣本分佈情況來計算後驗概率的一種方式。

貝葉斯演算法中的常見概念:P(A)是事件A的先驗概率或者邊緣概率;P(A|B)是已知B發生後A發生的條件概率,也稱為A的後驗概率;P(B|A)是已知A發生後B發生的條件概率,也稱為B的後驗概率;P(B)是事件B的先驗概率或者邊緣概率。貝葉斯演算法估計:

在實際應用中計算:

 

MAP

MAP和MLE一樣,都是通過樣本估計引數θ的值;在MLE中,是使似然函式P(x|θ)最大的時候引數θ的值,MLE中假設先驗概率是一個等值的;而在MAP中,則是求θ使P(x|θ)P(θ)的值最大,這也就是要求θ值不僅僅是讓似然函式最大,同時要求θ本身出現的先驗概率也得比較大。

MAP是貝葉斯的一種應用:

 

Jensen不等式

如果函式為凸函式,那麼下面的式子將成立:

 

 

 

如果θ1,....,θk>=0,θ1,....,θk=1將存在:

 

 

對於f(E(x))=E(f(x))相等的時候,也就是x==y的時候.

相反對於這樣的函式:

公式將變成:

 

EM演算法引入

假設有3枚硬幣,分別記作A,B,C。這些硬幣正面出現的概率分別是π,p和q。進行如下擲硬幣試驗:先擲硬幣A,根據其結果選出硬幣B或硬幣C,正面選硬幣B,反面選硬幣C;然後擲選出的硬幣,擲硬幣的結果,出現正面記作1,出現反面記作0;獨立地重複n次試驗(這裡,n=10),觀測結果為1,1,0,1,0,0,1,0,1,1

假設只能觀測到擲硬幣的結果,不能觀測擲硬幣的過程。問如何估計三硬幣各自的正面朝上的概率,即三硬幣模型的引數。

這裡,隨機變數y是觀測變數,表示一次試驗觀測的結果是1或0;隨機變數z是隱變數,表示未觀測到的擲硬幣A的結果;θ=(π,p,q)是模型引數。隨機變數y的資料可以觀測,隨機變數z的資料不可觀測。

三硬幣模型:

EM演算法(Expectation Maximization Algorithm, 最大期望演算法)是一種迭代型別的演算法,是一種在概率模型中尋找引數最大似然估計或者最大後驗估計的演算法,其中概率模型依賴於無法觀測的隱藏變數。

EM原理

給定的m個訓練樣本{x(1),x(2),...,x(m)},樣本間獨立,找出樣本的模型引數θ,極大化模型分佈的對數似然函式如下:

 

假定樣本資料中存在隱含資料z={z(1),z(2),...,z(k)},此時極大化模型分佈的對數似然函式如下:

 

令z的分佈為Q(z;θ) ,並且Q(z;θ)≥0;sum(Q(z;θ))=1;那麼有如下公式:

 

相當於期望根據不等式且是反過來的凸函式

求l(θ)的最大值而後面的式子正好是它的下界,所以求後面式子的上界就行了,根據jensen不等式,當下列式子為常數的時候,l(θ)才能取等號,

 

EM演算法的流程

樣本資料x={x,x,...,x},聯合分佈p(x,z;θ),條件分佈p(z|x;θ),最大迭代次數J1) 隨機初始化模型引數θ的初始值θ02) 開始EM演算法的迭代處理:

  • E步:計算聯合分佈的條件概率期望

     
  • M步:極大化L函式,得到θj+1

     
  • 如果θj+1已經收斂,則演算法結束,輸出最終的模型引數θ,否則繼續迭代處理

給出停止迭代的條件,一般是對較小的正數ε1,ε2,若滿足下面條件則停止迭代

 

現在回到剛開始演算法引入時候三個硬幣例子:

1,初始化模型引數π,p,q

2,EM迭代:

E:估計隱藏變數概率分佈期望函式

 

M:根據期望函式重新估計分佈函式的引數π,p,q

對上面的式子求偏導即可:

 

 

 

 

 

&n