个人总结:聚类 EM算法与高斯混合模型

前言

高斯分布,即正态分布,是一个很常见的分布,通常身高、分数等大致符合高斯分布。当研究各类数据时,假设同一类的数据符合高斯分布,也是简单自然的假设。所以在聚类时,我们希望将数据划分为一些簇时,可以假设不同簇中的样本各自服从不同的高斯分布,由此得到的聚类算法称为高斯混合模型

高斯混合模型

假设数据可以看作多个高斯分布中生成出来的,每个分模型有自己的期望(均值)和方差,同时有一个权重,于是概率密度写成

举个例子,假设有两个分模型,用他们来生成数据,分模型的分布为,权重分别为0.7和0.3。在生成一个数据点时,按照权重的比例,随机选择一个模型分布,比如选择第一个高斯分布,从产生一个点-0.5,接着生成第二个数据点,随机选择到第二个高斯分布,生成第二个点4.7,继续循环,最后生成所有点。

而我们应用在聚类上,希望观测了一系列点后,给出一个类别的数量K,能够得到最佳的K个高斯分模型。这个问题通常通过最大似然估计来求解,遗憾的是,若直接使用最大似然估计,得到的是一个复杂的非凸函数

在这种情况下,通过EM算法来求解该优化问题。

EM算法

expectation-maximum。

EM算法的提出背景:我们常用最大似然估计来找出样本的最佳参数,但是有时得到的观测数据有未观测到的隐含变量,,因而无法直接计算。

一般来说,假设有m个观察样本,模型参数为θ,最大似然可以写成如下形式

当含有未被观察到的隐含变量时,参数的极大似然估计变为

假设对应的分布为,所以它满足,并对上式做一个变换

引入Jensen不等式

得到

要满足Jensen不等式的等号成立,则有,c为常数。我们已经知道,则认为

,因为之前那个式子代表每个样例比例都是c。则可推出

于是就可以将代入刚刚的不等式右侧,这就得到了损失函数的下界。

现在损失函数变成了L(θ)>=J(z,Q),我们通过优化这个下界,来使L(θ)不断提高,最终达到它的最大值。

这有点像坐标下降法,每次固定一个参数,优化另一个参数。(E步:固定θ,优化Q;M步:固定Q,优化θ)。

但是EM算法只保证收敛到局部最优解,当函数为非凸时,如果初始化在左边的区域,则无法找到右侧的高点

所以EM算法的框架总结如下,由两个步骤进行交替直到收敛:

(1)E步骤:固定θ,对于每一个i,计算隐变量Z的条件概率分布的期望

(2)M步骤:固定Q,最大化

感性地说,因为下界不断提到,所以极大似然估计单调增加,那么最终会达到最大值。

接着高斯混合模型

我们并不知道最佳的K个高斯分布的各自3个参数(期望(均值)和方差,同时有一个权重)。也就是说,每次循环时,先固定当前的高斯分布不变,获得每个数据点由各个高斯分布生成的概率。然后固定该生成概率不变,根据数据点和生成概率,获得一个组更佳的高斯分布。循环往复直到参数不再变化,或者变化很小时,便得到了比较合理的一组高斯分布。

高斯混合模型与K-means

相同点:它们都可以用于聚类;都需要指定K值;都是使用EM算法来求解;都往往收敛于局部最优。

K-means的优势:可以给出一个样本属于某类的概率是多少;除了聚类,还可用于概率密度的估计。

发布了94 篇原创文章 · 获赞 137 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/yyhhlancelot/article/details/96484936