高斯混合聚类与EM算法

高斯混分聚类

高斯混合(Mixture-of-Gaussian)聚类采用概率模型来表达聚类原型,我们先大概回忆一下高斯分布的概率密度函数,对于n维样本空间高斯混合聚类与EM算法中的随机变量高斯混合聚类与EM算法,如果高斯混合聚类与EM算法服从高斯分布,其概率密度函数为:

高斯混合聚类与EM算法

我们可以看到其中的高斯分布完全由高斯混合聚类与EM算法高斯混合聚类与EM算法这两个参数确定。为了明确的显示高斯分布与相应参数的依赖关系,将概率密度函数记为高斯混合聚类与EM算法。我们可以定义高斯混合分布为:

高斯混合聚类与EM算法

上面这个式子就是多个高斯分布的概率密度函数加权求和得到了一个混合概率密度。很明显高斯混合聚类与EM算法。 高斯混合聚类与EM算法为相应的混合系数。所以我们得到了高斯混合分布的概率密度函数:

高斯混合聚类与EM算法

所以我们如何使用高斯分布来进行我们的聚类。

前提:样本的生成过程由高斯混合分布给出。首先,根据混合系数高斯混合聚类与EM算法定义的先验分布来选择高斯混合成分,就是说我这个样本到底是符合哪个高斯分布,高斯混合聚类与EM算法分别对应k个高斯分布的系数;然后,根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本。个人理解就是:这些样本要不就符合单个的高斯分布函数,要不就符合混合高斯分布函数,那既然是这样,我们就能通过估计具体的参数来判断样本到底属于什么样的高斯分布,属于相同参数的高斯分布自然聚为一个簇。

如果训练集高斯混合聚类与EM算法由上述过程产生,令随机变量高斯混合聚类与EM算法表示生成样本高斯混合聚类与EM算法的高斯混合成分,其取值未知,显然,高斯混合聚类与EM算法的先验概率高斯混合聚类与EM算法对应于高斯混合聚类与EM算法(i=1,2,...,k),这个应该是不难理解,上面说了高斯混合聚类与EM算法表示混合系数,高斯混合聚类与EM算法对应第i个高斯分布的系数,高斯混合聚类与EM算法越大,对应的高斯分布所占所有的高斯分布成分就越大。根据贝叶斯定理,高斯混合聚类与EM算法的后验分布对应于:

高斯混合聚类与EM算法

条件概率的公式P(A|B) = P(AB)/P(B) = P(A)P(B|A)/P(B),将上面的式子套入条件概率的公式中是很容易得到的。这个公式变来变去就是想用尽可能已知的量来求出样本高斯混合聚类与EM算法的高斯混合成分,这个样本到底是由哪个高斯分布或者哪几个高斯分布混合在一起产生的。其中:高斯混合聚类与EM算法就是表示在第i个高斯分布下,样本高斯混合聚类与EM算法的密度,这个式子就是等于:高斯混合聚类与EM算法,其中高斯混合聚类与EM算法就是第i个高斯分布的参数,这个应该没什么不好理解的。正式一点说:高斯混合聚类与EM算法给出了样本高斯混合聚类与EM算法由第i个高斯混合成分生成的后验概率,为了方便叙述,将其简记高斯混合聚类与EM算法

当我们的高斯混合分布也就是高斯混合聚类与EM算法已知的时候,高斯混合聚类把样本集D划分为k个簇高斯混合聚类与EM算法,每个样本高斯混合聚类与EM算法的簇标记高斯混合聚类与EM算法如下确定:

高斯混合聚类与EM算法

所以到这里为止,高斯混合分布到底是在求什么??   假设们现在已经知道了有m个样本是由参数相同的高斯混合分布产生,也就是说这m个样本中的每一个样本都是服从同一个高斯混合分布,那么明显这m个样本是要聚为同一个簇的,根据我们上面的式子,这m个样本中每个样本的概率密度函数为:高斯混合聚类与EM算法,j属于m。那么当我们的样本来的时候,我们并真不知道样本到底服从什么样的高斯混合模型,那么我们就从这m个样本下手,我们最大化这m个样本的概率,换句话说就是在最大化他们属于同一分布的概率:高斯混合聚类与EM算法,这个时候最大似然估计派上用场,为了方便计算,我们取对数,变成累加的形式:

高斯混合聚类与EM算法

上面这个式子就是用EM算法记性求解,所以高斯混合分布就是EM算法的一个应用。 首先我们按照最大似然估计的算法来求解,要求上面式子LL(D)的最大值,我们对高斯混合聚类与EM算法求导,然后另导数等于0即可,高斯混合聚类与EM算法。我们可以得到:

高斯混合聚类与EM算法

上面我们为了简化,将高斯混合聚类与EM算法(样本高斯混合聚类与EM算法由第i个高斯混合成分生成的后验概率记为高斯混合聚类与EM算法,所以:

高斯混合聚类与EM算法

 类似的,高斯混合聚类与EM算法可以得到:

高斯混合聚类与EM算法

我们不要忘记还有混合系数高斯混合聚类与EM算法>0需要求解,并且高斯混合聚类与EM算法 ,我们这时候可以当做带有约束条件的求极值:

高斯混合聚类与EM算法    , subject to: 高斯混合聚类与EM算法

使用拉格朗日乘子法,考虑LL(D)的拉格朗日形式:

高斯混合聚类与EM算法

上式对高斯混合聚类与EM算法求导,然后将其导数等于0:

高斯混合聚类与EM算法

可得高斯混合聚类与EM算法并且高斯混合聚类与EM算法。这个就是求解过程。 

与EM算法的联系

上面的部分是对高斯混合积累的一个推导,如此可以获得高斯混合模型的EM算法:在每步的迭代过程中,先根据当前的参数来计算每个样本属于每个高斯成分的后验概率高斯混合聚类与EM算法(E步),再根据上面求解出高斯混合聚类与EM算法的式子跟新模型参数高斯混合聚类与EM算法(M步)。

步骤:

1. 最开始对高斯混合分布的模型参数进行初始化

2. 基于EM算法对模型参数进行迭代跟新

3. 如果EM算法的停止条件满足(例如已经达到了最大迭代数,或者似然函数LL(D)增长很少甚至不再增长),返回结果。

我们也使用西瓜书上的例子来加深理解:

高斯混合聚类与EM算法

以上为我们高斯混合聚类的样本集,一共有三十个。我们令高斯混合成分的个数k=3,明显这需要我们自己指定。

1. 初始化高斯混合分布中的模型参数:高斯混合聚类与EM算法高斯混合聚类与EM算法;计算出协方差矩阵:

高斯混合聚类与EM算法

 协方差矩阵的计算见https://www.jianshu.com/p/aee3dbcc6fe6

2. 计算样本由各混合成分生成的后验概率:

高斯混合聚类与EM算法

高斯混合聚类与EM算法为例:高斯混合聚类与EM算法,即高斯混合聚类与EM算法  这一步计算完所有样本由混合成分生成的后验概率。

3. 根据我们上面使用最大似然估计和拉格朗日乘子法推导的公式:高斯混合聚类与EM算法高斯混合聚类与EM算法高斯混合聚类与EM算法来跟新参数高斯混合聚类与EM算法

高斯混合聚类与EM算法

4. 重复2、3步骤,直到停止条件满足。

最后的结果可视化:

高斯混合聚类与EM算法

EM算法一般条件下的收敛并不一定是全局最优,其迭代过程很容易陷入局部最优,高斯中的混合成分需要我们自己指定,高斯混合分布完全是建立在概率论的数学基础上,有很强的解释性。