机器学习算法——EM算法

介绍
理论分析

现在,已经知道目标函数(似然函数)

max J(Θ)=P(X|Θ),
假设隐变量为Z,那么可以写成
 J(Θ)=ZP(X,Z|Θ),

我们假设当前的参数为 Θi ,那么可以得到
J(Θ)J(Θi)=logP(X|Θ)logP(X|Θi)=logZP(X,Z|Θ)logP(X|Θi)=logZP(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 函数:
Q(Θ,Θi)=ZP(Z|X,Θi)logP(X,Z|Θ)=EZ[logP(X,Z|Θ)|(X,Θi).]

以上的推导来自于参考文献[1].
在别的地方有看到过另一种解释方法,引入了 Z 的分布函数,并利用到泛函及KL散度,等后面有机会碰到,详细理解之后再补充本文.

例:高斯混合模型

高斯混合模型是多个高斯分布的线性组合,可以用来拟合比较复杂的分布函数。形式如下:

P(x)=k=1KαkN(x|(μk,σ2k))(1)
,其中
N(x|(μk,σk))=12πσkexp{(xμk)22σ2k}(2)

于是这个概率模型的参数 Θ=(αk,μk,σk) 。为了得到高斯混合模型,需要得到这些参数的值。
假设样本的生成过程由高斯混合分布给出。首先,根据 α1,,αK 定义的先验分布选择高斯混合成分,其中 αk 为选择第 k 个混合成分的概率;然后,根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本。从(1)式代表的分布中采样,数据点x来自第k个分模型的概率为αkN(x|(μk,σ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=1Nk=1K(αkN(x|(μk,σk))znk

取对数,得
logP(X,Z|Θ)=n=1Nk=1Kznklogαk+n=1Nk=1KznklogN(x|μk,σk)(5)

于是高斯混合模型的Q函数为:
Q(Θ,Θi)=EZ[logP(X,Z|Θ)|(X,Θi)]=n=1Nk=1KE(znk|xn,θi)logαk+n=1Nk=1KE(znk|xn,θi)logN(x|μk,σk)(6)

把(2)和(4)代入,对每个参数求导,导数为0的点即 Θi+1 对应的参数。

例:伯努利混合模型
例:HMM
例:Naive Bayes的无参估计
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值