做者:櫻花豬算法
摘要:網絡
本文爲七月算法(julyedu.com)12月機器學習第十次次課在線筆記。EM算法全稱爲Expectation Maximization Algorithm,既最大指望算法。它是一種迭代的算法,用於含有隱變量的機率參數模型的最大似然估計和極大後驗機率估計。EM算法常常用於機器學習和機器視覺的聚類領域,是一個很是重要的算法。而EM算法自己從使用上來說並不算難,可是若是須要真正的理解則須要許多知識的相互串聯。框架
引言:機器學習
EM算法是機器學習十大經典算法之一。EM算法既簡單有複雜,簡單的在於他的思想而複雜則在於他的數學推理和複雜的機率公式。做爲我這個新手來說,決定先撿大的部分,所以文章咱們會更加着重概念的理解,至於公式的推導,在上過課之後其實也不是那麼的困難,主要一點是你須要有很是紮實的數學功底,EM算法的推導過程基本上涵蓋了咱們前面全部講到的數學知識。所以,若是看不懂EM算法大概是由於基礎知識太弱了須要補習。函數
預備知識:學習
貝葉斯網絡、機率論與數理統計、凸優化優化
1、EM算法spa
實際問題:隨機挑選10000位志願者,測量他們的身高:若樣本中存在男性和女性,身高分別服從N(μ1,σ1)和N(μ2,σ2)的分佈,試估計μ1,σ1,μ2,σ2。.net
1、提出orm
假定有訓練集,包含m個獨立樣本,但願從中找到該組主句的模型
的參數。
二、創建目標函數
咱們利用極大似然估計來創建目標函數:
z是隱隨機變量,不方便直接找到參數估計。
策略:計算下界,求該下界的最大值;重複該過程,直到收斂到局部最大值。
利用Jesenbu不等式,尋找儘可能緊的下界
令是z的某一個分佈,
有:
爲了使等號成立:
有:
根據上述推導,有EM算法框架:
E-step(求條件分佈)
M-step(求指望)
相互迭代,求的
2、高斯混合模型GMM
目的:隨機變量X是有K個高斯分佈混合而成,取各個高斯分佈的機率爲π1π2...πK,第i個高斯分佈的均值爲μi,方差爲Σi。若觀測到隨機變量X的一系列樣本x1,x2,...,xn,試估計參數π,μ,Σ。
1、直觀求解:
對數似然函數:
因爲在對數函數裏面又有加和,咱們無法直接用求導解方程的辦法直接求得極大值。爲了解決這個問題,咱們分紅兩步。
第一步:估計數據由每一個組份生成的機率
對於每一個樣本xi,它由第k個組份生成的機率爲:
上式中的μ和Σ也是待估計的值,所以採樣迭代法:在計算γ(i,k)時假定μ和Σ已知;γ(i,k)亦可當作組份k在生成數據xi時所作的貢獻。
第二步:估計每一個組份的參數
對於全部的樣本點,對於組份k而言,可看作生成了這些點。組份k是一個標準的高斯分佈,利用上面的結論:
二、EM方法求解:
E-step:
M-step:將多項分佈和高斯分佈的參數帶入
對均值求偏導:
令上式等於0,解的均值:
高斯分佈的方差:求偏導,等於0
多項分佈的參數:
考察M-step的目標函數,對於φ,刪除常數項:
有:
因爲多項分佈的機率和爲1,創建拉格朗日方程:
求偏導,等於0:
更加感觀的講解,參見:
http://blog.csdn.net/zouxy09/article/details/8537620