[模式识别-从入门到入土] 高斯混合模型

[模式识别-从入门到入土] 高斯混合模型

知乎:https://www.zhihu.com/people/byzh_rc

CSDN:https://blog.csdn.net/qq_54636039

注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码

参考文章:各方资料

文章目录

  • [[模式识别-从入门到入土] 高斯混合模型](#[模式识别-从入门到入土] 高斯混合模型)
  • GMM是什么?
  • GMM与K-Means的关系:理解GMM的捷径
  • [GMM的核心 -> 概率密度函数与参数](#GMM的核心 -> 概率密度函数与参数)
  • [GMM的求解 -> EM算法](#GMM的求解 -> EM算法)
        • [1. EM算法的核心目标](#1. EM算法的核心目标)
        • [2. EM算法的两个步骤(交替执行)](#2. EM算法的两个步骤(交替执行))
  • [举例 -> GMM用于聚类(两种情况)](#举例 -> GMM用于聚类(两种情况))
        • [1. 已知样本分类(有监督场景)](#1. 已知样本分类(有监督场景))
        • [2. 未知样本分类(无监督场景,最常用)](#2. 未知样本分类(无监督场景,最常用))
        • 比较
  • 总结

GMM是什么?

GMM: Gaussian Mixture Model: 高斯混合模型

-> 一种基于概率的聚类与密度估计模型

核心思想:假设我们要分析的数据集,是由 k 个不同的高斯分布(也就是正态分布)"加权混合"生成的。

每个高斯分布就对应一个聚类簇,我们的目标是通过学习这 k 个高斯分布的参数,完成对数据的聚类(分群)或概率密度拟合(描述数据分布规律)。

关键特性:理论上,GMM 可以近似任何概率分布

GMM与K-Means的关系:理解GMM的捷径

GMM 是广义的 K-Means,K-Means 是 GMM 的一个特殊情况

特性 K-Means 聚类 GMM
聚类类型 硬聚类:每个样本只能属于一个簇(非此即彼) 软聚类:每个样本有属于每个簇的概率(可同时"倾向"多个簇)
关注核心 只关注簇的中心位置(均值) 同时关注簇的中心位置(均值)+ 形状/方向(协方差)
划分依据 欧氏距离(样本到簇中心的直线距离,硬性划分) 概率密度(样本属于某个簇的可能性,软性归属)
适用场景 簇呈球形、数据密度均匀的情况 簇形状不规则(比如椭圆)、数据密度不均的情况

关键结论:当 GMM 中所有高斯分布的协方差矩阵是"对角矩阵且对角元素相等"(意味着簇都是球形),并且强制每个样本只属于概率最大的簇时,GMM 就退化成了 K-Means

GMM的核心 -> 概率密度函数与参数

GMM 的概率密度函数 p ( x ) p(x) p(x) 是 k 个高斯分布的加权和(可以理解为"多个正态分布叠加,每个分布有不同的权重")
p ( x ) = ∑ i = 1 k π i ⋅ N ( x ∣ μ i , Σ i ) p(x) = \sum_{i=1}^k \pi_i \cdot \mathcal{N}(x|\mu_i,\Sigma_i) p(x)=i=1∑kπi⋅N(x∣μi,Σi)

公式含义:对于任意一个样本 x,它出现的概率 p(x),是 k 个高斯分布各自生成 x 的概率( N ( x ∣ μ i , Σ i ) \mathcal{N}(x|\mu_i,\Sigma_i) N(x∣μi,Σi)),乘以每个高斯分布的权重( π i \pi_i πi)后,再加总得到的。

参数类型 符号 具体含义 约束条件(必须满足)
权重系数 π i \pi_i πi 第 i 个高斯分布的"重要程度"(对应簇的占比) 所有权重之和为1( ∑ i = 1 k π i = 1 \sum_{i=1}^k \pi_i = 1 ∑i=1kπi=1),且每个权重在0到1之间( 0 ≤ π i ≤ 1 0 \le \pi_i \le 1 0≤πi≤1)
均值向量 μ i \mu_i μi 第 i 个高斯分布的中心(对应某个簇的质心) 向量维度和数据维度一致(比如数据是2维的,均值就是2个数值组成的向量)
协方差矩阵 Σ i \Sigma_i Σi 第 i 个高斯分布的"离散程度",决定簇的形状和方向(比如协方差大,簇更分散;非对角元素不为0,簇是椭圆) 必须是对称正定矩阵(保证概率计算有效)

GMM的求解 -> EM算法

GMM 的核心问题:我们只有样本数据不知道每个样本属于哪个簇 (即"隐含变量"未知),需要求出上面说的 3 类参数( π i \pi_i πi、 μ i \mu_i μi、 Σ i \Sigma_i Σi)

解决方法:使用 EM算法(期望最大化算法),核心逻辑是"先猜测、再修正",交替执行两个步骤,直到参数稳定(收敛)

1. EM算法的核心目标

找到一组参数 ,使得"在这组参数下,生成我们现有数据集的概率最大"------ 这就是"最大似然估计 "的思想

(简单说:让数据最"符合"我们的模型)

2. EM算法的两个步骤(交替执行)
  • 期望(E)步:用当前已经估计出的参数,计算"每个样本属于每个簇的概率"(即隐含变量的分布),相当于"先猜测每个样本可能属于哪个簇"。
  • 最大化(M)步 :基于E步得到的"样本归属概率",更新参数( π i \pi_i πi、 μ i \mu_i μi、 Σ i \Sigma_i Σi),使得"现有数据生成的概率"更大,相当于"根据猜测修正参数"。

重复E步和M步,直到参数变化很小(收敛),就得到了最终的模型参数。

举例 -> GMM用于聚类(两种情况)

1. 已知样本分类(有监督场景)

如果已经知道每个样本属于哪个簇(比如有标签数据),

直接用"最大似然估计MLE "就能算出参数,公式很直观:
π k = m k m μ k = 1 m k ∑ x ∈ L ( k ) x Σ k = 1 m k ∑ x ∈ L ( k ) ( x − μ k ) ( x − μ k ) T \pi_k=\frac{m_k}{m} \quad \mu_k=\frac{1}{m_k}\sum_{x \in L(k)}x \quad \Sigma_k=\frac{1}{m_k}\sum_{x \in L(k)}(x-\mu_k)(x-\mu_k)^T πk=mmkμk=mk1x∈L(k)∑xΣk=mk1x∈L(k)∑(x−μk)(x−μk)T

符号说明:m 是总样本数, m k m_k mk 是第 k 个簇的样本数, L ( k ) L(k) L(k) 表示第 k 个簇的所有样本。

通俗理解:权重 π k \pi_k πk 是第 k 个簇的样本占比;均值 μ k \mu_k μk 是第 k 个簇所有样本的平均值(质心);协方差 Σ k \Sigma_k Σk 是第 k 个簇样本相对于质心的离散程度。

2. 未知样本分类(无监督场景,最常用)

如果不知道样本的类别(比如无标签数据,这是聚类的常见场景)

核心思路是:假设数据服从 GMM 分布,找到一组参数使得"生成这组数据的概率最大"(即最大化似然函数)。

首先定义似然函数(所有样本同时出现的概率):
L ( θ ∣ x ) = ∏ i = 1 N P r ( x i ; θ ) L(\theta|x)=\prod_{i=1}^{N}Pr(x_i;\theta) L(θ∣x)=i=1∏NPr(xi;θ)

其中 θ \theta θ 代表所有参数( π i \pi_i πi、 μ i \mu_i μi、 Σ i \Sigma_i Σi), P r ( x i ; θ ) Pr(x_i;\theta) Pr(xi;θ) 是在参数 θ \theta θ 下生成样本 x i x_i xi 的概率。

技巧:直接求解这个乘积形式的似然函数很复杂,通常会取对数(把乘法变成加法),简化计算。

GMM 的对数似然函数:
∑ i = 1 m log ⁡ { ∑ k = 1 K π k N ( x i ; μ k , Σ k ) } \sum_{i=1}^{m} \log \left\{ \sum_{k=1}^{K} \pi_k \mathcal{N}(x_i; \mu_k, \Sigma_k) \right\} i=1∑mlog{k=1∑KπkN(xi;μk,Σk)}

最终目标:找到一组参数 θ \theta θ,让这个对数似然函数的值最大------ 这就需要用到前面说的 EM 算法来求解。

比较
最大似然估计(MLE) 最大化似然函数(GMM + EM)
场景类型 有监督 / 类别已知 无监督 / 类别未知
优化目标 在已知分配下,直接最大化似然 在未知分配下,最大化整体对数似然
似然函数形式 各簇样本的高斯似然 混合高斯的加权和: ∑ k π k N ( x i ; μ k , Σ k ) \sum_k \pi_k \mathcal{N}(x_i;\mu_k,\Sigma_k) ∑kπkN(xi;μk,Σk)
参数求解方式 有解析解,直接计算 无解析解,需迭代优化(EM)
权重 π k \pi_k πk π k = m k m \displaystyle \pi_k=\frac{m_k}{m} πk=mmk 由样本对簇的"软归属概率"估计
均值 μ k \mu_k μk 簇内样本的算术平均 按后验概率加权的均值
协方差 Σ k \Sigma_k Σk 簇内样本的经验协方差 按后验概率加权的协方差
样本归属 硬划分(一个样本只属于一个簇) 软划分(一个样本对多个簇有概率)
典型算法 直接 MLE 计算 EM 算法(E 步 + M 步)
计算复杂度 低,一次计算完成 较高,需要多轮迭代

总结

  1. GMM 是"多个高斯分布加权混合"的概率模型,核心用于聚类和拟合数据分布

  2. 比 K-Means 更灵活(能处理非球形簇、软聚类),K-Means 是 GMM 的特殊情况

  3. 核心参数是权重(簇占比)、均值(簇中心)、协方差(簇形状)

  4. 未知样本类别时,用 EM 算法(猜-修正-迭代)求解参数,实现无监督聚类

  5. 核心逻辑:通过最大化"数据生成概率",找到最贴合数据的 k 个簇

相关推荐
风途知识百科5 小时前
物联网虫情测报灯
人工智能·物联网
aaaa_a1335 小时前
李宏毅:AI AGENT
人工智能
UWA5 小时前
GPM 2.0全新功能发布|GPU精准监测 + 精细化运营,重构游戏性能管控新范式
人工智能·游戏·性能优化·重构·游戏开发·uwa
无心水5 小时前
【Stable Diffusion 3.5 FP8】1、Stable Diffusion 3.5 FP8 入门指南:为什么它能颠覆文生图效率?
人工智能·python·深度学习·机器学习·stable diffusion·ai镜像开发·ai镜像
Elastic 中国社区官方博客5 小时前
Elasticsearch:使用 ES|QL 与 dense_vector 字段
大数据·数据库·人工智能·sql·elasticsearch·搜索引擎·全文检索
沉木渡香5 小时前
AI驱动:我的系统化探索与成长之年(2025)
人工智能·年终总结·2025·ai驱动
OpenCSG5 小时前
高性能 · 低门槛| i20 & RTX 4090 正式上线 OpenCSG 社区与三峡传神社区!
人工智能·opencsg
IT_陈寒5 小时前
Redis性能提升50%的7个实战技巧,连官方文档都没讲全!
前端·人工智能·后端
小女孩真可爱5 小时前
大模型学习记录(九)-------Agent
人工智能·pytorch·深度学习·学习·大模型