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

和方差
,同时有一个权重
,于是概率密度写成
举个例子,假设有两个分模型,用他们来生成数据,分模型的分布为
和
,权重分别为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的优势:可以给出一个样本属于某类的概率是多少;除了聚类,还可用于概率密度的估计。