【十大經典數據挖掘算法】EM


【十大經典數據挖掘算法】系列

  1. C4.5
  2. K-Means
  3. SVM
  4. Apriori
  5. EM
  6. PageRank
  7. AdaBoost
  8. kNN
  9. Naïve Bayes
  10. CART

1. 極大似然

極大似然(Maximum Likelihood)估計為用於已知模型的參數估計的統計學方法。比如,我們想了解拋硬幣是正面(head)的概率分布\(\theta\);那么可以通過最大似然估計方法求得。假如我們拋硬幣\(10\)次,其中\(8\)次正面、\(2\)次反面;極大似然估計參數\(\theta\)值:

\[\hat{\theta} = \arg\underset{\theta}{\max}\, l(\theta) = \arg\underset{\theta}{\max}\, \theta^8(1-\theta)^2 \]

其中,\(l(\theta)\)為觀測變量序列的似然函數(likelihood function of the observation sequence)。對\(l(\theta)\)求偏導

\[\frac{\partial l(\theta)}{\partial \theta} = \theta^7(1-\theta)(8-10\theta) \Rightarrow \hat{\theta} = 0.8 \]

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

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

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

2. EM算法

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

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

\[P(Y | \theta) = \sum_{Z} P(Z|\theta)P(Y|Z,\theta) \]

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

\[\hat{\theta} = \arg\underset{\theta}{\max}\, \log P(Y | \theta) \]

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

  • E步(E-step),以當前參數\(\theta^{(i)}\)計算\(Z\)的期望值

\[Q(\theta, \theta^{(i)}) = \mathbb{E}_Z[\log P(Y,X|\theta)| Y, \theta^{(i)}] \]

  • M步(M-step),求使\(Q(\theta, \theta^{(i)})\)極大化的\(\theta\),確定第\(i+1\)次迭代的參數的估計值\(\theta^{(i+1)}\)

\[\theta^{(i+1)} = \arg\underset{\theta}{\max}\, Q(\theta, \theta^{(i)}) \]

如此迭代直至算法收斂。關於算法的推導及收斂性證明,可參看李航的《統計學習方法》及Andrew Ng的《CS229 Lecture notes》。這里有一些極大似然以及EM算法的生動例子。

3. 實例

[2]中給出極大似然與EM算法的實例。如圖所示,有兩枚硬幣A、B,每一個實驗隨機取一枚拋擲10次,共5個實驗,我們可以觀測到每一次所取的硬幣,估計參數A、B為正面的概率\(\theta = (\theta_A, \theta_B)\),根據極大似然估計求解

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

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

\[P(z_1 = A |y_1, \theta^{(0)}) = \frac{P(z_1 = A |y_1, \theta^{(0)})}{P(z_1 = A |y_1, \theta^{(0)}) + P(z_1 = B |y_1, \theta^{(0)})} = \frac{0.6^5*0.4^5}{0.6^5*0.4^5 + 0.5^{10}} = 0.45 \]

按照上面的計算方法可依次求出隱變量\(Z\),然后計算極大化的\(\theta^{(i)}\)。經過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算法實例分析.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM