Expectation maximization algorithm
回顾一下GMM以及HMM等模型的求解方法,即著名的Expectation Maximization (EM) 算法。参考李航老师的《统计学习方法》,EM算法是一种迭代算法,用于含有隐含变量的概率模型参数的极大似然估计(MLE),或极大后验概率估计 (MPE).
EM算法
定义为观测随机变量,为隐含随机变量,则和一起构成完全数据 (complete-data)。假设待估计的概率模型参数为,则观测数据的概率分布为, 即为其似然函数,对应的对数似然函数为. 设和Z的联合概率分布为,那么完全数据的对数似然函数为.
EM算法的目的就是求解参数,极大化观测量的对数似然函数。因为包含隐含量,所以采用迭代的方法,分为E (期望) 和M (极大化)两步,求解算法如下。
初始化参数;
E step: 记为第次迭代参数的估计值,则第次迭代,计算如下期望.
其中是在给定观测数据和当前估计的参数$\theta^{(i)}$下隐含变量的条件概率分布;定义为完全数据的对数似然函数在给定观测数据和当前参数下对隐含数据的条件概率分布的期望,即。
M step: 求使极大化的参数,以确定第次迭代的参数的估计值, 即计算
重复E和M两步,直到收敛.
李航老师也强调了一点:EM算法与初值的选择有关,选择不同的初值可能得到不同的参数估计值。 我在这个notebook里给了一个样例,即“三硬币模型”。
高斯混合模型的求解
EM算法最经典的应用就是高斯混合模型的参数估计,该模型是语音信号处理的基础模型之一,其定义如下,
其中,是系数,, ; 是高斯分布,,
在GMM模型中有,
- 观测变量:,
- 隐含变量:,表示是否来自第个高斯分量
- 模型参数:.
详细的推导见《统计学习方法》,这里给出GMM模型的E和M步骤.
设观测数据
E step
其中.
M step
其中.
最后,给出一个样例,简单的二维GMM,如下图,notebook见这里.

可以看出,EM的估计效果还是不错的,并且提供初始化参数值的结果 (左下) 比随机初始化 (右下) 的结果要好。
Reference
[1] 李航,统计学系方法,2012 清华大学出版社
[2] Generating random variables from a mixture of Normal distributions