EM算法

“种一棵树最好的时间是十年前,其次是现在”

EM算法,Expectation-Maximization,期望最大算法。EM算法用于解决包含隐变量的参数估计问题。

1 Jensen不等式

设f是定义域为实数的函数,如果对于所有的实数x,f′′(x)≥0f^{''}(x) \geq 0f(x)0,那么f是凸函数。当x是向量时,如果其Hessian矩阵H是半正定的(H≥0H \geq 0H0),那么f是凸函数。如果f′′(x)>0f^{''}(x) > 0f(x)>0H>0H > 0H>0,那么称f是严格的凸函数。

Jensen不等式如下表述:
如果f是凸函数,X是随机变量,那么
E(f(x))≥f(E(X))E(f(x)) \geq f(E(X))E(f(x))f(E(X))

特别地,如果f是严格凸函数,那么E(f(X))=f(E(X))E(f(X)) = f(E(X))E(f(X))=f(E(X))当且仅当p(x=E(x))=1p(x = E(x)) = 1p(x=E(x))=1,也就是x是常量。
在这里插入图片描述

当f是(严格)凸函数当且仅当-f是(严格)凸函数。
当Jensen不等式应用于凹函数时,不等式反号,即E[f(X)]≤f(E[X])E[f(X)] \leq f(E[X])E[f(X)]f(E[X])

2 EM算法

给定训练样本集{x1,x2,⋯ ,xm}\{x_1,x_2,\cdots,x_m\}{x1,x2,,xm},样例间相互独立,我们的目的是找到每个样例的隐含类别z,从而能够使得p(x,z)p(x,z)p(x,z)最大。p(x,z)的最大似然估计为:
l(θ)=∑i=1mlog⁡p(x;θ)=∑i=1mlog⁡∑zp(x,z;θ) l(\theta) = \sum_{i=1}^{m} \log p(x;\theta) \\ =\sum_{i=1}^{m}\log \sum_z p(x,z;\theta) l(θ)=i=1mlogp(x;θ)=i=1mlogzp(x,z;θ)
第一步是对极大似然求对数,第二步是对每个样例的每个可能类别z求联合概率分布。但是因为有隐变量z的存在,直接求解参数θ\thetaθ一般比较困难。在确定了隐变量z之后,求解参数θ\thetaθ就比较容易了。

EM算法是一种解决存在隐含变量的优化问题的有效方法。既然不能直接最大化l(θ)l(\theta)l(θ),那么我们可以不断的建立函数l的下界(E步),然后在M步中不断的优化该下界。

对于每一个样例i,我们假设分布QiQ_iQi表示样例隐含的类别的分布,那么有Qi(z)≥0,∑zQi(z)=1Q_i (z)\geq 0,\sum_zQ_i(z) = 1Qi(z)0,zQi(z)=1

对于上面介绍的最大似然估计,有:
(1)∑ilog⁡p(x(i);θ)=∑ilog⁡∑z(i)p(x(i),z(i);θ)=∑ilog⁡∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))≥∑i∑z(i)Qi(z(i))log⁡p(x(i),z(i);θ)Qi(z(i))\sum_i \log p(x^{(i)};\theta) = \sum_i \log \sum_{z^{(i)}} p(x^{(i)},z^{(i)};\theta) \\ = \sum_i \log \sum_{z^{(i)}} Q_i(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \\ \geq \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})\log \frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} \tag{1}ilogp(x(i);θ)=ilogz(i)p(x(i),z(i);θ)=ilogz(i)Qi(z(i))Qi(z(i))p(x(i),z(i);θ)iz(i)Qi(z(i))logQi(z(i))p(x(i),z(i);θ)(1)

上式的最后一个不等号式子是利用了Jensen不等式,因为log函数的二阶导数恒小于0,为凹函数。而且∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))\sum_{z^{(i)}} Q_i(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})}z(i)Qi(z(i))Qi(z(i))p(x(i),z(i);θ)p(x(i),z(i);θ)Qi(z(i))\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})}Qi(z(i))p(x(i),z(i);θ)的期望。基于Jensen不等式可得最后一个式子。

