单高斯分布模型GSM


多维变量X服从高斯分布时,它的概率密度函数PDF为:

高斯混合模型分布的图形r语言 高斯混合模型聚类算法_GMM

x是维度为d的列向量,u是模型期望,Σ是模型方差。在实际应用中u通常用样本均值来代替,Σ通常用样本方差来代替。很容易判断一个样x本是否属于类别C。因为每个类别都有自己的u和Σ,把x代入(1)式,当概率大于一定阈值时我们就认为x属于C类。

从几何上讲,单高斯分布模型在二维空间应该近似于椭圆,在三维空间上近似于椭球。遗憾的是在很多分类问题中,属于同一类别的样本点并不满足“椭圆”分布的特性。这就引入了高斯混合模型。

高斯混合模型GMM

每个 GMM 由 

 个 Gaussian 分布组成,每个 Gaussian 称为一个“Component”,这些 Component 线性加成在一起就组成了 GMM 的概率密度函数:每个 GMM 由 

GMM 的概率密度函数:

由于式子里的 

 和 

 也是需要我们估计的值,我们采用迭代法,在计算 

 的时候我们假定 

 和 

 均已知,我们将取上一次迭代所得的值(或者初始值)。

  • 估计每个 Component 的参数:现在我们假设上一步中得到的  就是正确的“数据 由 Component  生成的概率”,亦可以当做该 Component 在生成这个数据上所做的贡献,或者说,我们可以看作  这个值其中有  这部分是由 Component 所生成的。集中考虑所有的数据点,现在实际上可以看作 Component 生成了  这些点。由于每个 Component 都是一个标准的 Gaussian 分布,可以很容易分布求出最大似然所对应的参数值:
<img src="http://blog.pluskid.org/latexrender/pictures/96b3a1fb485a96d3d3e21594d2bbcd69.png" _xhe_src="http://blog.pluskid.org/latexrender/pictures/96b3a1fb485a96d3d3e21594d2bbcd69.png" title="" \displaystyle"="" alt="" align="absmiddle" style="border: 0px; margin-left: auto; margin-right: auto;">

其中 

 ,并且 

 也顺理成章地可以估计为 

 。

  • 重复迭代前面两步,直到似然函数的值收敛为止。当参数收敛,则创建出K个模型,如何使用这K个模型进行分类呢?GMM是一种聚类算法,每个component就是一个聚类中心。即在只有样本点,不知道样本分类(含有隐含变量)的情况下,计算出模型参数(π,u和Σ)----这显然可以用EM算法来求解。再用训练好的模型去差别样本所属的分类,方法是:step1随机选择K个component中的一个(被选中的概率是
    πk);step2把样本代入刚选好的component,判断是否属于这个类别,如果不属于则回到step1。