高斯混合模型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=1∑Kπ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γik∑iCγikxi∑iCγik∑iCγik(xi−μk)(xi−μk)TC∑i=1Cγik(2)
重复E-STEP和M-STEP,直到参数收敛
EM算法推导
内容参考自小象学院的机器学习课程,讲的很好,推荐
EM算法一般推导
对于目标函数
p
(
x
:
θ
)
p(x:\\theta)
p(x:θ),取对数似然函数(连乘取对数): 以上是关于高斯混合模型GMM的主要内容,如果未能解决你的问题,请参考以下文章
l
(
θ
)
=
∑
i
=
1
M
l
o
g
p
(
x
;
θ
)
=
∑
i
=
1
M
l
o
g