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

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

知乎: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 个簇

相关推荐
陈广亮27 分钟前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬36 分钟前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia1 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区1 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两4 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪4 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat232554 小时前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源
王鑫星4 小时前
SWE-bench 首次突破 80%:Claude Opus 4.5 发布,Anthropic 的野心不止于写代码
人工智能
lnix4 小时前
当“大龙虾”养在本地:我们离“反SaaS”的AI未来还有多远?
人工智能·aigc