【基础还得练】Gaussian Mixture Model(高斯混合模型)

GMM 是 Gaussian Mixture Model(高斯混合模型) 的简称,它是一种用于数据聚类和概率密度估计的统计模型。GMM 假设数据分布是由多个高斯分布(正态分布)的加权组合构成的。

核心概念

  1. 混合模型

    GMM 是一种混合模型,表示总体分布是多个子分布的线性组合:
    p ( x ) = ∑ k = 1 K π k ⋅ N ( x ∣ μ k , Σ k ) , p(x) = \sum_{k=1}^{K} \pi_k \cdot \mathcal{N}(x \mid \mu_k, \Sigma_k), p(x)=k=1∑Kπk⋅N(x∣μk,Σk),

    其中:

    • K K K:混合分布的数量,即高斯分布的个数(称为"聚类的数量")。
    • π k \pi_k πk:每个高斯分布的权重,满足 ∑ k = 1 K π k = 1 \sum_{k=1}^{K} \pi_k = 1 ∑k=1Kπk=1。
    • N ( x ∣ μ k , Σ k ) \mathcal{N}(x \mid \mu_k, \Sigma_k) N(x∣μk,Σk):第 k k k 个高斯分布,其均值为 μ k \mu_k μk,协方差矩阵为 Σ k \Sigma_k Σk。
  2. 高斯分布(正态分布)

    每个高斯分布的概率密度函数为:
    N ( x ∣ μ , Σ ) = 1 ( 2 π ) d / 2 ∣ Σ ∣ 1 / 2 exp ⁡ ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) , \mathcal{N}(x \mid \mu, \Sigma) = \frac{1}{(2\pi)^{d/2} |\Sigma|^{1/2}} \exp\left(-\frac{1}{2}(x - \mu)^T \Sigma^{-1} (x - \mu)\right), N(x∣μ,Σ)=(2π)d/2∣Σ∣1/21exp(−21(x−μ)TΣ−1(x−μ)),

    其中 d d d 是数据的维度。

  3. 软聚类

    GMM 通过计算数据点属于每个高斯分布的概率(责任)来进行软聚类,而不像 K K K-means 那样是硬聚类。软聚类允许每个数据点同时属于多个簇,但以不同的概率。

GMM 的特点

  • 数据生成假设:假设数据是从多个高斯分布中按权重随机生成的。
  • 模型参数 :GMM 需要估计的参数包括:
    • 每个高斯分布的均值 μ k \mu_k μk;
    • 协方差矩阵 Σ k \Sigma_k Σk;
    • 权重 π k \pi_k πk。

模型训练

GMM 的参数通常使用 期望最大化算法(EM算法) 进行估计:

  1. E步(Expectation,期望):计算每个数据点属于每个高斯分布的责任。
  2. M步(Maximization,最大化) :根据责任重新估计模型参数( μ k , Σ k , π k \mu_k, \Sigma_k, \pi_k μk,Σk,πk)。
  3. 不断重复 E 步和 M 步,直到收敛。

应用场景

  • 聚类:通过 GMM 计算每个数据点的软聚类概率。
  • 概率密度估计:估计数据的概率密度函数。
  • 异常检测:通过计算数据点的概率,判断其是否为异常点。
  • 图像处理:例如图像分割。
  • 语音信号处理:例如语音建模和分类。

优势与局限性

优势

  • 能够捕捉复杂的分布形式。
  • 提供软聚类结果。
  • 支持多维数据。

局限性

  • 对初始参数敏感,可能收敛到局部最优解。
  • 高斯分布的假设可能不适合某些数据。
  • 需要指定聚类数量 K K K。
相关推荐
网教盟人才服务平台1 小时前
“方班预备班盾立方人才培养计划”正式启动!
大数据·人工智能
芯智工坊2 小时前
第15章 Mosquitto生产环境部署实践
人工智能·mqtt·开源
菜菜艾2 小时前
基于llama.cpp部署私有大模型
linux·运维·服务器·人工智能·ai·云计算·ai编程
TDengine (老段)2 小时前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
小真zzz2 小时前
搜极星:第三方多平台中立GEO洞察专家全面解析
人工智能·搜索引擎·seo·geo·中立·第三方平台
GreenTea3 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端
火山引擎开发者社区3 小时前
秒级创建实例,火山引擎 Milvus Serverless 让 AI Agent 开发更快更省
人工智能
冬奇Lab3 小时前
一天一个开源项目(第72篇):everything-claude-code - 最系统化的 Claude Code 增强框架
人工智能·开源·资讯
火山引擎开发者社区3 小时前
ArkClaw:以 SLI 度量驱动,构建新一代 Agent 全链路可观测体系
人工智能