补充知识:
X为离散型随机变量,它的分布律P(X=xk)=pk,k=1,2,⋯P(X = x_k) = p_k,k=1,2,\cdotsP(X=xk)=pkk=1,2,。若∑k=1∞g(xk)pk\sum_{k=1}^{\infty}g(x_k)p_kk=1g(xk)pk绝对收敛,则有
E(Y)=E[g(X)]=∑k=1∞g(xk)pkE(Y) = E[g(X)] = \sum_{k=1}^{\infty}g(x_k)p_kE(Y)=E[g(X)]=k=1g(xk)pk

上述等式(1)可以看作是对l(θ)l(\theta)l(θ)求了下界。对于QiQ_iQi的选择,有多种可能,哪个更好呢?假设θ\thetaθ已经给定,那么l(θ)l(\theta)l(θ)的值就取决于Qi(z(i))和p(x(i),z(i))Q_i(z^{(i)})和p(x^{(i)},z^{(i)})Qi(z(i))p(x(i),z(i)),我们可以通过调整这两个概率值使得下界不断上升,以逼近l(θ)l(\theta)l(θ)的最大值,那么什么时候算是调整好了呢?结果就是使得式子(1)中的不等式变成等号的时候。那么在什么时候等式成立呢,按照第一部分对Jensen不等式的阐述可知,只有在变量为常数的时候等号才成立。即p(x(i),z(i);θ)Qi(z(i))=c\frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} = cQi(z(i))p(x(i),z(i);θ)=c

由于∑zQi(z(i))=1\sum_zQ_i(z^{(i)}) = 1zQi(z(i))=1,那么也就有∑zp(x(i),z(i);θ)=c\sum_zp(x^{(i)},z^{(i)};\theta) = czp(x(i),z(i);θ)=c(因为多个分子分母相加不变,那么认为每个样例的两个概率比值都是c),因此有:
Qi(z(i))=p(x(i),z(i);θ)∑zp(x(i),z(i);θ)=p(x(i),z(i);θ)p(x(i);θ)=p(z(i)∣x(i);θ)Q_i(z^{(i)}) = \frac{p(x^{(i)},z^{(i)};\theta)}{\sum_z p(x^{(i)},z^{(i)};\theta)} \\= \frac{p(x^{(i)},z^{(i)};\theta)}{p(x^{(i)};\theta)} \\ = p(z^{(i)}|x^{(i)};\theta)Qi(z(i))=zp(x(i),z(i);θ)p(x(i),z(i);θ)=p(x(i);θ)p(x(i),z(i);θ)=p(z(i)x(i);θ)

至此,我们推导出了,在固定其他参数的情况下,Qi(z(i))Q_i(z^{(i)})Qi(z(i))的计算公式就是后验概率,解决了Qi(z(i))Q_i(z^{(i)})Qi(z(i))如何选择的问题。这一步就是E步,建立似然函数l(θ)l(\theta)l(θ)的下界。接下来就是M步,就是在给定Qi(z(i))Q_i(z^{(i)})Qi(z(i))后,调整θ\thetaθ,去极大化l(θ)l(\theta)l(θ)的下界。

一般EM算法的步骤如下:
循环直至收敛{
(E步)对于每一个样本i,计算:
Qi(z(i)):=p(z(i)∣x(i);θ)Q_i(z^{(i)}) := p(z^{(i)}|x^{(i)};\theta)Qi(z(i)):=p(z(i)x(i);θ)
(M步)计算
θ:=arg maxθ∑i∑z(i)Qi(z(i))log⁡p(x(i),z(i);θ)Qi(z(i))\theta := arg~max_{\theta}\sum_i\sum_{z^{(i)}}Q_i(z^{(i)})\log \frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})}θ:=arg maxθiz(i)Qi(z(i))logQi(z(i))p(x(i),z(i);θ)
}

EM算法收敛性证明:
上面已经说明了EM算法的E步是建立似然函数l(θ)l(\theta)l(θ)的下界,M步是调整参数去极大化l(θ)l(\theta)l(θ)的下界。那么我们该如何保证EM算法一定可以收敛呢?

