EM算法系列--原理

本系列通過如下兩部分來講解EM算法:

1. EM算法的原理

2. EM算法實際應用--HMM

EM算法原理

EM算法全稱是 最大期望算法(Expectation-Maximization algorithm, EM),是一類通過迭代進行極大似然估計(Maximum Likelihood Estimation, MLE)的優化算法 ,通常作爲牛頓迭代法(Newton-Raphson method)的替代用於對包含隱變量(latent variable)或缺失數據(incomplete-data)的概率模型進行參數估計 [2-3] 

EM算法的標準計算框架由E步(Expectation-step)和M步(Maximization step)交替組成,算法的收斂性可以確保迭代至少逼近局部極大值 [4]  。EM算法是MM算法(Minorize-Maximization algorithm)的特例之一,有多個改進版本,包括使用了貝葉斯推斷的EM算法、EM梯度算法、廣義EM算法等 。

給定相互獨立的觀測數據X = \{X_1,X_2,...,X_N\}、隱變量Z、參數\theta的概率模型,根據MLE理論,參數的最優單點估計在模型的似然取極大值時給出:\theta = arg\max_{\theta}{p(X|\theta)},考慮隱變量(可以表示缺失數據,或概率模型中任何無法直接觀測的隨機變量),模型的似然有如下展開:p(X|\theta) = \sum_{Z_c}{p(X,Z_c|\theta)},取對數展開得,

logp(X|\theta) = log\prod_i{p(X_i|\theta)} = \sum_i{logp(X_i|\theta)} \\ = \sum_i{log[\sum_{Z_c}{p(X_i,Z_c|\theta)}]} \\ = \sum_i{log[\sum_{Z_c}{q(Z_c)\frac{p(X_i,Z_c|\theta)}{q(Z_c)}]}} \\,其中\sum_{Z_c}{q(Z_c)} = 1爲與隱變量有關的概率分佈,即隱分佈,根據Jensen不等式,可得,

logp(X|\theta) = \sum_i{log[\sum_{Z_c}{q(Z_c)\frac{p(X_i,Z_c|\theta)}{q(Z_c)}]}}\\ \geq \sum_i{\sum_{Z_c}{q(Z_c)log[\frac{p(X_i,Z_c|\theta)}{q(Z_c)}]}} = L(\theta, q),其中L爲函數log[\frac{p(X,Z|\theta)}{q(Z)}]關於隱變量Z的期望,稱爲隱期望函數。

何時取等號呢?

logp(X|\theta) - L(\theta, q) \\ = \sum_i{log[p(X_i |\theta)]\sum_{Z_c}{q(Z_c)}}- \sum_i{\sum_{Z_c}{q(Z_c)log[\frac{p(X_i,Z_c|\theta)}{q(Z_c)}]}} \\ = \sum_i\sum_{Z_c}q(Z_c)log[\frac{p(X_i |\theta)q(Z_c)}{p(X_i,Z_c|\theta)}]\\ = \sum_i\sum_{Z_c}q(Z_c)log[\frac{q(Z_c)}{p(Z_c|X_i,\theta)}] \\ = \sum_iKL(q(Z)|p(Z|X_i,\theta)),其中KL表示Kullback-Leibler散度(Kullback-Leibler divergence, KL)或相對熵(relative entropy),由KL散度的性質可知,其極小值在兩個概率分佈相等時取得,

即當q(Z)=p(Z|X_i,\theta)時,不等式取等號。

假設\theta^{t-1}已知,則有logp(X|\theta^{t-1}) = L(\theta^{t-1}, p(Z|X,\theta^{t-1}))logp(X|\theta^{t}) \geq L(\theta^{t}, p(Z|X,\theta^{t-1}))

\theta^{t} =arg\max_{\theta} L(\theta, p(Z|X,\theta^{t-1})),則有

logp(X|\theta^{t}) \geq L(\theta^{t}, p(Z|X,\theta^{t-1})) \geq L(\theta^{t-1}, p(Z|X,\theta^{t-1})) = logp(X|\theta^{t-1}),當\theta^{t} = \theta^{t-1}時,不等式取等號。

所以不斷迭代更新\theta,似然概率logp(X|\theta)在不斷增大或達到局部最大值,如下圖所示。

總結下EM算法的流程:

1. 初始化參數,

2. E-step:構造隱期望函數L(\theta, q)= \sum_i{\sum_{Z_c}{q(Z_c)log[\frac{p(X_i,Z_c|\theta)}{q(Z_c)}]}} , \; q(Z_c) = p(Z_c|X_i,\theta^{t-1})

3. M-step:最大化隱期望函數\theta^{t} =arg\max_{\theta} L(\theta, p(Z|X,\theta^{t-1}))

4. 重複2~3,直到似然函數幾乎不再增大

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章