期望最大化(EM)算法在高斯混合模型(GMM)中的参数估计过程
字数 2293 2025-11-09 14:23:45

期望最大化(EM)算法在高斯混合模型(GMM)中的参数估计过程

题目描述
期望最大化(EM)算法是一种迭代优化策略,用于含有隐变量(latent variables)的概率模型的最大似然估计。高斯混合模型(GMM)假设数据由多个高斯分布组合而成,但每个数据点具体来自哪个高斯分布是未知的(即隐变量)。本题要求详细解释如何使用EM算法估计GMM的参数(各高斯分布的权重、均值和协方差)。

解题过程

  1. 问题建模

    • GMM的概率密度函数为:
      \(p(\mathbf{x}) = \sum_{k=1}^{K} \pi_k \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)\)
      其中 \(\pi_k\) 是混合权重(满足 \(\sum_k \pi_k = 1\)),\(\mathcal{N}\) 表示高斯分布。
    • 引入隐变量 \(\mathbf{z} = [z_1, \dots, z_K]\),其中 \(z_k \in \{0,1\}\)\(\sum_k z_k = 1\),表示数据点属于第 \(k\) 个高斯分量的独热编码。
    • 完全数据的似然函数为:
      \(p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\theta}) = \prod_{n=1}^{N} \prod_{k=1}^{K} \left[ \pi_k \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) \right]^{z_{nk}}\)
  2. EM算法框架
    EM算法通过交替执行以下两步直至收敛:

    • E步(Expectation):基于当前参数 \(\boldsymbol{\theta}^{\text{old}}\) 计算隐变量的后验分布 \(p(\mathbf{Z} | \mathbf{X}, \boldsymbol{\theta}^{\text{old}})\)
    • M步(Maximization):最大化完全数据的对数似然关于隐变量后验分布的期望,更新参数 \(\boldsymbol{\theta}^{\text{new}}\)
  3. E步:计算后验概率(责任值)

    • 定义责任值 \(\gamma(z_{nk})\) 表示数据点 \(\mathbf{x}_n\) 属于第 \(k\) 个分量的后验概率:
      \(\gamma(z_{nk}) = \frac{\pi_k \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)}{\sum_{j=1}^{K} \pi_j \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_j, \boldsymbol{\Sigma}_j)}\)
    • 计算每个数据点对每个分量的责任值,形成 \(N \times K\) 的矩阵。
  4. M步:更新模型参数

    • 最大化期望对数似然 \(Q(\boldsymbol{\theta}, \boldsymbol{\theta}^{\text{old}}) = \mathbb{E}_{\mathbf{Z} | \mathbf{X}, \boldsymbol{\theta}^{\text{old}}} [\ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\theta})]\)
    • 更新权重\(\pi_k^{\text{new}} = \frac{N_k}{N}\),其中 \(N_k = \sum_{n=1}^{N} \gamma(z_{nk})\) 是有效点数。
    • 更新均值\(\boldsymbol{\mu}_k^{\text{new}} = \frac{1}{N_k} \sum_{n=1}^{N} \gamma(z_{nk}) \mathbf{x}_n\)
    • 更新协方差\(\boldsymbol{\Sigma}_k^{\text{new}} = \frac{1}{N_k} \sum_{n=1}^{N} \gamma(z_{nk}) (\mathbf{x}_n - \boldsymbol{\mu}_k^{\text{new}})(\mathbf{x}_n - \boldsymbol{\mu}_k^{\text{new}})^\top\)
  5. 收敛判断

    • 重复E步和M步,直到对数似然 \(\ln p(\mathbf{X} | \boldsymbol{\theta}) = \sum_{n=1}^{N} \ln \left( \sum_{k=1}^{K} \pi_k \mathcal{N}(\mathbf{x}_n | \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k) \right)\) 的变化小于阈值或达到最大迭代次数。

关键点

  • EM算法通过引入隐变量将复杂优化问题分解为可解析求解的步骤。
  • E步计算责任值相当于“软分配”,M步的更新公式类似加权的最大似然估计。
  • 算法保证每次迭代后似然函数不下降,但可能收敛到局部最优,故需多次随机初始化。
