EM算法和混合模型一:EM算法

作者: 引线小白-本文永久链接:httpss://www.limoncc.com/post/baeffd0a1d876b77/
知识共享许可协议: 本博客采用署名-非商业-禁止演绎4.0国际许可证

一、EM算法
1.1、问题表述

考虑独立同分布数据集 Dx={xi}i=1N,我们加入隐含变量 zC。这样我们有完整数据集(complete data):D+={xi,zi}i=1ND+依然是独立同分布的,同时我们把 Dx称为不完整数据集(incomplete data)。于是我们有:
(1)(Dxθ)=i=1Nlnp(xθ)=i=1Nln[Cp(x,zθ)dz]我们用数据集表示:
(2)(Dxθ)=lnp(Dxθ)=ln[CNp(Dx,Dzθ)dDz]对于离散情况,我们把积分换成求和即可。

1.2、痛点问题:对数里求和的复杂性

对于不完全数据集,也就是我们观测到的数据集的对数似然函数 lnp(Dxθ)。它的形式通常是复杂,尤其在想最大化参数时,对数里面居然有求和(积分):(Dxθ)=i=1Nlnp(xθ)=i=1Nln[zCp(x,zθ)]这是很很头疼的问题。

1.3、完全数据集求解的简单性

隐变量加入后:求解 (D+θ)要比求解 (Dxθ)容易:
(3)(D+θ)=ln[i=1N(p(zπ)p(xz,θ))]=ln[i=1Np(zπ)×i=1Np(xz,θ)](4)=ln[i=1Np(zπ)]+ln[i=1Np(xz,θ)](5)=i=1Nlnp(zπ)+i=1Nlnp(xz,θ)对数里的求和自然消失,变成了我们熟悉的形式。

1.4、隐变量后验分布与数据点性质

混合模型中,我们会定义隐变量的后验分布:
(6)p(zx,θ)=p(x,zθ)p(xθ)=p(x,zθ)Cp(x,zθ)dz我们变形一下来说明一个重要引理:

【数据点对数密度分解引理】
不完全数据点对数密度可以被分解。
(7)lnp(xiθ)=Eqi[lnp(xi,ziθ)]+H[qi,pi]
它的分解是
1、隐变量后验分布下,完全数据点对数密度期望
2、隐变量后验似然函数分布的交叉熵
证明:
(8)p(xiθ)=p(xi,ziθ)p(zixi,θ)lnp(xiθ)=lnp(xi,ziθ)lnp(zixi,θ)
然后针对一个后验分布 qi=p(zixi,θold)求期望:
(9)Eqi{lnp(xiθ)}=Eqi{lnp(xi,ziθ)}Eqi{lnp(zixi,θ)}
于是有:
(10)lnp(xiθ)=C[lnp(xi,ziθ)×qi]dziC[lnp(zixi,θ)×qi]dzi(11)=Eqi[lnp(xi,ziθ)]+H[qi,pi]证毕。
这一结论是EM算法中隐变量基本变换技巧,起着至关重要的作用。

1.5、隐变量的若干符号

为简洁记,我们定义一下符号,这些符号的定义有助于我们清晰理解EM算法是如何工作的。
qi=p(zixi,θold)pi=p(zixi,θ)
qit=q(zixi,θt)
q=p(DzDx,θold)p=p(DzDx,θ)
qt=p(DzDx,θt)
也就是说隐变量后验分布可以通过参数 θt不断更新。事实上我们可以得到一个隐变量后验分布序列,并且收敛:
(12)qi1qi2qitqit+1qiend

1.6、不完全数据集对数似然函数等价变换

【不完全数据集对数似然函数等价变换引理】
不完全数据集对数似然函数可以被分解。
(13)(Dxθ)=Eq[(D+θ)]+H[q,p]=Eq[(D+θ)]+H[q]+KL[qp]它的分解是
1、隐变量后验分布下,完全数据集对数似然函数的期望
2、隐变量后验似然函数分布的交叉熵

证明:我们参考【数据点对数密度分解引理】和隐变量符号有:
(14)p(Dxθ)=p(D+θ)p(DzDx,θ)lnp(Dxθ)=lnp(D+θ)lnp(DzDx,θ)

