本系列通過如下兩部分來講解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算法等 。
給定相互獨立的觀測數據、隱變量Z、參數的概率模型,根據MLE理論,參數的最優單點估計在模型的似然取極大值時給出:,考慮隱變量(可以表示缺失數據,或概率模型中任何無法直接觀測的隨機變量),模型的似然有如下展開:,取對數展開得,
,其中爲與隱變量有關的概率分佈,即隱分佈,根據Jensen不等式,可得,
,其中L爲函數關於隱變量Z的期望,稱爲隱期望函數。
何時取等號呢?
,其中KL表示Kullback-Leibler散度(Kullback-Leibler divergence, KL)或相對熵(relative entropy),由KL散度的性質可知,其極小值在兩個概率分佈相等時取得,
即當時,不等式取等號。
假設已知,則有、
令,則有
,當時,不等式取等號。
所以不斷迭代更新,似然概率在不斷增大或達到局部最大值,如下圖所示。
總結下EM算法的流程:
1. 初始化參數,
2. E-step:構造隱期望函數
3. M-step:最大化隱期望函數
4. 重複2~3,直到似然函數幾乎不再增大