高斯混合模型(GMM)的数学原理与EM求解过程
题目描述
高斯混合模型(Gaussian Mixture Model, GMM)是一种常用的聚类算法,它假设数据由多个高斯分布组合而成。每个高斯分布代表一个簇,模型通过估计每个高斯分布的参数(均值、协方差)和混合系数(权重)来拟合数据。与K-means不同,GMM属于软聚类,允许数据点以概率属于多个簇。本题要求理解GMM的数学模型,并掌握用EM算法求解参数的过程。
解题过程
- 模型定义
- 假设数据由 \(K\) 个高斯分布混合生成,每个高斯分布称为一个“成分”。
- 第 \(k\) 个高斯分布的概率密度函数为:
\[ \mathcal{N}(x \mid \mu_k, \Sigma_k) = \frac{1}{\sqrt{(2\pi)^d |\Sigma_k|}} \exp\left(-\frac{1}{2}(x - \mu_k)^T \Sigma_k^{-1} (x - \mu_k)\right) \]
其中 $ d $ 是数据维度,$ \mu_k $ 和 $ \Sigma_k $ 是均值和协方差矩阵。
- 混合系数 \(\pi_k\) 表示数据属于第 \(k\) 个成分的先验概率,满足 \(\sum_{k=1}^K \pi_k = 1\)。
- GMM的整体概率密度函数为:
\[ p(x) = \sum_{k=1}^K \pi_k \mathcal{N}(x \mid \mu_k, \Sigma_k) \]
- 参数估计问题
- 目标:给定数据集 \(X = \{x_1, x_2, ..., x_N\}\),估计参数 \(\theta = \{\pi_k, \mu_k, \Sigma_k\}_{k=1}^K\)。
- 常用方法是极大似然估计,但直接优化似然函数困难(因为对数中存在求和):
\[ \log p(X \mid \theta) = \sum_{i=1}^N \log \sum_{k=1}^K \pi_k \mathcal{N}(x_i \mid \mu_k, \Sigma_k) \]
- 解决方案:使用EM算法迭代求解。
- EM算法求解步骤
E步(Expectation):- 计算每个数据点 \(x_i\) 属于第 \(k\) 个成分的后验概率 \(\gamma_{ik}\)(称为“责任”):
\[ \gamma_{ik} = \frac{\pi_k \mathcal{N}(x_i \mid \mu_k, \Sigma_k)}{\sum_{j=1}^K \pi_j \mathcal{N}(x_i \mid \mu_j, \Sigma_j)} \]
- 物理意义:在当前参数下,数据点 \(x_i\) 由第 \(k\) 个成分生成的概率。
M步(Maximization):
- 更新参数以最大化似然函数的下界:
- 混合系数更新:
\[ \pi_k^{\text{new}} = \frac{\sum_{i=1}^N \gamma_{ik}}{N} \]
即每个成分的责任均值。
- 均值更新:
\[ \mu_k^{\text{new}} = \frac{\sum_{i=1}^N \gamma_{ik} x_i}{\sum_{i=1}^N \gamma_{ik}} \]
即加权平均值,权重为责任。
- 协方差更新:
\[ \Sigma_k^{\text{new}} = \frac{\sum_{i=1}^N \gamma_{ik} (x_i - \mu_k^{\text{new}})(x_i - \mu_k^{\text{new}})^T}{\sum_{i=1}^N \gamma_{ik}} \]
注意这里使用更新后的均值 $ \mu_k^{\text{new}} $。
-
迭代与收敛
- 重复E步和M步直到参数变化小于阈值或似然函数收敛。
- 最终每个数据点的簇标签由最大责任 \(\gamma_{ik}\) 决定。
-
关键点说明
- GMM的EM算法本质是软聚类版的K-means:E步类似分配簇,M步类似更新簇中心。
- 协方差矩阵可约束为对角或球状形式以简化模型。
- 初始化敏感:通常用K-means或随机初始化避免局部最优。