1. 程式人生 > >【十大經典資料探勘演算法】EM

【十大經典資料探勘演算法】EM

1.極大似然

極大似然(Maximum Likelihood)估計為用於已知模型的引數估計的統計學方法。比如,我們想了解拋硬幣是正面(head)的概率分佈

;那麼可以通過最大似然估計方法求得。假如我們拋硬幣1010次,其中88次正面、22次反面;極大似然估計引數

值:

其中,

為觀測變數序列的似然函式(likelihood function of the observation sequence)。對

求偏導:

因為似然函式

不是凹函式(concave),求解極大值困難。一般地,使用與之具有相同單調性的log-likelihood,如圖所示

凹函式(concave)與凸函式(convex)的定義如圖所示:

從圖中可以看出,凹函式“容易”求解極大值,凸函式“容易”求解極小值。

2.EM演算法

EM演算法(Expectation Maximization)是在含有隱變數(latent variable)的模型下計算最大似然的一種演算法。所謂隱變數,是指我們沒有辦法觀測到的變數。比如,有兩枚硬幣A、B,每一次隨機取一枚進行拋擲,我們只能觀測到硬幣的正面與反面,而不能觀測到每一次取的硬幣是否為A;則稱每一次的選擇拋擲硬幣為隱變數。

用Y表示觀測資料,Z表示隱變數;Y和Z連在一起稱為完全資料( complete-data ),觀測資料Y又稱為不完全資料(incomplete-data)。觀測資料的似然函式:

求模型引數的極大似然估計:

因為含有隱變數,此問題無法求解。因此,Dempster等人提出EM演算法用於迭代求解近似解。EM演算法比較簡單,分為兩個步驟:

  • E步(E-step),以當前引數

計算

的期望值

  • M步(M-step),求使

極大化的

確定第

次迭代的引數的估計值

如此迭代直至演算法收斂。關於演算法的推導及收斂性證明,可參看李航的《統計學習方法》及Andrew Ng的《CS229 Lecture notes》

3.例項

[2]中給出極大似然與EM演算法的例項。如圖所示,有兩枚硬幣A、B,每一個實驗隨機取一枚拋擲10次,共5個實驗,我們可以觀測到每一次所取的硬幣,估計引數A、B為正面的概率

,根據極大似然估計求解

如果我們不能觀測到每一次所取的硬幣,只能用EM演算法估計模型引數,演算法流程如圖所示:

隱變數Z為每次實驗中選擇A或B的概率,則第一個實驗選擇A的概率為

按照上面的計算方法可依次求出隱變數

,然後計算極大化的

。經過10次迭代,最終收斂。

4.參考資料

[1] 李航,《統計學習方法》. [2] Chuong B Do & Serafim Batzoglou, What is the expectation maximization algorithm? [3] Pieter Abbeel, Maximum Likelihood (ML), Expectation Maximization (EM). [4] Rudan Chen,【機器學習算法系列之一】EM演算法例項分析.