多维变量X服从高斯分布时,它的概率密度函数PDF为:
x是维度为d的列向量,u是模型期望,Σ是模型方差。在实际应用中u通常用样本均值来代替,Σ通常用样本方差来代替。很容易判断一个样x本是否属于类别C。因为每个类别都有自己的u和Σ,把x代入(1)式,当概率大于一定阈值时我们就认为x属于C类。
从几何上讲,单高斯分布模型在二维空间应该近似于椭圆,在三维空间上近似于椭球。遗憾的是在很多分类问题中,属于同一类别的样本点并不满足“椭圆”分布的特性。这就引入了高斯混合模型。
高斯混合模型GMM
每个 GMM 由 个 Gaussian 分布组成,每个 Gaussian 称为一个“Component”,这些 Component 线性加成在一起就组成了 GMM 的概率密度函数:
每个 GMM 由 个 Gaussian 分布组成,每个 Gaussian 称为 一个“Component”,这些 Component 线性加成在一起就组成了GMM 的概率密度函数:
- 估计每个 Component 的参数:现在我们假设上一步中得到的 就是正确的“数据 由 Component 生成的概率”,亦可以当做该 Component 在生成这个数据上所做的贡献,或者说,我们可以看作 这个值其中有 这部分是由 Component 所生成的。集中考虑所有的数据点,现在实际上可以看作 Component 生成了 这些点。由于每个 Component 都是一个标准的 Gaussian 分布,可以很容易分布求出最大似然所对应的参数值:
其中 ,并且 也顺理成章地可以估计为 。
- 重复迭代前面两步,直到似然函数的值收敛为止。当参数收敛,则创建出K个模型,如何使用这K个模型进行分类呢?
GMM是一种聚类算法,每个component就是一个聚类中心。即在只有样本点,不知道样本分类(含有隐含变量)的情况下,计算出模型参数(π,u和Σ)----这显然可以用EM算法来求解。再用训练好的模型去差别样本所属的分类,方法是:step1随机选择K个component中的一个(被选中的概率是
πk);step2把样本代入刚选好的component,判断是否属于这个类别,如果不属于则回到step1。