600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 高斯混合模型 GMM

高斯混合模型 GMM

时间:2020-08-20 19:55:55

相关推荐

高斯混合模型 GMM

在一般的分类问题中,通常的套路都是提取特征,将特征输入分类器训练,得到最终的模型。但是在具体操作时,一开始提出的特征和输入分类器训练的特征是不一样的。比如假设有N张100×100的图像,分别提取它们的HoG特征x∈Rp×q,p为特征的维数,q为这幅图像中HoG特征的个数。

如果把直接把这样的一万个x直接投入分类器训练,效果不一定好,因为不一定每个像素点的信息都是有价值的,里面可能有很多是冗余的信息。而且特征维度太高会导致最终的训练时间过长。

所以通常会对raw features做一些预处理。最常用的就是词袋模型(bag of words)。

Alt text

上图中k-means+featuresc encoding这一步就是典型的词袋模型。K-means是最常用的聚类方法之一,我们的例子中,有N幅图像,每幅图像有x∈Rp×q的特征,那么所有数据的特征矩阵为X∈Rp×Nq。也就是说现在一共存在Nq个数据点,它们分布在一个p维的空间中,通过聚类后可以找到M个聚类中心。然后对于每一幅图像而言,分别计算它的q个p维特征属于哪一个聚类中心(距离最近),最终统计M个聚类中心分别拥有多少特征,得到一个M维的向量。这个向量就是最终的特征。

k-means的缺点在于,它是一个hard聚类的方法,比如有一个点任何一个聚类中心都不属于,但是词袋模型仍然可能会把它强行划分到一个聚类中心去。对于一个点,它属不属于某个聚类中心的可能性是个属于(0,1)的整数值。

相反,高斯混合模型(Gaussian Mixture Model) 就是一种soft聚类的方法,它建立在一个重要的假设上,即任意形状的概率分布都可以用多个高斯分布函数去近似。顾名思义,高斯混合模型是由很多个高斯分布组成的模型,每一个高斯分布都是一个component。每一个component Nk∼(μk,σk),k=1,2,…K对应的是一个聚类中心,这个聚类中心的坐标可以看作(μk,σk),对于一个点xi它属于第k个聚类中心的可能性pik是一个属于0,1的概率值,也就是说在高斯混合模型中,一个点可以看作是由多个component联合生成的,pik也是数据xi由第k个component生成的概率。

所以当给定N张图像的训练集合x1,x2,…,xN,那么自然而然的想到可以尝试利用多个高斯分布函数的线性组合拟合x的分布。 那么假设有k个高斯分布,每个分布称为一个component,则

其中p(x|k)~N(μk,σk),设p(k)=πk表示的是第k个高斯分布的被选中的概率,也就是权重。现在的任务就是找到(μk,σk,πk)k=1,…,K,令已知的 x1,x2,…,xN 分布存在的可能性最大,也就是i似然函数最大。

故有

对上式分别对于μ,Σ,ϕ求偏导并置于0,就可以求出最优的参数。但是上式中又有加和,我们没法直接用求导解方程的办法直接求得最大值。

所以一般解高斯混合模型都用的是EM算法。

EM算法分为两步:

在E-step中,估计数据由每个component生成的概率。

假设μ,Σ,ϕ已知,对于每个数据 xi 来说,它由第k个component 生成的概率为

在M-step中,估计每个component的参数μk,Σk,πkk=1,…K

利用上一步得到的pik,它是对于每个数据 xi 来说,它由第k个component生成的概率,也可以当做第k个component在生成这个数据上所做的贡献,或者说,我们可以看作 xi这个值其中有pikxi 这部分是由 第k个component所生成的。现在考虑所有的数据,可以看做第k个component生成了 p1kx1,…,pNkxN 这些点。由于每个component 都是一个标准的 Gaussian 分布,可以很容易的根据期望、方差的定义求出它们:

重复迭代前面两步,直到似然函数的值收敛为止。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。