适用问题
带有隐变量(无法直接观测的变量)的条件概率
P(Y,Z∣Θ)
Y是可观测变量,Z是隐变量,
Θ
是模型参数
通过提供 观测变量Y的观测值、Z的取值范围、 P(Y,Z∣Θ) 、 P(Z∣Y,Θ) , 计算出模型参数 Θ
算法
原理
本质上是求
P(Y∣θ)=∑ZP(Z∣θ)P(Y∣Z,θ)
对 θ 的极大似然估计
θ̂ =argmaxθlogP(Y∣θ)
( L(θ)=logP(Y∣θ)=∑ilog∑kP(Yi,Zk∣θ) )
但是由于上式中包含了不可观测的Z的累加和包含和的对数,不能直接求导来确定 θ
转化为通过使两次迭代之间的增加量最大来逼近最大值
E步:建立L(\theta)两次迭代间的下界
Q:为什么E步的Q函数的含义是 在第i次迭代的 θ 和 观测值 Y 的条件下L(\theta) 中z的期望呢 ( Ez[logP(Y,Z∣θ)∣Y,θ(i)] )
A:E步实际上是求 在上一次迭代的\theta^{(i)}的基础上,Z的期望。下一步M步即是让L( θ )在取何值时 z的期望最大。在下一篇文章 高斯混合模型中,可以在算法中用E(Z)代替计算
M步: 使下界极大(一般是分别使偏导为0)
在上一次迭代得到的 θ(i) 的基础上,下一次迭代取值 θ 使
L(θ)−L(θ(i))
的值取最大
利用Jensen不等式,可得
L(θ)−L(θ(i))=∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))P(Y∣θ(i))
去除多余的常数的项 也就是求
argmaxθ∑ZP(Z∣Y,θ(i))logP(Y,Z∣θ)
作为本轮迭代产生的 θ(i+1)