聚类模型-EM算法

聚类模型

1、层次聚类
2、原型聚类-K-means
3、模型聚类-GMM
4、EM算法-LDA主题模型
5、密度聚类-DBSCAN
6、图聚类-谱聚类

四、EM算法

一、EM算法

​ EM算法是一种迭代算法,用于带隐变量的概率模型参数的极大似然估计,是无监督学习中一大类算法求解的算法。EM算法每次迭代由两步组成,E步:假设隐变量和特征变量的联合分布P(x,z;θ),求解样本关于隐变量z的概率函数(使Jensen不等式等号成立),M步:在已知样本(x,z)的联合分布(确定样本特征和类标),采用极大似然估计最大化似然函数求解参数θ

在讨论EM算法之前,先介绍Jensen inequality(由凸函数性质导出)

假设f是定义在实数上的凸函数,由凸函数的定义有:

f(λx(1)+(1λ)x2)λf(x(1))+(1λ)f(x2)

严格凸函数则严格大于,凸函数的判定是其二阶可微的话,其Hesse矩阵半正定。对凸函数的性质推广有:
f(i=1k(λix(i)))i=1mλif(x(i))s.t.i=1mλi=1,λi0

λi表示f(x(i)),x(i)的概率时,那么有:
f(E(x))E(f(x))

当且仅当:p(f(x)=c)=1,即f(x)为常数函数,等号成立。

聚类模型-EM算法

反之,对于凹函数不等式方向相反。

现在来看EM算法,给定训练样本{x(1),x(2),..x(m)},引入隐含的类别标签z(i),在有监督方法中,最大对数似然函数L=p(z|x;θ),同样这里最大化对数似然函数的L=(x(i);θ)在隐变量z(i)的全期望:

(1)L(θ)=i=1mlogP(x(i);θ)(2)=i=1mlogz(i)P(x(i),z(i);θ)(3)L(θ,Q(z))=i=1mlogz(i)Qi(z(i))P(x(i),z(i);θ)Qi(z(i))(4)i=1mz(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))

其中Qi(z(i))为样本的隐变量z(i)的概率分布,zQi(z(i))=1,Qi(z(i))0。不同Q(z)选择,会得到EM在不同情况下的模型,比如高斯混合,朴素贝叶斯混,LDA等。

因为log函数是一个严格凹函数,由Jessen不等式有:

log(E(g(x))E(log(g(x))log(z(i)Qi(z(i))P(x(i),z(i);θ)Qi(z(i)))z(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))

其中g(x)=P(x(i),z(i)|θ)Qi(z(i)),因此当且仅当,g(x)=c,等号成立。

因为zQi(z(i))=1,Qi(z(i))0,所以Qi(z(i))可以看做是样本关于隐变量z的概率分布,等于x,z联合概率归一化,即比上联合概率对z的全期望:

(5)Qi(z(i))=p(x(i),z(i);θ)zp(x(i),z(i);θ)(6)=p(x(i),z(i);θ)p(x(i);θ)(7)=p(z(i)|x(i);θ)

因此,EM算法的第一步就是计算在给定θ下隐变量z的条件概率。

当已知Q(z)之后,且Jessen不等式等号成立,回过头来再最大化似然函数:

(8)argmaxθL(θ,Q(z))=i=1mlogz(i)Qi(z(i))P(x(i),z(i);θ)Qi(z(i))(9)=i=1mz(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))

因此,EM算法的极大似然估计可以看作是坐标上升过程,第一步在给定的参数θ下最大化似然函数L(Q(z);θ),第二步则是在当前的Q(z)下最大化似然函数L(θ;Q(z))

收敛性:

(10)L(θt+1)=i=1mlogz(i)Qi(z(i))P(x(i),z(i);θt+1)Qi(z(i))(11)i=1mz(i)P(z(i)|x(i),θt)logP(z(i),x(i);θt+1)P(z(i)|x(i);θt)(12)i=1mz(i)P(z(i)|x(i);θt)logP(z(i),x(i);θt)P(z(i)|x(i);θt))(13)=L(θt)

