统计学习方法(李航)- 第9章EM算法笔记
EM算法是一种迭代算法。用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法每次迭代由两步组成:E步,求期望值;M步,求极大,所以叫极大似然算法。
EM算法引入
概率模型有时候含有观测变量,又含有隐变量或潜在变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计或者贝叶斯估计算法估计。但是当模型含有隐变量的时候,就不能简单的使用这些估计方法,EM算法就是含有隐变量的概率模型参数的极大似然估计法或极大后验概率估计法。
算法
一般,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。YZ连在一起成为完全数据,观测数据Y又称为不完全数据。θ是需要估计的模型参数。
EM算法通过迭代求L(θ)=log(Y|θ)的极大似然函数
输入:观测变量数据Y,隐变量Z,联合分布P(Y,Z|θ),条件分布P(Z|Y,θ)
输出:模型参数θ
- 选择参数初值$θ^0$ 开始迭代
- E步:记$θ^i$为第i次迭代参数θ的估计值,在第i+1迭代的E步,计算期望:
$$Q(θ,θ^i) = E_z[\log P(Y,Z|θ) | Y, θ^i] = \sum_Z \log P(Y,Z|θ)P(Z|Y,θ^i)$$
这里$P(Z|Y,θ^i)$是在给定观测数据Y和当前的参数估计$θ^i$下隐变量的条件概率分布。 - M步:求使得$Q(θ,θ^i)$极大化的θ,确定第i+1次迭代的参数的估计值$θ^(i+1)$
$$θ^{i+1} = \arg \max_θ Q(θ,θ^i)$$ - 重复2和3步,直到收敛。
注意:
- 参数的初值是可以任意选择的,但需要注意EM算法对初始是敏感的
- E步求Q函数,$Q(θ,θ^i)$第一个变量是要极大化的参数,第二个是参数的当前估计值。每次估计是在求Q函数及其极大。
- M步求Q的极大化,每次迭代会使似然函数增大或达到局部最小值
- 给出停止迭代条件,一般是对较小的正数$\xi_1,\xi_2$
$||θ^{i+1}-θ^i||<\xi_1$ 或者$||Q(θ^{i+1},θ^i)-Q(θ^{i},θ^i)|| < \xi_2$
EM算法在非监督学习中的应用
EM算法的收敛性
定理1: EM算法得到的似然函数序列是递增的
定理2: EM算法得到的参数估计序列的收敛值是L(θ)的稳定点。
高斯混合模型
EM算法是高斯混合模型的有效算法