EM算法(期望最大化)——理论部分
2017-04-22 20:30
316 查看
EM算法的目标
EM算法是一种求解含有隐变量概率模型的最大似然解的方法。我们知道,当概率模型中含有隐变量时,其最大似然解是很难直接求解的。为什么很难直接求解呢?考虑一个概率模型,我们将所有的观测变量统称为X,参数统称为θ。我们的目标是求解似然函数p(X|θ)。假设该概率模型存在隐变量,统称为Z。所以,p(X|θ)=∑Zp(X,Z|θ)。在求概率模型的最大似然解时,我们一般考虑对lnp(X|θ)进行求导。由于隐变量的存在,lnp(X|θ)=ln∑Zp(X,Z|θ),求和符号在对数运算内部,对其进行求导是很困难的。
EM算法的步骤
由于含有隐变量概率模型的最大似然解很难直接求得,EM算法考虑用一种强大且优雅的方式来间接得到,这种方式就是迭代。EM算法通过两步迭代的方式,通过最大化“对数联合概率期望”,得到最大似然解。这里,我们先给出EM算法的一般步骤,之后一节从理论方面推导出该种方式的合理性。EM算法主要分为两大步:
(1)E步骤:计算条件概率分布p(Z|X,θold),由此可推知联合概率分布对数在条件概率p(Z|X,θold)下的期望Q(θ,θold)=∑Zlnp(X,Z|θ)p(Z|X,θold)
(2)M步骤:计算θnew,使得Q(θ,θold)最大化;即argmaxθQ(θ,θold)
不断迭代(1)(2)步,直到Q(θ,θold)收敛;否则θold=θnew。
EM算法的理论推导
从“EM算法的步骤”这一节,我们知道EM算法其实执行起来很简单。那么,为什么最大化联合概率分布的对数Q(θ,θold)求得的θ就是最大似然解呢?这一节,我们主要是从理论层面,来解释EM算法的两步迭代的合理性。
首先我们知道有条件概率公式ln[p(X|θ)]=lnp(X,Z|θ)p(Z|X,θ)成立。在隐变量上,我们引入分布q(Z)。
∵∑Zq(Z)=1且p(X|θ)不依赖于分布q(Z)∴ln[p(X|θ)]=lnp(X,Z|θ)p(Z|X,θ)∑Zq(Z)=∑Zq(Z)lnp(X,Z|θ)p(Z|X,θ)ln[p(X|θ)]=∑Zq(Z)ln[p(X,Z|θ)q(Z)q(Z)p(Z|X,θ)]ln[p(X|θ)]=∑Zq(Z)lnp(X,Z|θ)q(Z)−∑Zq(Z)lnp(Z|X,θ)q(Z)
令ζ(q,θ)=∑Zq(Z)lnp(X,Z|θ)q(Z),KL(q||p)=−∑Zq(Z)lnp(Z|X,θ)q(Z);
则有ln[p(X|θ)]=ζ(q,θ)+KL(q||p)
其中KL(q||p)表示q(Z)和p(Z|X,θ)之间的KL散度。KL散度有如下性质:
(1)∀q,KL(q||p)≥0
(2)当且仅当q=p时,KL(q||p)=0
下图1表示ln[p(X|θ)],ζ(q,θ),KL(q||p)三者之间的关系:
由此可知,ζ(q,θ)是ln[p(X|θ)]的一个下界。
我们最初目的是为了求解argmaxθln[p(X|θ)],这个问题可进行转化:寻找这样一个概率分布q(Z),使得q(Z)=p(Z|X,θ),从而有等价关系ln[p(X|θ)]=ζ(q,θ),这时argmaxθln[p(X|θ)]可转化为argmaxθζ(q,θ)。
我们如何寻找这个q(Z)呢?我们知道p(Z|X,θ)是不能直接得到的。
注意到ln[p(X|θ)]其实不依赖概率分布q(Z),如果我们固定θ0,那么argmaxqζ(q,θ0)的解其实就是p(Z|X,θ0)。
因为对于任意q(Z),ln[p(X|θ0)]为定值,而ζ(q,θ0)是ln[p(X|θ0)]的下界,那么理所应当的是ζ(q,θ0)的最大值为ln[p(X|θ0)],也就是KL(q||p)=0,由KL散度性质可知q(Z)=p(Z|X,θ0)。
由上述描述,我们可知转化后的问题涉及到两个“固定”:(1)固定θ=θold,求解argmaxqζ(q,θold),也就是计算q(Z)=p(Z|X,θold);(2)固定q(Z)=p(Z|X,θold),求解argmaxθζ(q,θ)。通过这两个固定不断迭代最大化ζ(q,θ),从而得到最大似然解θopt。终于,我们期待的“优雅而强大”的迭代操作揭开了面纱。这两个“固定”,我们也可以用两张图来反应:
图1 固定θ=θold
图2 固定q(Z)=p(Z|X,θold)
说了这么多,该来解决我们这一节最开始提到的问题——“从理论层面,来解释EM算法步骤的两步迭代的合理性”。虽说,我们在理论上证明了EM算法确实是两步迭代操作,但是它是否有涉及到“最大化对数联合分布的期望”呢?
由于E步骤和固定(1)是完全一样的,我们需要说明的是 固定(2):argmaxθζ(q,θ) 和 M步骤:argmaxθQ(θ,θold)是否为等价操作呢?
和前面一样,我们从公式来给出说明:
ζ(q,θ)=∑Zq(Z)lnp(X,Z|θ)q(Z)
∵q(Z)=p(Z|X,θold)
∴ζ(q,θ)=∑Zp(Z|X,θold)lnp(X,Z|θ)p(Z|X,θold)
⇒ζ(q,θ)=∑Zp(Z|X,θold)lnp(X,Z|θ)−∑Zp(Z|X,θold)lnp(Z|X,θold)
⇒ζ(q,θ)=Q(θ,θold)−const
所以,二者是等价的。
至此,EM算法通过两步迭代的方式最大化“对数联合分布期望”来求解含隐变量的概率模型的最大似然解,有了很好的理论解释。
之后两篇博客,会介绍常用EM算法的应用:GMM(Gaussian Mixture Model,高斯混合模型)以及GMM的特例:K-Means(K均值)算法
相关文章:
EM算法(期望最大化)——应用:GMM http://blog.csdn.net/tingyue_/article/details/70576025
EM算法(期望最大化)——从EM算法角度理解K-Means与GMM的区别http://blog.csdn.net/tingyue_/article/details/70739671
相关文章推荐
- EM算法(期望最大化)——应用:GMM
- Infogan-信息最大化生成对抗网络(理论部分)
- Infogan-信息最大化生成对抗网络(理论部分)
- EM算法(期望最大化)——从EM算法角度理解K-Means与GMM的区别
- 机器学习基石的泛化理论及VC维部分整理(第五讲)
- k-近邻学习,朴素贝叶斯,期望最大化,最大熵模型算法介绍
- 十大经典数据挖掘算法之EM(期望最大化)算法
- Expectation Maximization-EM(期望最大化)-算法以及源码
- 数据挖掘十大算法----EM算法(最大期望算法)
- [经济学原理|微观部分]成本理论
- 理论物理专题讲义(量子力学与统计物理部分)
- 利用 NGINX 最大化 Python 性能,第二部分:负载均衡和监控
- 多线程的理论知识部分
- Java面试题精选(二)线程编程、数据库理论和Jdbc部分
- ucore操作系统lab2实验报告之理论部分
- 期望最大化(EM)算法(讲的很好)
- 可重入和不可重入——(一)理论部分
- 事务信息系统-并发控制与恢复的理论, 算法与实践-计算模型, 并发控制部分
- 机器学习基石的泛化理论及VC维部分整理(第六讲)
- Java 理论与实践: 修复 Java 内存模型,第 2 部分(转载)