EM算法公式推导
最近一直在B站上看一个UP主的机器学习白板推导,感觉很有益处,因为之前看过的各种博客似乎都一直强调对EM算法的感性认识,缺少了很多的推导过程。我想,要完全理性地了解这个算法,还是要一步一步地通过推导。
主要参考资料:白板推导视频
公式导出:ELBO+KL divergence
在上一讲EM算法公式推导(一)我们说到了EM算法有
θ的迭代公式
θ(t+1)=θargmax∫zlogP(x,z∣θ)⋅P(z∣x,θ(t))dz
=θargmaxEz∣x,θ(t)[logP(x,z∣θ)]
对这个迭代公式怎么来的并没有详细的说明,这节将要推出这个公式。
始终不变的是:我们要求的是
logP(X∣θ)。
logP(x∣θ)==logP(x,z∣θ)−logP(z∣x,θ)logQ(z)P(x,z∣θ))−logQ(z)P(z∣x,θ
其中
Q(z)是一个满足
Q(z)=0的分布。
两边同时在
Q(z)上对z求期望。左边与
z无关,所以不变。于是得到
logP(x∣θ)=−∫zQ(z)logQ(z)P(x,z∣θ)dz∫zQ(z)logQ(z)P(z∣x,θ)dz
定义ELBO(Evidence Lower Bound)
=∫zQ(z)logQ(z)P(x,z∣θ)dz
KL(P(z∣x,θ)∣∣Q(z))=−∫zQ(z)logQ(z)P(z∣x,θ)dz
故可以得到:
logP(x∣θ)=ELBO+KL(P(z∣x,θ)∣∣Q(z))
KL divergence是恒大于等于0的,其中等于0的条件是
P(z∣x,θ)≡Q(z)
ELBO给出了左边式子的一个下界(这也是它名字的由来)。
我们在用EM算法进行迭代的过程中,实际上是在不断增加它的下界ELBO
在这个过程中要减小KL divergence,所以有
Q(z)=P(z∣x,θ(t))
综上
θ(t+1)=====θargmaxELBOθargmax∫zQ(z)logQ(z)P(z,x∣θ)dzθargmax∫zP(z∣x,θ(t))logP(z∣x,θ(t))P(z,x∣θ)dzθargmax∫zP(z∣x,θ(t))logP(x,z∣θ)dzθargmaxEz∣x,θ(t)[logP(x,z∣θ)]
到此,就得到了文章一开头的公式。
公式导出:ELBO+ Jensen Inequality
现在利用Jensen不等式来进行数学推导,导出ELBO之前的公式都不变
综上
θ(t+1)==θargmaxELBOθargmaxEq[logQ(z)P(z,x∣θ)]
注意到对数函数是一个上凸函数,所以根据Jensen Inequality 有:
E(logx)≤logE(x)
故
Eq[logQ(z)P(z,x∣θ)]≤logEq(Q(z)P(z,x∣θ))
取等的条件是
Q(z)P(z,x∣θ)=Const
Const表示一个常数,设为
C。
P(x,z∣θ)∫zP(x,z∣θ)dzP(x∣θ)=C⋅Q(z)=C∫zQ(z)dz=C=C
故有
Q(z)=CP(z,x∣θ)=P(x∣θ)P(z,x∣θ)=P(z∣x,θ)
所以可以将
Q(z)=P(z∣x,θ)代回到一开始的式子中得到:
θ(t+1)=====θargmaxELBOθargmax∫zQ(z)logQ(z)P(z,x∣θ)dzθargmax∫zP(z∣x,θ(t))logP(z∣x,θ(t))P(z,x∣θ)dzθargmax∫zP(z∣x,θ(t))logP(x,z∣θ)dzθargmaxEz∣x,θ(t)[logP(x,z∣θ)]