L(Q(z),θ(i))L(Q(z),θ(i+1))L(Q(z),θ(i+1))

下面的第一个不等号由由最大似然估计得到θ(i+1),第二个不等号Jessen不等式得到Q(z)=p(z(i)|x(i);θ),但是求解过程是先由Jessen不等式确定似然函数的下界,后最大似然函数下界。

EM算法的一般流程:

E-step:(固定参数下,求隐变量条件分布)

(14)Qi(z(i))=p(z(i)|x(i);θ)

M-step:(最大化似然函数下界)
(15)argmaxθi=1mz(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))

EM求解的过程大致如图所示,是否能收敛到全局最优,取决于目标函数是否为凸函数:

聚类模型-EM算法

从上图可以看出,EM算法的思想也是坐标上升的思想,即固定一组变量求解另一组变量,不断地迭代。比较特殊的,EM算法针对于带隐变量的概率模型参数的极大似然估计,求解过程又称“期望最大化”,第一步求期望,第二步最大化,这是带隐变量的概率模型特有的,不是EM算法的特点。

二、EM算法例子-高斯混合,朴素贝叶斯混合

高斯混合模型

​ 为什么采用EM算法求解高斯混合模型,回顾高斯混合模型的目标函数,我们发现log函数在求和外面。特别的情况是当类标签已知,像高斯判别模型那么进行参数估计,然而在混合高斯模型中。而隐变量却是未知,所以我们很难直接优化,采用EM算法的Jessen不等式,我们将log函数放到里面,并使等号成立,对目标函数进行转化:

L(θ)=i=1mlogz(i)=1k(P(x(i),z(i);μ,Σ,Φ))L(θ,)i=1mz(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))

其中Qi(z(i))条件概率分布P(z|x;θ)

下面从EM思想来看高斯混合模型,给出高斯混合模型最大似然估计计算出参数的推导过程:

E-step:(固定参数下,求隐变量条件分布)

wj(i)=Q(z(i)=j)=p(z(i)|x(i);μ,Σ,ϕ)=p(x(i)|z(i);μ,Σ)p(z(i)=j;ϕ)j=1kp(x(i)|z(i)=j;μ,Σ)p(z(i)=j;ϕ)

其中p(x|z)服从高斯分布,p(z)服从伯努利分布。

M-step:(最大化似然函数下界)

(35)argmaxθL(θ,Q(z))=i=1mlogz(i)Qi(z(i))P(x(i),z(i);θ)Qi(z(i))(36)i=1mz(i)Qi(z(i))logP(x(i)|z(i);μ,Σ)P(z(i);ϕ)Qi(z(i))(37)=i=1mj=1kwj(i)log1(2π)n/2|Σ|1/2exp{12(xμ)TΣ1(xμ)}ϕjwj(i)

μ,Σ,ϕ求导:
(38)μji=1mj=1kwj(i)log1(2π)n/2|Σ|1/2exp{12(xμ)TΣ1(xμ)}ϕjwj(i)(39)=μji=1mj=1kwj(i){12(xμ)TΣ1(xμ)}ϕj(40)=12i=1mwj(i)μj2μjTΣj1x(i)μjTΣj1μj(41)=Σi=1mwj(i)(Σj1Σj1μj)

令导数为0,有:
μj=i=1mwj(i)1{z(i)=j}x(i)i=1m1{z(i)=j}

对目标函数求解参数ϕ,去掉无关项,有:
i=1mj=1kwj(i)logϕj

j=1kϕj=1,对其拉格朗日函数求导:
ϕjL(ϕ,β)=ϕji=1mj=1kwj(i)logϕj+β((j=1kϕj)1)=i=1mwj(i)ϕj+β

令其导数为0,有:
ϕj=i=1mwj(i)β

所以,ϕji=1mwj(i),又jϕj=1,所以得β=i=1mj=1kwj(i)=m

所以:

ϕj=i=1mwj(i)m