聚类模型
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,λi≥0
当
λi表示
f(x(i)),x(i)的概率时,那么有:
f(E(x))≤E(f(x))
当且仅当:
p(f(x)=c)=1,即
f(x)为常数函数,等号成立。
反之,对于凹函数不等式方向相反。
现在来看EM算法,给定训练样本{x(1),x(2),..x(m)},引入隐含的类别标签z(i),在有监督方法中,最大对数似然函数L=p(z|x;θ),同样这里最大化对数似然函数的L=(x(i);θ)在隐变量z(i)的全期望:
L(θ)L(θ,Q(z))=∑i=1mlogP(x(i);θ)=∑i=1mlog∑z(i)P(x(i),z(i);θ)=∑i=1mlog∑z(i)Qi(z(i))P(x(i),z(i);θ)Qi(z(i))≥∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))(1)(2)(3)(4)
其中
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的全期望:
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);θ)(5)(6)(7)
因此,EM算法的第一步就是计算在给定
θ下隐变量
z的条件概率。
当已知Q(z)之后,且Jessen不等式等号成立,回过头来再最大化似然函数:
argmaxθL(θ,Q(z))=∑i=1mlog∑z(i)Qi(z(i))P(x(i),z(i);θ)Qi(z(i))=∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))(8)(9)
因此,EM算法的极大似然估计可以看作是坐标上升过程,第一步在给定的参数
θ下最大化似然函数
L(Q(z);θ),第二步则是在当前的
Q(z)下最大化似然函数
L(θ;Q(z))。
收敛性:
L(θt+1)=∑i=1mlog∑z(i)Qi(z(i))P(x(i),z(i);θt+1)Qi(z(i))≥∑i=1m∑z(i)P(z(i)|x(i),θt)logP(z(i),x(i);θt+1)P(z(i)|x(i);θt)≥∑i=1m∑z(i)P(z(i)|x(i);θt)logP(z(i),x(i);θt)P(z(i)|x(i);θt))=L(θt)(10)(11)(12)(13)
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:(固定参数下,求隐变量条件分布)
Qi(z(i))=p(z(i)|x(i);θ)(14)
M-step:(最大化似然函数下界)
argmaxθ∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))(15)
EM求解的过程大致如图所示,是否能收敛到全局最优,取决于目标函数是否为凸函数:
从上图可以看出,EM算法的思想也是坐标上升的思想,即固定一组变量求解另一组变量,不断地迭代。比较特殊的,EM算法针对于带隐变量的概率模型参数的极大似然估计,求解过程又称“期望最大化”,第一步求期望,第二步最大化,这是带隐变量的概率模型特有的,不是EM算法的特点。
二、EM算法例子-高斯混合,朴素贝叶斯混合
高斯混合模型
为什么采用EM算法求解高斯混合模型,回顾高斯混合模型的目标函数,我们发现log函数在求和外面。特别的情况是当类标签已知,像高斯判别模型那么进行参数估计,然而在混合高斯模型中。而隐变量却是未知,所以我们很难直接优化,采用EM算法的Jessen不等式,我们将log函数放到里面,并使等号成立,对目标函数进行转化:
L(θ)=∑i=1mlog∑z(i)=1k(P(x(i),z(i);μ,Σ,Φ))L(θ,)∑i=1m∑z(i)Qi(z(i))logP(x(i),z(i);θ)Qi(z(i))
其中
Qi(z(i))条件概率分布
P(z|x;θ)。
下面从EM思想来看高斯混合模型,给出高斯混合模型最大似然估计计算出参数的推导过程:
E-step:(固定参数下,求隐变量条件分布)
w(i)j=Q(z(i)=j)=p(z(i)|x(i);μ,Σ,ϕ)=p(x(i)|z(i);μ,Σ)p(z(i)=j;ϕ)∑kj=1p(x(i)|z(i)=j;μ,Σ)p(z(i)=j;ϕ)
其中
p(x|z)服从高斯分布,
p(z)服从伯努利分布。
M-step:(最大化似然函数下界)
argmaxθL(θ,Q(z))=∑i=1mlog∑z(i)Qi(z(i))P(x(i),z(i);θ)Qi(z(i))≥∑i=1m∑z(i)Qi(z(i))logP(x(i)|z(i);μ,Σ)P(z(i);ϕ)Qi(z(i))=∑i=1m∑j=1kw(i)jlog1(2π)n/2|Σ|1/2exp{−12(x−μ)TΣ−1(x−μ)}∗ϕjw(i)j(35)(36)(37)
对
μ,Σ,ϕ求导:
▽μj∑i=1m∑j=1kw(i)jlog1(2π)n/2|Σ|1/2exp{−12(x−μ)TΣ−1(x−μ)}∗ϕjw(i)j=−▽μj∑i=1m∑j=1kw(i)j{12(x−μ)TΣ−1(x−μ)}∗ϕj=12∑i=1mw(i)j▽μj2μTjΣ−1jx(i)−μTjΣ−1jμj=Σmi=1w(i)j(Σ−1j−Σ−1jμj)(38)(39)(40)(41)
令导数为0,有:
μj=∑mi=1w(i)j1{z(i)=j}x(i)∑mi=11{z(i)=j}
对目标函数求解参数
ϕ,去掉无关项,有:
∑i=1m∑j=1kw(i)jlogϕj
由
∑kj=1ϕj=1,对其拉格朗日函数求导:
▽ϕjL(ϕ,β)=▽ϕj∑i=1m∑j=1kw(i)jlogϕj+β((∑j=1kϕj)−1)=∑i=1mw(i)jϕj+β
令其导数为0,有:
ϕj=∑mi=1w(i)j−β
所以,
ϕj∝∑mi=1w(i)j,又
∑jϕj=1,所以得
−β=∑mi=1∑kj=1w(i)j=m
所以:
ϕj=∑i=1mw(i)jm