假定θ(t)\theta^{(t)}θ(t)θ(t+1)\theta^{(t+1)}θ(t+1)是EM算法第t次和第t+1次迭代后的结果,如果能够证明l(θ(t))≤l(θ(t+1))l(\theta^{(t)}) \leq l(\theta^{(t+1)})l(θ(t))l(θ(t+1)),那么就证明了似然函数可以单调增加,那么经过多轮迭代后一定可以得到最大似然估计的最大值。

下面进行证明过程:
选定参数θ(t)\theta^{(t)}θ(t)后,我们就得到了E步:
Qi(z(i)):=p(z(i)∣x(i);θ(t))Q_i(z^{(i)}) := p(z^{(i)}|x^{(i)};\theta^{(t)})Qi(z(i)):=p(z(i)x(i);θ(t))
这一步保证了在给定了θ(t)\theta^{(t)}θ(t)时,Jensen不等式的等号成立,即l(θ(t))=∑i∑z(i)Qi(z(i))log⁡p(x(i),z(i);θ)Qi(z(i))l(\theta^{(t)}) = \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})\log \frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})}l(θ(t))=iz(i)Qi(z(i))logQi(z(i))p(x(i),z(i);θ)

然后进行M步,固定Qi(t)(z(i))Q_i^{(t)}(z^{(i)})Qi(t)(z(i)),上式l(θ(t))l(\theta^{(t)})l(θ(t))θ(t)\theta^{(t)}θ(t)进行求导,再进行一些求导后,可得:
l(θ(t+1))≥∑i∑z(i)Qi(t)(z(i))log⁡p(x(i),z(i);θ(t+1))Qi(t)(z(i))≥∑i∑z(i)Qi(t)(z(i))log⁡p(x(i),z(i);θ(t))Qi(t)(z(i))=l(θ(t))l(\theta^{(t+1)}) \geq \sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta^{(t+1)})}{Q_i^{(t)}(z^{(i)})} \\ \geq \sum_i\sum_{z^{(i)}}Q_i^{(t)}(z^{(i)})\log\frac{p(x^{(i)},z^{(i)};\theta^{(t)})}{Q_i^{(t)}(z^{(i)})} \\ =l(\theta^{(t)}) l(θ(t+1))iz(i)Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t+1))iz(i)Qi(t)(z(i))logQi(t)(z(i))p(x(i),z(i);θ(t))=l(θ(t))

上面推导的第一步是因为得到 θ(t+1)\theta^{(t+1)}θ(t+1)时,只是最大化l(θ(t))l(\theta^{(t)})l(θ(t)),也就是l(θ(t+1))l(\theta^{(t+1)})l(θ(t+1))的下界,而并没有使得等号成立,等式成立只有在固定θ\thetaθ,并按照E步得到QiQ_iQi时才成立。
第二步利用了M步的定义, M步是将θ(t)\theta^{(t)}θ(t)调整到了θ(t+1)\theta^{(t+1)}θ(t+1),使得l(θ(t))l(\theta^{(t)})l(θ(t))最大化。

上面的证明过程说明了l(θ)l(\theta)l(θ)函数会单调增加,因此经过多轮迭代后,会收敛到l(θ)l(\theta)l(θ)的极大值。

3 总结

如果将样本看做是观察值,潜在的样本类别看做是隐含变量,那么聚类问题就是参数估计问题,只不过聚类问题中参数分为隐含类别变量和其他参数。在两类参数都未知时,无法直接求导求解参数,但在固定类别参数时,可以对其他参数进行求导求解。对应到EM算法上,E步是固定其他参数估计隐含的类别参数,方法是求解后验概率;M步是固定隐含的类别参数求解其他参数。依次迭代,将极值推导最大。

混合高斯聚类相比于k-means聚类算法,类别指定是“软”指定,即计算样本属于各类的概率,这样理论上更为合理,但计算量也更大。

参考

CS229

才疏学浅,欢迎批评指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值