期望最大化(EM)算法在高斯混合模型(GMM)中的参数估计过程
字数 1775 2025-11-05 23:45:49
期望最大化(EM)算法在高斯混合模型(GMM)中的参数估计过程
题目描述
本题目讲解如何使用期望最大化(EM)算法估计高斯混合模型(GMM)的参数。GMM假设数据由多个高斯分布组合而成,但每个数据点具体来自哪个高斯分布是未知的(隐变量)。EM算法通过迭代的E步(求期望)和M步(最大化)来估计GMM的均值、协方差和混合权重。
解题过程
-
问题定义
- 设观测数据 \(X = \{x_1, x_2, ..., x_N\}\),其中每个 \(x_i \in \mathbb{R}^d\)。
- GMM由 \(K\) 个高斯分布组成,参数为 \(\theta = \{\pi_k, \mu_k, \Sigma_k\}_{k=1}^K\),其中:
- \(\pi_k\):第 \(k\) 个高斯分布的混合权重(满足 \(\sum_{k=1}^K \pi_k = 1\));
- \(\mu_k\):均值向量;
- \(\Sigma_k\):协方差矩阵。
- 隐变量 \(Z = \{z_1, ..., z_N\}\),其中 \(z_i\) 表示 \(x_i\) 所属的高斯分量(one-hot向量,\(z_{ik} = 1\) 当且仅当 \(x_i\) 来自第 \(k\) 个高斯分布)。
-
EM算法框架
- 目标:最大化对数似然 \(\log P(X|\theta) = \sum_{i=1}^N \log \left( \sum_{k=1}^K \pi_k \mathcal{N}(x_i|\mu_k, \Sigma_k) \right)\)。
- 直接优化困难(因对数内部有求和),EM算法通过迭代以下两步求解:
- E步:基于当前参数 \(\theta^{(t)}\) 计算隐变量的后验分布 \(P(Z|X, \theta^{(t)})\)。
- M步:基于E步的结果更新参数 \(\theta^{(t+1)} = \arg\max_{\theta} \mathbb{E}_{Z|X,\theta^{(t)}}[\log P(X,Z|\theta)]\)。
-
E步:计算隐变量后验(响应度)
- 定义响应度 \(\gamma(z_{ik})\):表示在给定当前参数下,数据点 \(x_i\) 属于第 \(k\) 个分量的概率:
\[ \gamma(z_{ik}) = \frac{\pi_k \mathcal{N}(x_i|\mu_k, \Sigma_k)}{\sum_{j=1}^K \pi_j \mathcal{N}(x_i|\mu_j, \Sigma_j)}. \]
- 计算每个 \(\gamma(z_{ik})\) 需使用当前参数 \(\theta^{(t)}\),并确保 \(\sum_{k=1}^K \gamma(z_{ik}) = 1\)。
-
M步:更新参数
- 基于响应度重新估计参数,闭合解如下:
- 混合权重:\(\pi_k^{(t+1)} = \frac{1}{N} \sum_{i=1}^N \gamma(z_{ik})\)。
- 均值向量:\(\mu_k^{(t+1)} = \frac{\sum_{i=1}^N \gamma(z_{ik}) x_i}{\sum_{i=1}^N \gamma(z_{ik})}\)。
- 协方差矩阵:\(\Sigma_k^{(t+1)} = \frac{\sum_{i=1}^N \gamma(z_{ik}) (x_i - \mu_k^{(t+1)})(x_i - \mu_k^{(t+1)})^\top}{\sum_{i=1}^N \gamma(z_{ik})}\)。
- 基于响应度重新估计参数,闭合解如下:
-
迭代与收敛
- 重复E步和M步,直到对数似然的变化小于阈值或参数变化可忽略。
- 最终得到GMM的优化参数,可用于聚类或密度估计。
关键点
- EM算法通过引入隐变量将复杂优化分解为可计算的步骤。
- E步本质是软分配(每个点以概率属于各分量),M步类似加权最大似然估计。
- 需注意初始化(如用K-means)和协方差矩阵奇异性的处理(如添加正则项)。