如果一个概率模型的变量都是观测变量, 那么可以直接使用极大似然估计法或贝叶斯估计法.
但是如果一个概率模型的变量包括隐变量, 则不能简单地使用上述方法.
M算法提供一种近似计算含有隐变量概率模型的极大似然估计的方法.
EM算法是一种迭代算法, 每次迭代由两步组成: E步, 求期望; M步, 求极大值.
1. EM算法的引入
1.1 EM算法
1.1.1 数据表示
Y: 观测随机变量的数据(不完全数据)
Z: 隐随机变量的数据
Y+Z: 完全数据
P(Y|θ): 不完全数据Y的似然函数(θ是需要估计的模型参数)
logP(Y,Z|θ): 完全数据的对数似然函数
1.1.2 基本思想
通过迭代求L(θ)=logP(Y|θ)的极大似然估计.
1.1.3 算法描述
该算法对初值敏感, 选择不同的初值可能得到不同的参数估计值.
该算法也可以用于生成模型的非监督学习.
2. EM算法的收敛性
2.1 每一次迭代都使似然函数增大—>每次迭代都是有益的
2.2 似然函数序列和参数估计序列均具收敛性
上述定理只能保证收敛, 但不能保证收敛到极大值.
因此初值的选取非常重要, 实际应用中往往选取不同的初值,然后对得到的估计值加以比较.
3 EM算法在高斯混合模型学习中的应用
3.1 高斯混合模型
具有如下的概率分布:
3.2 高斯混合模型参数估计的EM算法
观测数据由高斯混合模型生成:
目标是用EM算法估计出参数θ.
3.2.1 明确隐变量, 写出完全数据的对数似然函数
观测数据的产生机制: 依据ak选择第k个高斯分布分模型, 然后根据该模型生成观测数据yj.
此时yj是已知的, 但是反映yj来自第k个高斯分布分模型的数据是未知的(用γk表示).
此时我们得到了完全数据:
进而可以写出完全数据的似然函数及其对数似然函数:
3.2.2 EM算法的E步骤: 确定Q函数
其中需要计算分模型k对观测数据yj的响应度
3.2.3 EM算法的M步骤
求新一轮迭代的模型参数: