The General EM Algorithm
算法概述
给定观测变量 X, 和隐变量 Z 上的联合分布 p(X,Z∣θ), θ 是参数. 目标是要关于 θ 极大化似然函数 p(X∣θ).
为参数 θold 赋一个初始值.
E step
计算 p(Z∣X,θold).
M step
计算 θnew: θnew=argθmaxQ(θ,θold)
其中 Q(θ,θold)=Z∑p(Z∣X,θold)lnp(X,Z∣θ)
检查对数似然函数或者参数值的收敛性。
如果不满足收敛准则,那么令 θold←θnew.然后,回到第2步,继续.
算法有效性/收敛性证明
证明1
要证明 EM 算法的有效性/收敛性, 只需要证明每一次迭代可以保证 logp(X∣θi+1)=L(X∣θi+1)≥L(X∣θi)
证明如下:
L(X∣θ)=logp(X∣θ)=logp(Z∣X,θ)p(X,Z∣θ)=logp(X,Z∣θ)−logp(Z∣X,θ)
等式两边同时关于 p(Z∣X,θold) 做积分有:
logp(X∣θ)=∫p(Z∣X,θold)logp(X∣θ)dZ=∫p(Z∣X,θold)logp(X,Z∣θ)dZ−p(Z∣X,θold)logp(Z∣X,θ)dZ=Q(θ,θold)−∫p(Z∣X,θold)logp(Z∣X,θ)dZ 下面比较 L(θnew) 和 L(θold), 有:
L(θnew)−L(θold)=Q(θnew,θold)−Q(θold,θold)+∫p(Z∣X,θold)logp(Z∣X,θnew)p(Z∣X,θold)dZ 根据 θnew的定义, 可以知道 Q(θnew,θold)−Q(θold,θold)≥0
根据 KL 距离的非负性, 可以知道 ∫p(Z∣X,θold)logp(Z∣X,θnew)p(Z∣X,θold)dZ=KL(p(Z∣X,θold),p(Z∣X,θnew))≥0
综上,有 L(θnew)−L(θold)≥0, 收敛性得证.
证明2
与前一种证明类似,可以看到: L(X∣θ)=logp(X∣θ)=logp(Z∣X,θ)p(X,Z∣θ)=logq(Z)p(X,Z∣θ)+logp(Z∣X,θ)q(Z)
其中 q(Z) 是引入的一个关于 Z 的分布. 两边同时关于 q(Z) 求积分, 得到:
logp(X∣θ)=∫q(Z)logp(X∣θ)dZ=∫q(Z)logq(Z)p(X,Z∣θ)+q(Z)logp(Z∣X,θ)q(Z)dZ=∫q(Z)logq(Z)p(X,Z∣θ)d(Z)+KL(q(Z),p(Z∣X,θ))=F(q,θ)+KL(q(Z),p(Z∣X,θ)) EM 算法可以视为 通过优化 L(X∣θ) 的下界 F(q,θ), 来达到优化 L(X∣θ) 的目的.
在 E-step: 固定 F(q,θ) 中的 θ, 关于 q(Z) 做优化.
因为 L(X∣θ) 是 F(q,θ) 的上界, 且与 q(Z) 无关, 容易看到, 在 q(Z)=p(Z∣X,θ)时, F(q,θ) 会取得最大值,即为 L(X∣θ).
在 M-step: 固定 F(q,θ) 中的 \q(z), 关于 θ 做优化.
θ=argθmax∫q(Z)logq(Z)p(X,Z∣θ)d(Z)=argθmax∫p(Z∣X,θold)logp(X,Z∣θ)d(Z)
整个过程可以用图示表示如下:
应用
GMM
在 GMM 中, p(X∣θ)=∑l=1kαlN(X∣ul,Σl)
其中 ∑l=1kαl=1,θ={α1,...,αk,u1,...,uk,Σ1,...,Σk}.
为了做极大似然估计,引入隐变量 Z={z1,...,zn}, 其中zi 表示的是与观测量 xi 相对应的混合成分, p(zi)=αzi
引入隐变量之后相关的概率计算公式如下:
P(xi∣zi)P(X,Z)P(Z∣X,θ)=N(xi∣uzi,Σzi)=i=1∏np(xi,zi)=i=1∏np(xi∣zi)p(zi)=i=1∏nαziN(xi∣uzi,Σzi)=i=1∏np(zi∣xi)=i=1∏n∑l=1kαziN(xi∣uzi,Σzi)αziN(xi∣uzi,Σzi) 使用EM算法:
E-step:
由前面的公式计算 p(Z∣X,θold).
Q(θ,θold)=Z∑p(Z∣X,θold)lnp(X,Z∣θ)=Z∑(i=1∏np(zi∣xi,θold)(i=1∑nlnp(zi,xi∣θ)))=Z∑j=1∑n(i=j∏p(zi∣xi,θold))p(zj∣xj,θold)lnp(xj,zj∣θ)=j=1∑nZ∑(i=j∏p(zi∣xi,θold))p(zj∣xj,θold)lnp(xj,zj∣θ)=j=1∑nzj=1∑kp(zj∣xj,θold)lnp(xj,zj∣θ)=j=1∑nl=1∑kp(l∣xj,θold)lnαlN(xi∣ul,Σl)=j=1∑nl=1∑kp(l∣xj,θold)(lnαl−2Dln2π−21ln∣Σ∣−21(xj−ul)TΣl−1(xj−ul)) 下面分别关于参数 α,u,Σ 做优化有:
优化时涉及到的相关项为: A=j=1∑nl=1∑kp(l∣xj,θold)lnαl.
同时考虑到约束条件∑l=1kαl=1, 使用 Lagrange Multiplier, 有:
LM(α,λ)∂αl∂LM(α,λ)⇒=j=1∑nl=1∑kp(l∣xj,θold)lnαl−λ(l=1∑kαl−1)=αl1j=1∑np(l∣xj,θold)−λαl=n∑j=1np(l∣xj,θold) 优化时涉及到的相关项为: B=−21j=1∑nl=1∑kp(l∣xj,θold)(xj−ul)TΣl−1(xj−ul).
关于 u 求偏导数有:
∂ul∂B⇒=−21j=1∑np(l∣xj,θold)Σl−1(xi−ul)(−2)ul=∑j=1np(l∣xj,θold)∑j=1np(l∣xj,θold)xj 优化时涉及到的相关项为: C=j=1∑nl=1∑kp(l∣xj,θold)(21ln∣Λ∣−21(xj−ul)TΛ(xj−ul))). 其中 Λl=Σl−1
关于 Λl 求偏导数有:
∂Λ∂C⇒=21j=1∑np(l∣xj,θold)(Λl−1−(xj−ul)(xj−ul)T)Σl=Λl−1=∑j=1np(l∣xj,θold)∑j=1np(l∣xj,θold)(xj−ul)(xj−ul)T) 上面的求导过程中用到了一些矩阵的导数公式, 可以参考 PRML 中 Appendix C. Properties of Matrices.
K-Means
K-Means是一种硬聚类的手段,把每个点唯一的关联到一个聚簇. 可以通过下面的手段从 GMM 的 EM 算法中导出 K-Means 算法.
首先,假定 GMM 中每个混合成分的共享协方差矩阵 ϵI, 此时 p(x∣ul,Σl)=2πϵ1exp{−2ϵ1∣∣x−ul∣∣}
将 ϵ 视为一个固定的常数,而不是一个待估计的参数。
在上述假定下,应用 EM 算法有:
p(l∣xi,θ)=∑l=1kαlexp(−∣∣xi−ul∣∣2/2ϵ)αlexp(−∣∣xi−ul∣∣2/2ϵ) 考虑取极限 ϵ→0, 在 p(l∣xi,θ) 的等式右侧,分子分母同除以 ∣∣xi−ul∣∣ 最小的项,可以知道:
当l=argmin∣∣xi−ul∣∣时, p(l∣xi,θ)=1, 对其它l, 取值为0.
在这种取极限的情况,得到了硬聚类。容易知道,此时 u 的更新公式即为标准的 K-Means 下的更新公式.
PLSA
采用的思路为: p(x)=p(di,wj)=p(di)p(wj∣di)=p(di)∑l=1kp(wj∣l)p(l∣di).
观察到的数据为 (di,wj), 要估计的参数为 θ={p(wj∣l),p(l∣di)}.
同样因为在做 log likelihood 的时候, log 在求和符号的外侧,求导会很麻烦, 所以这里采用了 EM 算法来进行参数估计。
引入隐藏变量 zl, 表示所属的 topic 分布.
1.E-step:
p(zl∣di,wj,θold)=p(di,wj∣θold)p(zl,di,wj∣θold)=p(di)∑l=1kp(wj∣zl)p(zl∣di)p(di)p(wj∣zl)p(zl∣di)=∑l=1kp(wj∣zl)p(zl∣di)p(wj∣zl)p(zl∣di) 2.M-step:
Q(θ,θold)=i,j∑n(di,wj)l∑p(zl∣di,wj,θold)lnp(di,wj,zl∣θ)=i,j∑n(di,wj)l∑p(zl∣di,wj,θold)(lnp(di∣θ)+lnp(wj∣zl,θ)+lnp(zl∣di)) 优化p(wj∣zl,θ)
优化时涉及到的相关项为: A=i,j∑n(di,wj)l∑p(zl∣di,wj,θold)lnp(wj∣zl,θ).
同时考虑到约束条件∑jp(wj∣zl,θ)=1, 使用 Lagrange Multiplier, 有:
LM(p(wj∣zl,θ),λ)⇒=i,j∑n(di,wj)l∑p(zl∣di,wj,θold)lnp(wj∣zl,θ)−l∑λl(j∑p(wj∣zl,θ)−1)p(wj∣zl,θ)=i∑j∑n(di,wj)p(zl∣wj,di,θold)i∑n(di,wj)p(zl∣wj,di,θold) 优化p(zl∣di,θ)
优化时涉及到的相关项为: A=i,j∑n(di,wj)l∑p(zl∣di,wj,θold)lnp(zl∣di,θ).
同时考虑到约束条件∑lp(zl∣di,θ)=1, 使用 Lagrange Multiplier, 有:
LM(p(zl∣di,θ),λ)⇒p(zl∣di,θ)=i,j∑n(di,wj)l∑p(zl∣di,wj,θold)lnp(zl∣di,θ)−i∑λi(l∑p(zl∣di,θ)−1)=l∑j∑n(di,wj)p(zl∣wj,di,θold)j∑n(di,wj)p(zl∣wj,di,θold)=j∑n(di,wj)j∑n(di,wj)p(zl∣wj,di,θold)=n(di)∑jn(di,wj)p(zl∣wj,di,θold) ...完结撒花... :smile: :smile: :smile: :smile: :smile:
参考资料
《PRML》 Chapter 09:Mixture Models and EM
《PRML》 Appendix C:Properties of Matrices