混合高斯模型及其计算方法
高斯分布
高斯分布(Gaussian Distribution)又称正态分布(Normal Distribution),因其具有良好的数学和计算性质,被广泛应用于各个领域。
根据棣莫弗中心极限定理,一组具有有限均值方差的独立同分布的随机变量之和,近似服从正态分布。这个定理奠定了自然界中的各种现象,必定和正态分布有着密不可分的关系。
一维高斯分布
设一维随机变量
X
X
X服从均值为
μ
\mu
μ,方差为
σ
2
\sigma^{2}
σ2的正态分布,记为
X
∼
N
(
μ
,
σ
2
)
X \sim N(\mu, \sigma^{2})
X∼N(μ,σ2)
其概率密度函数(PDF)为:
ϕ
(
x
;
μ
,
σ
)
=
1
2
π
σ
e
−
(
x
−
μ
)
2
2
σ
2
\begin{equation} \phi(x;\mu,\sigma)=\frac{1}{\sqrt{2\pi}\sigma} e^{\displaystyle -\frac{(x-\mu)^{2}}{2\sigma^{2}}} \end{equation}
ϕ(x;μ,σ)=2πσ1e−2σ2(x−μ)2
高斯分布的概率密度函数呈现出在均值处高、两边低的形状,因此又被称为钟形分布
![](https://i-blog.csdnimg.cn/blog_migrate/43ef15e173e611a25f20f8c57cb4a368.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/9058b79837cbea2cccc8d871ca9953e4.jpeg)
多维高斯分布
多维高斯分布的每一个维度都是一个正态分布,它们不一定互相独立,下图是一个二维正态分布[1]的概率密度函数图像:
具有协方差矩阵
Σ
\Sigma
Σ的
N
N
N维正态分布,可记为
N
(
μ
,
Σ
)
N(\mu,\Sigma)
N(μ,Σ),其中:
μ
\mu
μ 代表均值向量
Σ
\Sigma
Σ 代表协方差矩阵
其概率密度表达式为:
ϕ
(
x
;
μ
,
Σ
)
=
1
(
2
π
)
N
2
∣
Σ
∣
1
2
e
−
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
2
\begin{equation} \phi(x;\mu,\Sigma)=\frac{1}{(2\pi)^{\frac{N}{2}} |\Sigma|^{\frac{1}{2}}} e^{\displaystyle -\frac{(x-\mu)^{T}\Sigma^{-1}(x-\mu)}{2}} \end{equation}
ϕ(x;μ,Σ)=(2π)2N∣Σ∣211e−2(x−μ)TΣ−1(x−μ)
混合高斯模型(GMM)
对于一组呈多峰分布的数据或非椭圆分布族,难以用一个正态分布进行建模,因此需要使用混合模型对其进行建模。
混合高斯模型概率分布
p
(
x
;
θ
)
=
∑
k
=
1
K
α
k
ϕ
(
x
;
θ
k
)
,
∑
k
=
1
K
α
k
=
1
\begin{equation} p(x;\theta)=\sum_{k=1}^{K}\alpha_{k}\phi(x;\theta_{k}) \ \ \ \ \ \ \ ,\sum_{k=1}^{K}\alpha_{k}=1 \end{equation}
p(x;θ)=k=1∑Kαkϕ(x;θk) ,k=1∑Kαk=1
其中[2]:
α
k
\alpha_{k}
αk 代表第
k
k
k个子模型在总体中出现的概率
K
K
K 代表一共有
K
K
K个子模型
θ
\theta
θ 代表GMM中各个子模型的参数集合
θ
k
\theta_{k}
θk 代表第
k
k
k个子模型的参数
可以看到,GMM并不是多个服从正态分布的随机变量的和,而是多个服从正态分布的随机变量的概率密度的加权和。并且容易证明,对
(
3
)
(3)
(3)式进行反常积分,结果还是1。
从式子中也可以很直观地想象出GMM密度函数的图像是包含多个正态峰的曲线。
参数估计
对于给定的大量样本集合,可以使用极大似然估计求出其各个子模型的均值和方差
对于
N
N
N个独立同分布的样本,以及给定的超参数K,该分布参数的似然函数为:
L
(
θ
)
=
l
n
∏
i
=
1
N
p
(
x
i
;
θ
)
=
∑
i
=
1
N
(
l
n
∑
k
=
1
K
α
k
ϕ
k
(
x
i
;
θ
k
)
)
\begin{equation} \begin{split} L(\theta)&=ln\prod_{i=1}^{N} p(x_{i};\theta) \\ &= \sum_{i=1}^{N}(ln \sum_{k=1}^{K}\alpha_{k}\phi_{k}(x_{i};\theta_{k})) \end{split} \end{equation}
L(θ)=lni=1∏Np(xi;θ)=i=1∑N(lnk=1∑Kαkϕk(xi;θk))
求解这个似然函数的极大值非常困难,但是可以使用EM算法进行迭代求解
EM算法求解参数
令
p
i
k
p_{ik}
pik代表给定第
i
i
i个样本的值,其在第
k
k
k个子模型中的概率,即
P
(
K
=
k
∣
X
=
x
i
)
P(K=k|X=x_{i})
P(K=k∣X=xi)
迭代法算法如下:
- 初始化 θ k \theta_{k} θk
- 计算
p
i
k
p_{ik}
pik:
p i k = α k ϕ k ( x i ∣ θ k ) ∑ k = 1 K α k ϕ k ( x i ∣ θ k ) p_{ik}=\frac{\alpha_{k} \phi_{k}(x_{i}|\theta_{k})}{\sum_{k=1}^{K}\alpha_{k} \phi_{k}(x_{i}|\theta_{k})} pik=∑k=1Kαkϕk(xi∣θk)αkϕk(xi∣θk) - 计算
μ
k
\mu_{k}
μk:
μ k = ∑ i = 1 N p i k x i ∑ i = 1 N p i k \mu_{k}=\frac{\sum_{i=1}^{N}p_{ik}x_{i}}{\sum_{i=1}^{N}p_{ik}} μk=∑i=1Npik∑i=1Npikxi - 计算
σ
k
\sigma_{k}
σk:
σ k = ∑ i = 1 N p i k ( x i − μ k ) ( x i − μ k ) T ∑ i = 1 N p i k \sigma_{k}=\frac{\sum_{i=1}^{N}p_{ik}(x_{i}-\mu_{k})(x_{i}-\mu_{k})^{T}}{\sum_{i=1}^{N}p_{ik}} σk=∑i=1Npik∑i=1Npik(xi−μk)(xi−μk)T - 计算下一次迭代的
α
k
\alpha_{k}
αk,若
∣
∣
θ
i
−
θ
i
+
1
∣
∣
<
ε
||\theta_{i}-\theta_{i+1}||<\varepsilon
∣∣θi−θi+1∣∣<ε,终止迭代;否则,转第2步
α k = ∑ i = 1 N p i k N \alpha_{k}=\frac{\sum_{i=1}^{N}p_{ik}}{N} αk=N∑i=1Npik
为了保证迭代不会使极大似然函数陷入局部极大值,可以多次赋予初始值进行迭代,并取使极大似然函数最大的一组迭代结果。
参考文献
[1] https://baike.baidu.com/item/二维正态分布/2951835
[2] https://zhuanlan.zhihu.com/p/30483076