期望最大化(EM)算法在高斯混合模型(GMM)中的参数估计过程 题目描述 期望最大化(EM)算法是一种迭代优化策略,用于含有隐变量(latent variables)的概率模型的最大似然估计。高斯混合模型(GMM)假设数据由多个高斯分布组合而成,但每个数据点具体来自哪个高斯分布是未知的(即隐变量)。本题要求详细解释如何使用EM算法估计GMM的参数(各高斯分布的权重、均值和协方差)。 解题过程 问题建模 GMM的概率密度函数为: \( p(\mathbf{x}) = \sum_ {k=1}^{K} \pi_ k \mathcal{N}(\mathbf{x} | \boldsymbol{\mu}_ k, \boldsymbol{\Sigma}_ k) \) 其中 \( \pi_ k \) 是混合权重(满足 \( \sum_ k \pi_ k = 1 \)),\( \mathcal{N} \) 表示高斯分布。 引入隐变量 \( \mathbf{z} = [ z_ 1, \dots, z_ K] \),其中 \( z_ k \in \{0,1\} \) 且 \( \sum_ k z_ k = 1 \),表示数据点属于第 \( k \) 个高斯分量的独热编码。 完全数据的似然函数为: \( p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\theta}) = \prod_ {n=1}^{N} \prod_ {k=1}^{K} \left[ \pi_ k \mathcal{N}(\mathbf{x}_ n | \boldsymbol{\mu}_ k, \boldsymbol{\Sigma} k) \right]^{z {nk}} \)。 EM算法框架 EM算法通过交替执行以下两步直至收敛: E步(Expectation) :基于当前参数 \( \boldsymbol{\theta}^{\text{old}} \) 计算隐变量的后验分布 \( p(\mathbf{Z} | \mathbf{X}, \boldsymbol{\theta}^{\text{old}}) \)。 M步(Maximization) :最大化完全数据的对数似然关于隐变量后验分布的期望,更新参数 \( \boldsymbol{\theta}^{\text{new}} \)。 E步:计算后验概率(责任值) 定义责任值 \( \gamma(z_ {nk}) \) 表示数据点 \( \mathbf{x} n \) 属于第 \( k \) 个分量的后验概率: \( \gamma(z {nk}) = \frac{\pi_ k \mathcal{N}(\mathbf{x}_ n | \boldsymbol{\mu}_ k, \boldsymbol{\Sigma} k)}{\sum {j=1}^{K} \pi_ j \mathcal{N}(\mathbf{x}_ n | \boldsymbol{\mu}_ j, \boldsymbol{\Sigma}_ j)} \)。 计算每个数据点对每个分量的责任值,形成 \( N \times K \) 的矩阵。 M步:更新模型参数 最大化期望对数似然 \( Q(\boldsymbol{\theta}, \boldsymbol{\theta}^{\text{old}}) = \mathbb{E}_ {\mathbf{Z} | \mathbf{X}, \boldsymbol{\theta}^{\text{old}}} [ \ln p(\mathbf{X}, \mathbf{Z} | \boldsymbol{\theta}) ] \)。 更新权重 :\( \pi_ k^{\text{new}} = \frac{N_ k}{N} \),其中 \( N_ k = \sum_ {n=1}^{N} \gamma(z_ {nk}) \) 是有效点数。 更新均值 :\( \boldsymbol{\mu} k^{\text{new}} = \frac{1}{N_ k} \sum {n=1}^{N} \gamma(z_ {nk}) \mathbf{x}_ n \)。 更新协方差 :\( \boldsymbol{\Sigma} k^{\text{new}} = \frac{1}{N_ k} \sum {n=1}^{N} \gamma(z_ {nk}) (\mathbf{x}_ n - \boldsymbol{\mu}_ k^{\text{new}})(\mathbf{x}_ n - \boldsymbol{\mu}_ k^{\text{new}})^\top \)。 收敛判断 重复E步和M步,直到对数似然 \( \ln p(\mathbf{X} | \boldsymbol{\theta}) = \sum_ {n=1}^{N} \ln \left( \sum_ {k=1}^{K} \pi_ k \mathcal{N}(\mathbf{x}_ n | \boldsymbol{\mu}_ k, \boldsymbol{\Sigma}_ k) \right) \) 的变化小于阈值或达到最大迭代次数。 关键点 EM算法通过引入隐变量将复杂优化问题分解为可解析求解的步骤。 E步计算责任值相当于“软分配”,M步的更新公式类似加权的最大似然估计。 算法保证每次迭代后似然函数不下降,但可能收敛到局部最优,故需多次随机初始化。