高斯混合模型GMM

Posted zizi7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高斯混合模型GMM相关的知识,希望对你有一定的参考价值。

高斯混合模型(Gaussian Mixed Model)是多个高斯分布函数的线性组合,理论上可以拟合出任意类型的分布,通常用于无监督聚类问题

设随机变量 X X X,高斯混合模型如下所示
p ( x ) = ∑ k = 1 K π k N ( x ∣ μ k , Σ k ) p(x)=\\sum_k=1^K\\pi_kN(x|\\mu_k,\\Sigma_k) p(x)=k=1KπkN(xμk,Σk)
其中 N ( x ∣ μ k , Σ k ) N(x|\\mu_k,\\Sigma_k) N(xμk,Σk)是混合模型中的第 k k k个分量
         π k \\pi_k πk是每个分量的权重/概率


EM 估计GMM参数

由于 π k \\pi_k πk的引入,GMM无法通过极大似然计算模型参数,不过我们可以使用EM算法迭代求解


GMM中EM算法步骤

假定有C个数据 x 1 , x 2 , . . . , x C x_1,x_2,...,x_C x1,x2,...,xC,需要将其聚类到包含 K K K个子模型的GMM中
0)首先初始化参数
        π k \\pi_k πk μ k \\mu_k μk Σ k \\Sigma_k Σk k = 1 , 2 , . . . K k=1,2,...K k=1,2,...K

1)E-STEP
     根据当前参数,计算每个数据在每个子模型的概率
γ i k = π k N ( x i ∣ μ k , Σ k ) ∑ m = 1 K π m N ( x i ∣ μ m , Σ m ) , i = 1 , 2 , . . . , C ; k = 1 , 2 , . . . , K (1) \\gamma_i^k=\\frac\\pi_kN(x_i|\\mu_k,\\Sigma_k)\\sum_m=1^K\\pi_mN(x_i|\\mu_m,\\Sigma_m),i=1,2,...,C;k=1,2,...,K \\tag1 γik=m=1KπmN(xiμm,Σm)πkN(xiμk,Σk),i=1,2,...,C;k=1,2,...,K(1)
2)M-STEP
     更新模型参数
μ k = ∑ i C γ i k x i ∑ i C γ i k Σ k = ∑ i C γ i k ( x i − μ k ) ( x i − μ k ) T ∑ i C γ i k π k = ∑ i = 1 C γ i k C (2) \\left\\\\beginaligned\\mu_k & = & \\frac\\sum_i^C\\gamma_i^kx_i\\sum_i^C\\gamma_i^k\\\\ \\Sigma_k & = & \\frac\\sum_i^C\\gamma_i^k(x_i-\\mu_k)(x_i-\\mu_k)^T\\sum_i^C\\gamma_i^k\\\\ \\pi_k & = & \\frac\\sum_i=1^C\\gamma_i^kC\\\\ \\endaligned\\right. \\tag2 μkΣkπk===iCγikiCγikxiiCγikiCγik(xiμk)(xiμk)TCi=1Cγik(2)

重复E-STEP和M-STEP,直到参数收敛


EM算法推导

内容参考自小象学院的机器学习课程,讲的很好,推荐

EM算法一般推导

对于目标函数 p ( x : θ ) p(x:\\theta) p(x:θ),取对数似然函数(连乘取对数):
l ( θ ) = ∑ i = 1 M l o g   p ( x ; θ )                   = ∑ i = 1 M l o g

以上是关于高斯混合模型GMM的主要内容,如果未能解决你的问题,请参考以下文章

高斯混合模型(GMM)和EM算法

高斯混合模型(GMM)

高斯混合模型(GMM)

语音识别基于高斯混合模型(GMM)的语音识别matlab源码

单高斯模型SGM & 高斯混合模型GMM

高斯混合模型(GMM)及EM算法的初步理解