EM算法

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

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

1 Jensen不等式

设f是定义域为实数的函数,如果对于所有的实数x, f ′ ′ ( x ) ≥ 0 f^{''}(x) \geq 0 f(x)0,那么f是凸函数。当x是向量时,如果其Hessian矩阵H是半正定的( H ≥ 0 H \geq 0 H0),那么f是凸函数。如果 f ′ ′ ( x ) > 0 f^{''}(x) > 0 f(x)>0 H > 0 H > 0 H>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 ) ) = 1 p(x = E(x)) = 1 p(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算法

给定训练样本集 { x 1 , x 2 , ⋯   , x m } \{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 = 1 m log ⁡ p ( x ; θ ) = ∑ i = 1 m log ⁡ ∑ z p ( 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,我们假设分布 Q i Q_i Qi表示样例隐含的类别的分布,那么有 Q i ( z ) ≥ 0 , ∑ z Q i ( z ) = 1 Q_i (z)\geq 0,\sum_zQ_i(z) = 1 Qi(z)0,zQi(z)=1

对于上面介绍的最大似然估计,有:
(1) ∑ i log ⁡ p ( x ( i ) ; θ ) = ∑ i log ⁡ ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) = ∑ i log ⁡ ∑ z ( i ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ≥ ∑ i ∑ z ( i ) Q i ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) Q i ( 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 ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) Q i ( 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 ) ; θ ) Q i ( 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 = x k ) = p k , k = 1 , 2 , ⋯ P(X = x_k) = p_k,k=1,2,\cdots P(X=xk)=pkk=1,2,。若 ∑ k = 1 ∞ g ( x k ) p k \sum_{k=1}^{\infty}g(x_k)p_k k=1g(xk)pk绝对收敛,则有
E ( Y ) = E [ g ( X ) ] = ∑ k = 1 ∞ g ( x k ) p k E(Y) = E[g(X)] = \sum_{k=1}^{\infty}g(x_k)p_k E(Y)=E[g(X)]=k=1g(xk)pk

上述等式(1)可以看作是对 l ( θ ) l(\theta) l(θ)求了下界。对于 Q i Q_i Qi的选择,有多种可能,哪个更好呢?假设 θ \theta θ已经给定,那么 l ( θ ) l(\theta) l(θ)的值就取决于 Q i ( 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 ) ; θ ) Q i ( z ( i ) ) = c \frac{p(x^{(i)},z^{(i)};\theta)}{Q_i(z^{(i)})} = c Qi(z(i))p(x(i),z(i);θ)=c

由于 ∑ z Q i ( z ( i ) ) = 1 \sum_zQ_i(z^{(i)}) = 1 zQi(z(i))=1,那么也就有 ∑ z p ( x ( i ) , z ( i ) ; θ ) = c \sum_zp(x^{(i)},z^{(i)};\theta) = c zp(x(i),z(i);θ)=c(因为多个分子分母相加不变,那么认为每个样例的两个概率比值都是c),因此有:
Q i ( z ( i ) ) = p ( x ( i ) , z ( i ) ; θ ) ∑ z p ( 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);θ)

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

一般EM算法的步骤如下:
循环直至收敛{
(E步)对于每一个样本i,计算:
Q i ( 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步)计算
θ : = a r g   m a x θ ∑ i ∑ z ( i ) Q i ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) Q i ( 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步:
Q i ( 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 ) Q i ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) Q i ( 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步,固定 Q i ( 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 ) Q i ( t ) ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ( t + 1 ) ) Q i ( t ) ( z ( i ) ) ≥ ∑ i ∑ z ( i ) Q i ( t ) ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ( t ) ) Q i ( 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步得到 Q i Q_i Qi时才成立。
第二步利用了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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值