文章目錄
-
- MLE
- EM
-
- EM 算法流程
- EM算法的推導
- reference
MLE
我們經常會從樣本觀察資料Y中,找出樣本的模型參數。 最常用的方法就是:極大化模型分布的對數似然函數。
Θ M L E = log P ( Y ∣ θ ) \Theta_{MLE}=\log P(Y|\theta) ΘMLE=logP(Y∣θ)
Θ M L E = arg max θ ∑ i = 1 m log P ( y i ∣ θ ) \Theta_{MLE}=\arg \max_{\theta}\sum^m_{i=1} \log P(y_i|\theta) ΘMLE=argθmaxi=1∑mlogP(yi∣θ)
EM
但是在一些情況下,我們得到的資料有未觀察到的隐含資料Z latent variable。
之前資料Y由X(obserabled variable)和Z(latent variable)組成
此時我們未知的有隐含資料和模型參數,因而無法直接用極大化對數似然函數得到模型分布的參數。
EM算法解決這個的思路是使用啟發式的疊代方法,既然我們無法直接求出模型分布參數,那麼我們可以使用疊代的方式讓和
隐含資料
互相确定,最後趨于穩定
模型參數
- 先猜想隐含資料(EM算法的E步)
- 接着基于觀察資料和猜測的隐含資料一起來極大化對數似然,求解我們的模型參數(EM算法的M步)。
- 由于我們之前的隐藏資料是猜測的,是以此時得到的模型參數一般還不是我們想要的結果。不過沒關系,我們基于目前得到的模型參數,繼續猜測隐含資料(EM算法的E步),然後繼續極大化對數似然,求解我們的模型參數(EM算法的M步)。以此類推,不斷的疊代下去,直到模型分布參數基本無變化,算法收斂,找到合适的模型參數。
EM 算法流程
輸入: X,聯合分布 p ( x , z ; θ ) p(x,z;\theta) p(x,z;θ),條件分布 p ( z ∣ x , θ ) p(z|x,\theta) p(z∣x,θ),最大疊代次數 J
輸出: 模型參數 θ \theta θ。
- 随機初始化模型參數θ的初值 θ 0 \theta_0 θ0
- $ θ i t = θ 0 \theta_{it}= \theta_0 θit=θ0
for it from 1 to J:
a) . E-step:計算計算聯合分布的條件機率期望:
Q i ( z i ) = P ( z i ∣ x i , θ i t ) ) Qi(z_{i})=P(z_{i}|x_{i},θ_{it})) Qi(zi)=P(zi∣xi,θit))
L ( θ , θ i t ) = ∑ i = 1 m ∑ z i Q i ( z i ) log P ( x i , z i ; θ ) L(θ,θ_{it})=\sum_{i=1}^m\sum_{z_i}Q_i(z_i) \log P(x_i,z_i;\theta) L(θ,θit)=i=1∑mzi∑Qi(zi)logP(xi,zi;θ)
b) . M-step:極大化 L ( θ , θ i t ) L(\theta,\theta_{it}) L(θ,θit)得到 θ i t + 1 \theta_{it+1} θit+1
c) . 如果 θ i t + 1 \theta_{it+1} θit+1已收斂,則算法結束。否則繼續回到步驟a)進行E步疊代。
如果我們從算法思想的角度來思考EM算法,我們可以發現我們的算法裡已知的是觀察資料,未知的是隐含資料和模型參數,在E步,我們所做的事情是固定模型參數的值,優化隐含資料的分布;
而在M步,我們所做的事情是固定隐含資料分布,優化模型參數的值。
EM算法的推導
EM算法的推導
X:observed data
Z:unobserved data(latent variable)
Y=(X,Z):complete data
θ \theta θ:parameter
Jensen不等式表述如下:
- 如果
是凸函數,
f
是随機變量,那麼 E [ f ( X ) ] > = f ( E [ X ] E[f(X)]>=f(E[X] E[f(X)]>=f(E[X]。
X
- 如果
是凹函數,
f
是随機變量,那麼 E [ f ( X ) ] < = f ( E [ X ] E[f(X)]<=f(E[X] E[f(X)]<=f(E[X]。Note:log 是 凹函數
X
- 當且僅當
是常量時,上式取等号。其中, E [ X ] E[X] E[X]表示
X
的數學期望。
X
reference
【機器學習基礎】EM算法
如何通俗了解EM算法
EM算法詳解
EM算法原理總結
機率圖模型之EM算法