问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

EM算法求解高斯混合模型参数公式推导

创作时间:
作者:
@小白创作中心

EM算法求解高斯混合模型参数公式推导

引用
CSDN
1.
https://blog.csdn.net/qq_33909788/article/details/139023361

EM算法(Expectation-Maximization Algorithm)是求解含有隐变量的概率模型参数估计问题的有效方法,广泛应用于机器学习和统计学领域。本文将详细介绍EM算法在高斯混合模型(Gaussian Mixture Model,简称GMM)参数求解中的应用,包括模型的基本概念、数学推导过程以及参数更新公式。

高斯混合模型介绍

高斯混合模型(Gaussian Mixture Model,简称GMM)是一种经典的概率模型,被广泛应用于数据挖掘、模式识别和机器学习等领域。它采用多个高斯分布组合来对数据进行建模,每个高斯分布对应于数据中的一个子群体。GMM的核心思想是通过组合多个高斯分布来更准确地表达数据的概率分布。

高斯混合模型(GMM)是一种常用的概率模型,可以用于聚类分析、密度估计、特征生成和缺失数据填充等问题。它能将数据集分成多个聚类簇,估计数据点从多个高斯分布中生成的概率密度,生成与原始数据具有相似特征的样本,并填充缺失数据。使用GMM需要根据具体问题进行模型参数设置和算法调优。

高斯混合模型应用广泛,在许多情况下, EM算法是学习高斯混合模型 (Gaussian mixture model) 的有效方法。

高斯模型数学定义

高斯混合模型是指具有如下形式的概率分布模型:

$$
P ( y \mid \theta)=\sum_{k=1}^K \alpha_k \phi\left(y \mid \theta_k\right)
$$

其中,$\alpha_k$ 是系数,$\alpha_k \geqslant 0, \sum_{k=1}^K \alpha_k=1 ; \phi\left(y \mid \theta_k\right)$是高斯分布密度,$\theta_k=\left(\mu_k, \sigma_k^2\right)$,

$$
\phi\left(y \mid \theta_k\right)=\frac{1}{\sqrt{2 \pi} \sigma_k} \exp \left(-\frac{\left(y-\mu_k\right)^2}{2 \sigma_k^2}\right)
$$

称为第k个分模型。

假设观测数据$y_1, y_2, \cdots, y_N$ 由高斯混合模型生成,

$$
P ( y \mid \theta)=\sum_{k=1}^K \alpha_k \phi\left(y \mid \theta_k\right)
$$

其中,$\theta=\left(\alpha_1, \alpha_2, \cdots, \alpha_K ; \theta_1, \theta_2, \cdots, \theta_K\right)$, 我们学习这个模型,即目标就是用 EM算法估计高斯混合模型的参数$\theta$。

高斯混合模型求解过程

明确隐变量,写出完全数据的对数似然函数

可以设想观测数据$y_j, j=1,2,……,N$,是这样产生的:首先依据概率$\alpha_k$选择第k个高斯分布模型$\phi\left(y \mid \theta_k\right)$,然后依据第k个模型的概率分布生成观测数据$y_j$。这时观测数据$y_j, j=1,2,...,N$,是已知的,反映观测数据$y_j$来自第k个分模型的数据是未知的,$k=1,2,...,K$,以隐变量$\gamma_{j k}$表示,其定义如下:

$$
\gamma_{j k}=\left{
\begin{array}{l}
1, \quad \text {第} j \text {个观测来自第} k \text {个分模型 } \
0, \text { 否则 }
\end{array}
\right.
$$

$$
j=1,2, \cdots, N ; \quad k=1,2, \cdots, K
$$

$\gamma_{j k}$是 0-1 随机变量。

有了观测数据$y_j$及末观测数据$\gamma_{j k}$, 那么完全数据是

$$
\left(y_j, \gamma_{j 1}, \gamma_{j 2}, \cdots, \gamma_{j K}\right), \quad j=1,2, \cdots, N
$$

于是,可以写出完全数据的似然函数:

$$
P (y, \gamma \mid \theta)=\prod_{j=1}^N P\left(y_j, \gamma_{j 1}, \gamma_{j 2}, \cdots, \gamma_{j K} \mid \theta\right)
$$

$$
=\prod_{k=1}^K \prod_{j=1}^N\left[\alpha_k \phi\left(y_j \mid \theta_k\right)\right]^{\gamma_{j k}}
$$

$$
=\prod_{k=1}^K \alpha_k^{n_k} \prod_{j=1}^N\left[\phi\left(y_j \mid \theta_k\right)\right]^{\gamma_{j k}}
$$

$$
=\prod_{k=1}^K \alpha_k^{n_k} \prod_{j=1}^N\left[\frac{1}{\sqrt{2 \pi} \sigma_k} \exp \left(-\frac{\left(y_j-\mu_k\right)^2}{2 \sigma_k^2}\right)\right]^{\gamma_{j k}}
$$

式中, $n_k=\sum_{j=1}^N \gamma_{j k}, \sum_{k=1}^K n_k=N$

那么, 完全数据的对数似然函数为

$$
\log P(y, \gamma \mid \theta)= \sum_{k=1}^K\left{n_k \log a_k+\sum_{j=1}^N \gamma_{j k}\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)-\log a_k-\frac{1}{2 {\sigma}_k^2} .\right.\right. \left.\left.\left(y_j-\mu_k\right)^2\right]\right}
$$