针对隐变量数据集的一个新后验分布 q=q(DzDx,θold)求期望有:
(15)Eq[lnp(Dxθ)]=Eq(DzDx,θ)[lnp(D+θ)]Eq(DzDx,θ)[lnp(DzDx,θ)]
于是有:
(16)lnp(Dxθ)=Eq[lnp(D+θ)]Eq[lnp(DzDx,θ)](17)=Eq[lnp(D+θ)]+H[q,p](18)=Eq[(D+θ)]+H[q]+KL[qp]
注意,我们使用了乘法公式、熵的性质从而我们把数据点的规律,上升到数据集。这说明了独立同分布的可以分解性。

1.7、EM算法收敛定律

【EM算法收敛定律】
存在收敛参数,使得不完全数据集对数似然函数的最大化与完全数据集对数似然函数期望的最大化等价。
(19)θendmax(Dxθ)maxEq[(D+θ)]

证明
1、下面我们引入一个辅助函数(auxiliary function): Q(θ,q)Eq[(D+θ)]+H[q]
(20)(Dxθ)=Q(θ,q)+KL[qp](21)Q(θ,q)=Eq[lnp(D+θ)]+H[q](22)Eq[(D+θ)]现在我们略微改变一下辅助函数(auxiliary function) Q的观察视角 :
(23)Q(θ,θt)=Eqt[(D+θ)]+H[qt]

同时有 (Dxθ)Q(θ,θt)Eq[(D+θ)],也就是说 Eq[(D+θ)](Dxθ)的下界。

2、下面我们将要构造出 θend,同时证明最大化等价。
θt+1=argmaxθEqt[(D+θ) 则: Eqt[(D+θt+1)Eqt[(D+θ)]0,同时(Dxθ)Eq[(D+θ)]于是有
(24)(Dxθt+1)(Dxθ)(25)Q(θt+1,θt)Q(θ,θt)(26)Eqt[(D+θt+1)Eqt[(D+θt)]0
通过迭代 θ, 使得 (Dxθt+1)(Dxθt)t步收敛后从而实现 maxθt+1(Dθt+1)
这就证明了结论。

1.8、EM算法

我们总结前面的结论,写出EM算法。


算法:EM算法



1 θ0=a
2 p(Dzπ)=i=1Np(zπ)
3 while Eqt[(D+θt+1)=converged :
 E step—————-q(DzDx,θt)=p(Dx,Dzθt)CNp(Dx,Dzθt)dDzp(Dx,Dzθ)=p(DxDz,θ)p(Dzπ)=i=1Np(xz,θ)×i=1Np(zπ)Eqt[(D+θ)]=q(DzDx,θt)lnp(Dx,Dzθ)dDz M step—————-θt+1=argmaxθEqt[(D+θ)
4 θend

#end while


二、评述

1、EM算法的关键在于引入隐变量,然后我们考察它的先验、后验和完全数据集分布,于是我们得到: 不完全数据集对数似然函数等价变换
(27)(Dxθ)=Eq[(D+θ)]+H[q,p]=Eq[(D+θ)]+H[q]+KL[qp]正是因为如此,我们才有了【EM算法收敛定律】:
(28)θendmax(Dxθ)maxEq[(D+θ)]


版权声明
引线小白创作并维护的柠檬CC博客采用署名-非商业-禁止演绎4.0国际许可证。
本文首发于柠檬CC [ https://www.limoncc.com ] , 版权所有、侵权必究。
本文永久链接httpss://www.limoncc.com/post/baeffd0a1d876b77/
如果您需要引用本文,请参考:
引线小白. (Mar. 13, 2017). 《EM算法和混合模型一:EM算法》[Blog post]. Retrieved from https://www.limoncc.com/post/baeffd0a1d876b77
@online{limoncc-baeffd0a1d876b77,
title={EM算法和混合模型一:EM算法},
author={引线小白},
year={2017},
month={Mar},
date={13},
url={\url{https://www.limoncc.com/post/baeffd0a1d876b77}},
}

Powered By Valine
v1.5.2
'