EM算法
如果有训练集
{x(1),x(2),...,x(m)}, 存在隐变量
z, 我们想求解出
p(x,z), 那么现在似然函数可写为
l(θ)=i=1∑mlogp(x;θ)=i=1∑mlogz∑p(x,z;θ)
-
E 步骤
那么对于
x(i)来说,有一个隐变量
z(i)不好求解,那么我们可以通过假设
z(i)的分布
Qi(z)来辅助求解,显而易见
∑zQi(z)=1, 因而通过如下式子,
i∑logp(x(i);θ)=i∑logz(i)∑p(x(i),z(i);θ)
=i∑logz(i)∑Qi(z(i))Qi(z(i))p(x(i),z(i);θ)
≥i∑z(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
不等式成立的原因是
log(x)为凹函数,
而现在我们需要选择的就是
Qi的取值,那么我们现在就可以选择能够使不等式的等号成立的
Qi, 这时根据Jensen不等式的成立条件,
Qi(z(i))p(x(i),z(i);θ)=c(constant)
因而有
Qi(z(i))正比于
p(x(i),z(i);θ), 而由
∑zQi(z)=1可知,我们可以假设
Qi(z(i))=∑zp(x(i),z;θ)p(x(i),z(i);θ)
=p(x(i);θ)p(x(i),z(i);θ)
=p(z(i)∣x(i);θ)
上述就是所谓的EM算法中的E步骤,通过初始化的$\theta$
以及假设的后验概率分布
p(z(i)∣x(i);θ)求解出$ Q_i(z^{(i)})$,
-
M步骤
当求解出$ Q_i(z^{(i)})
时,我们可以通过对似然函数求导等于0得到新的\theta$, 公式如下,
θ:=argmaxθi∑z(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
经过最新的
θ,又能够得到新的后验概率,因而不断迭代,直到收敛,
EM算法收敛性证明
EM算法正确性的证明目标为
l(θ(t))≤l(θ(t+1)),
根据EM算法,有
l(θ(t))=i∑z(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
而对于$ l(\theta^{(t+1)})$, 有
l(θ(t+1))≥i∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t+1))
这是由于
l(θ)的本质得来的,
l(θ)≥i∑z(i)∑Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
这时
Qi=Qi(t),
θ=θ(t+1),
而
i∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t+1))
≥i∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t))
是由于
θ(t+1)是如下式子的取值,
argmaxθi∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ)
因而总式子为
l(θ(t+1))≥i∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t+1))
≥i∑z(i)∑Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t))=l(θ(t))
因而收敛性得证,EM更新迭代的过程就是
l(θ)单调递增的过程,
这里值得说明的是,EM算法更像是坐标上升算法,E步骤是对
Qi(z)进行坐标上升,而M步骤是对
θ的坐标上升,