介绍
理论分析
现在,已经知道目标函数(似然函数)
max J(Θ)=P(X|Θ),
假设隐变量为Z,那么可以写成
J(Θ)=∑ZP(X,Z|Θ),
我们假设当前的参数为 Θi ,那么可以得到
J(Θ)−J(Θi)=logP(X|Θ)−logP(X|Θi)=log∑ZP(X,Z|Θ)−logP(X|Θi)=log∑ZP(Z|X,Θi)P(X,Z|Θ)P(Z|X,Θi)−logP(X|Θi)≥∑ZP(Z|X,Θi)logP(X,Z|Θ)P(Z|X,Θi)−logP(X|Θi).
最后的不等式用的是Jenson不等式,即当 f(x) 为凸函数时,有
f(E(x))≥E(f(x)).
另不等式右边的项为 B(Θ,Θi) ,那么可以得到:
J(Θi)=B(Θ,Θi).
现在知道 J(Θ) 的下界函数为
B(Θ,Θi)+J(Θi)
,只要求得参数
Θ
使得
B(Θ,Θi)
增加,就可以保证
J(Θ)
也是增加的.于是优化目标转换成最大化
B(Θ,Θi)
,并且可以进一步化简,即去除关于
Θ
的常数项,于是得到EM算法中最重要的
Q
函数: 以上的推导来自于参考文献[1].
在别的地方有看到过另一种解释方法,引入了 Z 的分布函数,并利用到泛函及KL散度,等后面有机会碰到,详细理解之后再补充本文.
例:高斯混合模型
高斯混合模型是多个高斯分布的线性组合,可以用来拟合比较复杂的分布函数。形式如下:
N(x|(μk,σk))=12π−−√σkexp{−(x−μk)22σ2k}(2)
于是这个概率模型的参数 Θ=(αk,μk,σk) 。为了得到高斯混合模型,需要得到这些参数的值。
假设样本的生成过程由高斯混合分布给出。首先,根据 α1,…,αK 定义的先验分布选择高斯混合成分,其中 αk 为选择第 k 个混合成分的概率;然后,根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本。从(1)式代表的分布中采样,数据点x来自第k个分模型的概率为
假设我们已经以分布 P(x) 采样得到样本集 {x1,x2,...,xN} 。这样样本来自哪个模型,就可以看作是隐藏状态,我们用随机变量 znk 表示 xn 是否来自第k个模型:
znk={0,1,if xn comes from modelkif xn doesn't come from modelk.(3)
于是,对每个样本点,我们有一组随机变量 zn=(zn1,zn2,...,znK) 。Great!这些变量就是隐变量!现在可以用到刚好适用于含有隐变量的概率模型的参数学习的算法——EM算法。从前面对EM算法的介绍中,我们已经知道了,EM算法需要求解两组概率 P(z|x,Θ) , P(x,z|Θ) :
P(znk=1|xn,Θ)=P(znk,xn|Θ)P(xn|Θ)=αkN(x|(μk,σk)∑Kk=1αkN(x|(μk,σk))(4)
不难理解,(4)式也可以写成:
E((znk)|xn,Θ)=P(znk=1|xn,Θ)
另一方面:
P(X,Z|Θ)=∏n=1NP(xn,zn)=∏n=1NP(xn,(zn1,zn2,...,znK)|Θ)=∏n=1N∏k=1K(αkN(x|(μk,σk))znk
取对数,得
logP(X,Z|Θ)=∑n=1N∑k=1Kznklogαk+∑n=1N∑k=1KznklogN(x|μk,σk)(5)
于是高斯混合模型的Q函数为:
Q(Θ,Θi)=EZ[logP(X,Z|Θ)|(X,Θi)]=∑n=1N∑k=1KE(znk|xn,θi)logαk+∑n=1N∑k=1KE(znk|xn,θi)logN(x|μk,σk)(6)
把(2)和(4)代入,对每个参数求导,导数为0的点即 Θi+1 对应的参数。