EM
EM算法是一种迭代的算法,也可以说是一类算法的范式。概率模型中,有时候不仅存在观测变量,还可能存在隐含变量或者潜在变量。如果模型中的变量都是观测变量,那么直接使用极大似然估计或者贝叶斯估计来估计参数;当变量中含有隐变量时,就可以采用EM算法来进行能够参数的估计。EM算法主要分为两步:E步,求期望;M步,求极大。
一般情况下,用
Y
表示观测随机变量的数据,Z表示隐随机变量的数据。
Y
和Z连在一起称为完全数据,观测数据
Y
又称之为不完全数据。假设给定观测数据Y,其概率分布为
P(Y∣θ)
,
θ
是需要估计的模型参数,假设
Y
和Z的联合概率密度分布是
P(Y,Z∣θ)
。EM算法是通过迭代求取
L(θ)=logP(Y,Z∣θ)
的极大似然估计。
算法流程
输入:观测变量数据
Y
,隐含变量数据Z,联合分布
P(Y,Z∣θ)
,条件分布
P(Z∣Y,θ)
输出:模型参数
θ
(1) 选择参数的初值
θ(0)
,开始迭代;
(2) E步:记
θ(i)
为第
i
的迭代参数θ的估计值,在第
i+1
次迭代的E步,计算:
Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]=∑ZlogP(Y,Z∣θ)P(Z∣Y,θ(i))
(3)M步:求使得
Q(θ,θ(i))
极大化的
θ
,确定第
i+1
次迭代的参数估计值:
θ(i+1)=argmaxθQ(θ,θ(i))
(4)重复上述E步和M步,直至算法收敛。
EM算法和坐标上升法都是交替优化的过程,是否存在一定的内在联系?
推导
对于一个含有隐含变量的概率模型,目标是是极大化观测数据
Y
关于参数θ的对数似然函数
L(θ)=logP(Y∣θ)
。每一次迭代之后,该似然函数应该都会增大,即:
L(θ)−L(θ(i))=log(∑ZP(Y∣Z,θ)P(Z∣θ))−logP(Y∣θ(i))=log(∑ZP(Y∣Z,θ(i))P(Y∣Z,θ)P(Z∣θ)P(Y∣Z,θ(i)))−logP(Y∣θ(i))≥∑ZP(Y∣Z,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Y∣Z,θ(i))−logP(Y∣θ(i))=∑ZP(Y∣Z,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Y∣Z,θ(i))−logP(Y∣θ(i))∑P(Y∣Z,θ(i))=∑ZP(Y∣Z,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Y∣Z,θ(i))−∑P(Y∣Z,θ(i))logP(Y∣θ(i))=∑ZP(Y∣Z,θ(i))(logP(Y∣Z,θ)P(Z∣θ)P(Y∣Z,θ(i))−logP(Y∣θ(i)))=∑ZP(Y∣Z,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Y∣Z,θ(i))P(Y∣θ(i))=∑ZP(Y∣Z,θ(i))logP(Y,Z∣θ)P(Y,Z∣θ(i))
那么由上式可以得到一个
L(θ)
的下界,即:
L(θ)≥B(θ,θ(i))=L(θ(i))+∑ZP(Y∣Z,θ(i))logP(Y,Z∣θ)P(Y,Z∣θ(i))
那么:
θ(i+1)=argmaxθB(θ,θ(i))=argmaxθ∑ZP(Y∣Z,θ(i))logP(Y,Z∣θ)P(Y,Z∣θ(i))=argmaxθ∑ZP(Y∣Z,θ(i))logP(Y,Z∣θ)=argmaxθQ(θ,θ(i))
从上式可以看出,EM算法是通过不断极大化下界来来逼近对数似然函数的极大值的算法,但不能保证得到全局最优值。
应用
1)在非监督学习中的使用:一种典型的应用就是在分类问题中,将样本的类别作为一个隐含的变量,然后可以使用EM算法求解。例如kmeas算法。
2)混合高斯模型的参数求解。
References:
[1]李航:《统计学习方法》