高斯混合模型(GMM)的数学原理与EM求解过程
字数 1832 2025-10-28 08:36:45

高斯混合模型(GMM)的数学原理与EM求解过程

题目描述
高斯混合模型(Gaussian Mixture Model, GMM)是一种常用的聚类算法,它假设数据由多个高斯分布组合而成。每个高斯分布代表一个簇,模型通过估计每个高斯分布的参数(均值、协方差)和混合系数(权重)来拟合数据。与K-means不同,GMM属于软聚类,允许数据点以概率属于多个簇。本题要求理解GMM的数学模型,并掌握用EM算法求解参数的过程。

解题过程

  1. 模型定义
    • 假设数据由 \(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) \]

  1. 参数估计问题
    • 目标:给定数据集 \(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算法迭代求解。
  1. 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}} $。
  1. 迭代与收敛

    • 重复E步和M步直到参数变化小于阈值或似然函数收敛。
    • 最终每个数据点的簇标签由最大责任 \(\gamma_{ik}\) 决定。
  2. 关键点说明

    • GMM的EM算法本质是软聚类版的K-means:E步类似分配簇,M步类似更新簇中心。
    • 协方差矩阵可约束为对角或球状形式以简化模型。
    • 初始化敏感:通常用K-means或随机初始化避免局部最优。
高斯混合模型(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或随机初始化避免局部最优。