高斯混合模型(Gaussian Mixture Model, GMM)的期望最大化(EM)算法求解过程
题目描述
我们来讲解如何使用期望最大化(EM)算法来求解高斯混合模型的参数。假设我们有一组观测数据点,但我们不知道每个数据点具体来自哪个高斯分布,也不知道每个高斯分布的参数(均值、方差、权重)。EM算法能够在这种存在隐藏变量(即数据点所属的分布)的情况下,通过迭代优化,估计出所有高斯分布的参数。
详细解题过程
第一步:问题形式化与模型设定
- 高斯混合模型假设数据由 \(K\) 个高斯分布混合生成,每个分布称为一个“成分”(component)。
- 模型参数为:
- 混合权重 \(\pi_k\),表示第 \(k\) 个成分的先验概率,满足 \(\sum_{k=1}^K \pi_k = 1, \pi_k \geq 0\)。
- 每个高斯分布的均值 \(\mu_k\) 和协方差矩阵 \(\Sigma_k\)(为简化,这里假设协方差矩阵为对角阵或球状)。
- 隐藏变量 \(z_i\) 表示第 \(i\) 个样本点所属的成分标签,\(z_i \in \{1,\dots,K\}\),其分布为 \(P(z_i = k) = \pi_k\)。
- 给定 \(z_i = k\),观测数据 \(x_i\) 的条件概率为高斯分布:
\[ p(x_i | z_i = k) = \mathcal{N}(x_i | \mu_k, \Sigma_k) \]
第二步:完全数据的似然函数
- 如果隐藏变量 \(z_i\) 已知,则完全数据的似然函数为:
\[ p(X, Z | \theta) = \prod_{i=1}^N \prod_{k=1}^K [\pi_k \mathcal{N}(x_i | \mu_k, \Sigma_k)]^{\mathbb{I}(z_i = k)} \]
其中 \(\theta = \{\pi_k, \mu_k, \Sigma_k\}_{k=1}^K\),\(\mathbb{I}(\cdot)\) 是指示函数。
2. 完全数据的对数似然为:
\[ \log p(X, Z | \theta) = \sum_{i=1}^N \sum_{k=1}^K \mathbb{I}(z_i = k) [\log \pi_k + \log \mathcal{N}(x_i | \mu_k, \Sigma_k)] \]
第三步:E步(期望步)
由于 \(z_i\) 未知,我们计算其在当前参数估计下的后验分布(即“责任” responsibility):
\[\gamma_{ik} = P(z_i = k | x_i, \theta^{(t)}) = \frac{\pi_k^{(t)} \mathcal{N}(x_i | \mu_k^{(t)}, \Sigma_k^{(t)})}{\sum_{j=1}^K \pi_j^{(t)} \mathcal{N}(x_i | \mu_j^{(t)}, \Sigma_j^{(t)})} \]
这里 \(\theta^{(t)}\) 是第 \(t\) 次迭代的参数估计。
\(\gamma_{ik}\) 表示样本 \(i\) 属于成分 \(k\) 的“责任”或“软分配”,满足 \(\sum_{k=1}^K \gamma_{ik} = 1\)。
第四步:M步(最大化步)
在E步得到 \(\gamma_{ik}\) 后,我们将其视为已知,最大化完全数据对数似然的期望(即Q函数):
\[Q(\theta, \theta^{(t)}) = \sum_{i=1}^N \sum_{k=1}^K \gamma_{ik} [\log \pi_k + \log \mathcal{N}(x_i | \mu_k, \Sigma_k)] \]
分别对 \(\pi_k, \mu_k, \Sigma_k\) 求偏导并令其为零,可得更新公式:
- 更新混合权重:
\[ \pi_k^{(t+1)} = \frac{1}{N} \sum_{i=1}^N \gamma_{ik} \]
解释:新的权重是样本点属于成分 \(k\) 的平均责任。
- 更新均值:
\[ \mu_k^{(t+1)} = \frac{\sum_{i=1}^N \gamma_{ik} x_i}{\sum_{i=1}^N \gamma_{ik}} \]
解释:新的均值是样本点的加权平均,权重为责任。
- 更新协方差矩阵(以对角协方差为例,假设各维度独立):
\[ \sigma_k^2^{(t+1)} = \frac{\sum_{i=1}^N \gamma_{ik} (x_i - \mu_k^{(t+1)})^2}{\sum_{i=1}^N \gamma_{ik}} \]
对于多维情况,可类似计算协方差矩阵的每个元素。
第五步:迭代与收敛
重复E步和M步,直到参数变化小于某个阈值或对数似然的变化很小。
整个算法的收敛性有理论保证(每次迭代不降低对数似然),但可能收敛到局部最优,因此初始值(如用K-means初始化均值)对结果有影响。
小结
高斯混合模型的EM算法通过交替执行E步(计算责任)和M步(更新参数),在隐藏变量存在的情况下实现参数的最大似然估计。它本质上是“软聚类”方法,每个样本以概率 \(\gamma_{ik}\) 属于各成分,广泛应用于数据聚类、密度估计和生成模型。