高斯混合模型(GMM)的期望最大化(EM)算法求解过程
字数 2026 2025-11-04 11:59:17

高斯混合模型(GMM)的期望最大化(EM)算法求解过程

题目描述
高斯混合模型(GMM)是一种用多个高斯分布的加权和来描述数据分布的聚类算法。假设观测数据由K个高斯分布生成,但每个数据点具体来自哪个分布未知(隐变量)。目标是通过EM算法迭代估计GMM的参数:每个高斯分布的权重、均值和协方差矩阵。

解题过程

  1. 问题定义
    • 设观测数据 \(X = \{x_1, x_2, ..., x_N\}\),每个 \(x_i \in \mathbb{R}^d\)
    • GMM的概率密度函数:

\[ p(x_i | \theta) = \sum_{k=1}^K \pi_k \mathcal{N}(x_i | \mu_k, \Sigma_k) \]

 其中 $ \theta = \{\pi_k, \mu_k, \Sigma_k\}_{k=1}^K $ 为参数,$ \pi_k $ 是混合权重(满足 $ \sum_k \pi_k = 1 $),$ \mathcal{N} $ 表示多元高斯分布。
  1. 引入隐变量与EM框架

    • 定义隐变量 \(Z = \{z_{i,k}\}\),其中 \(z_{i,k} = 1\) 表示 \(x_i\) 属于第 \(k\) 个高斯分布,否则为0。
    • EM算法通过交替执行以下两步迭代优化参数:
      • E步(期望步):基于当前参数估计隐变量的后验分布 \(p(Z|X, \theta^{\text{old}})\)
      • M步(最大化步):根据E步的结果更新参数 \(\theta^{\text{new}} = \arg\max_{\theta} Q(\theta, \theta^{\text{old}})\),其中 \(Q\) 是完整数据的对数似然期望。
  2. E步:计算隐变量后验(责任值)

    • 对每个数据点 \(x_i\) 和每个高斯分布 \(k\),计算责任值 \(\gamma_{i,k}\)(即 \(z_{i,k}\) 的期望):

\[ \gamma_{i,k} = \frac{\pi_k^{\text{old}} \mathcal{N}(x_i | \mu_k^{\text{old}}, \Sigma_k^{\text{old}})}{\sum_{j=1}^K \pi_j^{\text{old}} \mathcal{N}(x_i | \mu_j^{\text{old}}, \Sigma_j^{\text{old}})} \]

 - 这里需计算多元高斯分布的概率密度函数:  

\[ \mathcal{N}(x_i | \mu_k, \Sigma_k) = \frac{1}{(2\pi)^{d/2} |\Sigma_k|^{1/2}} \exp\left(-\frac{1}{2}(x_i - \mu_k)^T \Sigma_k^{-1} (x_i - \mu_k)\right) \]

 - 责任值 $ \gamma_{i,k} $ 表示数据点 $ x_i $ 由第 $ k $ 个高斯分布生成的概率。
  1. M步:更新参数
    • 根据责任值重新估计参数,最大化似然函数:
      • 更新混合权重

\[ \pi_k^{\text{new}} = \frac{1}{N} \sum_{i=1}^N \gamma_{i,k} \]

 - **更新均值**:  

\[ \mu_k^{\text{new}} = \frac{\sum_{i=1}^N \gamma_{i,k} x_i}{\sum_{i=1}^N \gamma_{i,k}} \]

 - **更新协方差矩阵**:  

\[ \Sigma_k^{\text{new}} = \frac{\sum_{i=1}^N \gamma_{i,k} (x_i - \mu_k^{\text{new}})(x_i - \mu_k^{\text{new}})^T}{\sum_{i=1}^N \gamma_{i,k}} \]

 - 分母 $ N_k = \sum_{i=1}^N \gamma_{i,k} $ 可解释为属于第 $ k $ 个分布的“有效数据点数量”。
  1. 迭代与收敛
    • 重复E步和M步,直到对数似然函数的变化小于阈值或达到最大迭代次数。
    • 对数似然函数:

\[ \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算法通过引入“软分配”的责任值避免硬分配的不确定性。
  • 需注意协方差矩阵可能奇异的问题,可添加正则化项(如对角矩阵扰动)保证数值稳定性。
高斯混合模型(GMM)的期望最大化(EM)算法求解过程 题目描述 高斯混合模型(GMM)是一种用多个高斯分布的加权和来描述数据分布的聚类算法。假设观测数据由K个高斯分布生成,但每个数据点具体来自哪个分布未知(隐变量)。目标是通过EM算法迭代估计GMM的参数:每个高斯分布的权重、均值和协方差矩阵。 解题过程 问题定义 设观测数据 \( X = \{x_ 1, x_ 2, ..., x_ N\} \),每个 \( x_ i \in \mathbb{R}^d \)。 GMM的概率密度函数: \[ p(x_ i | \theta) = \sum_ {k=1}^K \pi_ k \mathcal{N}(x_ i | \mu_ k, \Sigma_ k) \] 其中 \( \theta = \{\pi_ k, \mu_ k, \Sigma_ k\}_ {k=1}^K \) 为参数,\( \pi_ k \) 是混合权重(满足 \( \sum_ k \pi_ k = 1 \)),\( \mathcal{N} \) 表示多元高斯分布。 引入隐变量与EM框架 定义隐变量 \( Z = \{z_ {i,k}\} \),其中 \( z_ {i,k} = 1 \) 表示 \( x_ i \) 属于第 \( k \) 个高斯分布,否则为0。 EM算法通过交替执行以下两步迭代优化参数: E步(期望步) :基于当前参数估计隐变量的后验分布 \( p(Z|X, \theta^{\text{old}}) \)。 M步(最大化步) :根据E步的结果更新参数 \( \theta^{\text{new}} = \arg\max_ {\theta} Q(\theta, \theta^{\text{old}}) \),其中 \( Q \) 是完整数据的对数似然期望。 E步:计算隐变量后验(责任值) 对每个数据点 \( x_ i \) 和每个高斯分布 \( k \),计算责任值 \( \gamma_ {i,k} \)(即 \( z_ {i,k} \) 的期望): \[ \gamma_ {i,k} = \frac{\pi_ k^{\text{old}} \mathcal{N}(x_ i | \mu_ k^{\text{old}}, \Sigma_ k^{\text{old}})}{\sum_ {j=1}^K \pi_ j^{\text{old}} \mathcal{N}(x_ i | \mu_ j^{\text{old}}, \Sigma_ j^{\text{old}})} \] 这里需计算多元高斯分布的概率密度函数: \[ \mathcal{N}(x_ i | \mu_ k, \Sigma_ k) = \frac{1}{(2\pi)^{d/2} |\Sigma_ k|^{1/2}} \exp\left(-\frac{1}{2}(x_ i - \mu_ k)^T \Sigma_ k^{-1} (x_ i - \mu_ k)\right) \] 责任值 \( \gamma_ {i,k} \) 表示数据点 \( x_ i \) 由第 \( k \) 个高斯分布生成的概率。 M步:更新参数 根据责任值重新估计参数,最大化似然函数: 更新混合权重 : \[ \pi_ k^{\text{new}} = \frac{1}{N} \sum_ {i=1}^N \gamma_ {i,k} \] 更新均值 : \[ \mu_ k^{\text{new}} = \frac{\sum_ {i=1}^N \gamma_ {i,k} x_ i}{\sum_ {i=1}^N \gamma_ {i,k}} \] 更新协方差矩阵 : \[ \Sigma_ k^{\text{new}} = \frac{\sum_ {i=1}^N \gamma_ {i,k} (x_ i - \mu_ k^{\text{new}})(x_ i - \mu_ k^{\text{new}})^T}{\sum_ {i=1}^N \gamma_ {i,k}} \] 分母 \( N_ k = \sum_ {i=1}^N \gamma_ {i,k} \) 可解释为属于第 \( k \) 个分布的“有效数据点数量”。 迭代与收敛 重复E步和M步,直到对数似然函数的变化小于阈值或达到最大迭代次数。 对数似然函数: \[ \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算法通过引入“软分配”的责任值避免硬分配的不确定性。 需注意协方差矩阵可能奇异的问题,可添加正则化项(如对角矩阵扰动)保证数值稳定性。