EM算法E步,写出Q函数

$$
\mathbb{Q}\left(\theta, \theta^{(i)}\right) =E\left[\log p(y, \gamma \mid \theta) \mid y, \theta^{(i)}\right]
$$

$$
=E\left{\sum _ { k = 1 } ^ { K } \left{n_k \log a_k+\sum_{j=1}^N \gamma_{j k}\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)-\log \sigma_k-\frac{1}{2 \sigma_k^2} \left(y_j-\mu_k\right)^2 \right] \right } \right }
$$

$$
=\sum_{k=1}^K\left{\sum_{j=1}^N\left(E_{\gamma_{j k}}\right) \log a_k+\sum_{j=1}^N\left(E_{\gamma_{j k}}\right)\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)-\log \sigma_k-\frac{1}{2 \sigma_k^2} \left(y_j-\mu_k\right)^2\right]\right}
$$

这里我们先令

$$
\hat{\gamma}{j k}=E{\gamma_{j k}}, n_k=\sum_{j=1}^N E_{\gamma_{k j}}
$$

这里针对$E_{\gamma_{j k}}$的计算进行推导如下:

$$
\hat{\gamma}{j k} =E\left(\gamma{j k} \mid y, \theta\right)=1 \cdot P\left(\gamma_{j k}=1 \mid y, \theta\right) +0 \cdot P\left(\gamma_{j k}=0 \mid y, \theta\right)
$$

$$
=\frac{P\left(Y_{j k}=1, y, \theta\right) }{P(y, \theta) }
$$

上下同时除以$P(\theta)$

$$
=\frac{P\left(Y_{j k}=1, y, \theta\right) / P(\theta)}{P(y, \theta) / P(\theta)}
$$

$$
=\frac{P\left(\gamma_{j k}=1, y \mid \theta\right)}{P(y \mid \theta)}
$$

这里利用边缘概率公式对分母进行分解

$$
=\frac{P\left(\gamma_{j k}=1, y \mid \theta\right)}{\sum_k p\left(\gamma_{j k}=1, y \mid \theta\right)}
$$

$$
=\frac{P\left(y_j \mid \theta , \gamma_{j k}=1\right) \cdot p\left(\gamma_{j k}=1 \mid \theta\right)}{\sum_k p\left(y_j \mid \theta , \gamma_{j k}=1\right) \cdot p\left(\gamma_{j k}=1 \mid \theta\right)}
$$

$$
=\frac{a_k \phi(y \mid \theta)}{\sum a_k \phi(y \mid \theta)}
$$

将$E_{\gamma_{j k}}$和$n_k$代入得

$$
Q\left(\theta, \theta^{(i)}\right)=\sum_{k=1}^K \left{ n _ { k } \log a_k+\sum_{j=1}^N \hat{\gamma}_{j k}\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)\right.\right..
$$

$$
\left.\left.-\log \sigma_k-\frac{1}{2 \sigma_k^2}\left(y_j-\mu_k\right)^2\right]\right}
$$

EM算法M步

迭代的M步是求函数$Q(\theta,\theta ^{(i)})$对$\theta$的极大值,即新一轮迭代的参数:

$$
\theta^{(i+1)}=\arg \max _\theta Q\left(\theta, \theta^{(i)}\right)
$$

分别对$Q$函数的三个参数$\hat{\mu}_k 、\sigma_k^2、\hat{\alpha}_k$求偏导并令其等于0,解得三个参数的表达式:

$$
\hat{\mu}k=\frac{\sum{j=1}^N \gamma_{j k} y_j}{\sum_{j=1}^N \gamma_{j k}}, k=1,2, \ldots, K
$$

$$
\sigma_k^2=\frac{\sum_{j=1}^N \gamma_{j k}\left(y_j-\mu_k\right)^2}{\sum_{j=1}^N \hat{\gamma}_{j k}}, \quad k=1,2, \cdots, K
$$

$$
\hat{\alpha}k=\frac{n_k}{N}=\frac{\sum{j=1}^N \gamma_{j k}}{N}, \quad k=1,2, \cdots, K
$$

其中$\gamma_{j k}$和$n_k$的计算方法在前面E步中给出,即$\gamma_{j k}=\frac{a_k \phi(y \mid \theta)}{\sum a_k \phi(y \mid \theta)}$ ,$n_k=\sum_{j=1}^N \gamma_{k j}$

求得的参数进入下一轮迭代,重复计算指导似然函数值不再有明显变化为止。

以上为高斯混合模型的EM算法全部内容,更多EM算法相关内容可查看文末参考资料进行了解,感谢您的阅读。

参考资料

[1].EM算法Q函数推导过程详解

[2].EM算法求解三硬币模型参数推导

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号