EM算法
1.EM算法的引入
EM算法是一种迭代算法,用于还有隐变量的概率模型参数的极大似然估计,或极大后验概率。EM算法可以分为两步,E步:求期望;M步:求极大。
1.1 EM算法的推导
面对一个含有隐变量的概率模型,目标是极大化观测数据Y关于参数θ的对数似然函数,即极大化
L(θ)=logP(Y|θ)=logP(Y,Z|θ)=log(P(Y|Z,θ)P(Z|θ)) (1)
EM算法是通过迭代逐步近似极大化L(θ)的。假设在第i次迭代后θ的估计值为,我们希望θ能够增加,为此我们考虑L(θ)和L()的差:
L(θ) - L()=log(P(Y|Z,θ)P(Z|θ)) - logP(Y|) (2)
这里L(θ)用是(1)中的第4个式子,L()用的是(1)中第3个式子
利用Jensen不等式得到下界:logf(x) ≥ logf(x) ( 0 且 =1)
由于P ( Z|Y, )=1,所以可以使用Jensen不等式
L(θ) - L() P(Z|Y,) log [(P(Y|Z,θ)P(Z|θ))/P(Z|Y,)] - log[P(Y|)P(Z|Y,)]
P(Z|Y,) log [(P(Y|Z,θ)P(Z|θ))/P(Z|Y,)] - P(Z|Y,)]log[P(Y|)
= P(Z|Y,)log [(P(Y|Z,θ)P(Z|θ))/(P(Z|Y,)P(Y|))]
= P(Z|Y,)log [(P(Y|Z,θ)P(Z|θ))/P(Z,Y|)]
移项可得
L(θ) L() + P(Z|Y,)log [(P(Y|Z,θ)P(Z|θ))/P(Z,Y|)]
令B(θ,)=L() + P(Z|Y,)log [(P(Y|Z,θ)P(Z|θ))/P(Z,Y|)]
如果想使L(θ)极大,那么就应该使L(θ)的下界B(θ,)极大
=arg B(θ,)
= arg L() + P(Z|Y,)log [(P(Y|Z,θ)P(Z|θ))/P(Z,Y|)]
去掉对θ而言相当于常数的项,也就是直接去掉不包含θ的项,因为求导这部分为0
= arg P(Z|Y,) log[(P(Y|Z,θ)P(Z|θ))]
∴Q(θ,) = P(Z|Y,) log[P(Y|Z,θ)P(Z|θ)]
= P(Z|Y,) logP(Y,Z|θ)
= [P(Z|Y,) logP(Y,Z|θ)]
1.2 EM算法
输入: 观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|θ),条件分布P(Z|Y,θ);
输出: 模型参数θ
(1) 选择参数的初始值
初始值是任意选取的,但会对结果有影响
(2) E步:记为第i次迭代参数θ的估计值,在第i+1次迭代的E步,计算:
Q(θ,) = [P(Z|Y,) logP(Y,Z|θ)]
(3)M步:求使Q(θ,)极大化的θ,确定第i+1次迭代的参数估计值
=arg B(θ,)
(4)重复(2)和(3),直至收敛
收敛条件:||-||< 或 ||Q,) - Q(,)||<
1.3 EM算法在无监督学习中的应用
监督学习是由训练数据 {(,),(,),··(,)}学习条件概率分布P(Y|X)或决策函数Y = f(X)作为模型,用于分类、回归、标注等任务。这时训练数据中的每个样本点由输入和输出对组成。
有时训练数据只有输入没有对应的输出{(,·),(,·),··,(,·)},从这样的数据学习模型称为无监督学习问题。EM算法可以用于生成模型的无监督学习。生成模型由联合概率分布P(X,Y) 表示,可以认为无监督学习训练数据是联合概率分布产生的数据。X为观测数据,Y为未观测数据。
2.EM算法的收敛性
由于P(Y|θ)为观测数据的似然函数,并且在0和1之间,所以证明收敛,只需要证明P(Y|θ)单调递增即可。
证明略。