3.3 GMM (高斯混合模型)

一、高斯混合模型

高斯混合模型(GMM)通过高斯分布描述每个类别的数据分布。与K-means仅提供中心点不同,GMM采用概率模型实现soft assignment,可计算每个数据点属于各类别的概率。

1.高斯分布 00:36
1) 一维高斯分布 00:38

一维高斯模型公式中,μ表示中心点,σ为标准差。不同均值与标准差组合会形成不同的分布曲线。

2) 多元高斯分布 00:54

多元高斯模型扩展至多维空间,公式形式与一维类似但变量升级为向量/矩阵:x和μ为向量,Σ为协方差矩阵(二维对应2×2矩阵)。平方运算替换为向量转置与矩阵乘法。

2.高斯混合模型 01:25

GMM数学表达为k个高斯分布的线性组合,需预先设定k值(与K-means相同)。模型由三参数确定:

  • π_k:第k个高斯分布的权重
  • μ_k:第k个高斯分布的均值

Σ_k:第k个高斯分布的协方差矩阵

  • 通过参数可生成数据样本,但聚类任务需计算后验概率p(z_k=1|x),即已知数据点x时属于各高斯分布的概率。引入隐变量z_k(one-of-K编码)表示类别归属,其先验分布p(z_k=1)=π_k。结合贝叶斯公式,后验概率可分解为:
  • 先验概率p(z_k=1) - 似然p(x|z_k=1) - 证据p(x)(通过全概率公式计算)
1) 高斯混合模型的图形模型 06:20
  • 高斯混合模型的有向图表示

GMM可建模为有向图:z表示类别选择(服从分类分布π),x表示观测数据(服从选定类别的高斯分布)。联合分布分解为p(z)p(x|z)。

  • z的分布与one-of-K表示

z采用one-of-K编码(仅一个元素为1,其余为0),其分布满足:

  • p(z_k=1)=π_k
  • ∑π_k=1

π_k∈(0,1)

  • 可通过紧凑形式表达:p(z)=∏π_k^{z_k}

  • p(z)的简洁表达形式

one-of-K编码的连乘形式确保当z_k=1时,其他z_j=0的项退化为1(因0^0=1)。该形式便于后续推导。

  • 给定z时x的条件分布

当z_k=1时,p(x|z)退化为第k个高斯分布。完整条件分布可写为:p(x|z)=∏N(x|μ_k,Σ_k)^{z_k}

  • 边缘分布p(x)的推导

通过对z积分得边缘分布:p(x)=∑π_k N(x|μ_k,Σ_k),即GMM的标准线性组合形式。该推导将模型参数与后验概率计算系统关联。

2) 高斯混合模型的后验概率 13:14

后验概率γ(z_k)计算公式为:

γ(z_k)=p(z_k=1|x)=π_k N(x|μ_k,Σ_k)/∑π_j N(x|μ_j,Σ_j)

该式需已知模型参数{π_k,μ_k,Σ_k},实际应用中需通过EM算法从数据中估计这些参数。

3) 高斯混合模型的求解 15:14

求解高斯混合模型需采用最大似然估计方法。最大似然估计的核心目标是使观测数据点在模型下的联合概率最大化。具体表现为:给定数据点集合X={x₁,x₂,...,xₙ},需最大化似然函数∏ᵢP(xᵢ|θ),其中θ表示模型参数。由于连乘运算处理困难,通常转换为对数似然函数∑ᵢlogP(xᵢ|θ)进行优化。高斯混合模型的对数似然函数可表示为∑ᵢlog(∑ₖπₖN(xᵢ|μₖ,Σₖ)),优化该函数可获得参数μₖ、Σₖ和πₖ的估计值。完成参数估计后,方可计算后验概率P(zₖ|xᵢ)。

  • 奇异点问题

高斯混合模型在最大似然估计中存在奇异点问题。当假设各高斯分布为各向同性(Σₖ=σₖ²I)时,若某数据点xₙ恰好与高斯中心μⱼ重合,则概率密度函数P(xₙ|μⱼ,σⱼ)的分母会出现σⱼ。当σⱼ趋近于零时,概率值将趋向无穷大,导致似然函数无法计算。该现象源于高斯分布可退化至单点分布(方差为零)。解决方案包括采用MAP估计或贝叶斯方法,通过引入先验约束(如方差下限)避免参数崩溃。实际应用中常采用启发式方法:当检测到方差过小时,重新随机初始化参数。

  • 求解最大似然项

    21:28

高斯混合模型参数求解采用交替优化策略:

  • 均值μₖ的估计:固定πₖ和Σₖ后,通过求导可得μₖ=∑ₙγ(zₙₖ)xₙ/Nₖ,其中γ(zₙₖ)为后验概率,Nₖ=∑ₙγ(zₙₖ)表示属于第k个分量的有效点数。该结果为后验概率加权平均,与K-means的硬分配形成对比

  • 协方差Σₖ的估计:固定πₖ和μₖ后,Σₖ=∑ₙγ(zₙₖ)(xₙ-μₖ)(xₙ-μₖ)ᵀ/Nₖ,同样体现加权平均特性

  • 权重πₖ的估计:需满足∑ₖπₖ=1的约束条件,通过拉格朗日乘子法可得πₖ=Nₖ/N,具有"各类别占比"的直观解释

  • GMM的MLE总结

    29:15

高斯混合模型的最大似然估计流程分为两步迭代:

  • E-step

    :计算后验概率γ(zₙₖ)=πₖN(xₙ|μₖ,Σₖ)/∑ⱼπⱼN(xₙ|μⱼ,Σⱼ),

    实现软分配 -

    M-step

    :更新模型参数

    • μₖ更新为当前簇的加权均值
    • Σₖ更新为加权协方差
    • πₖ更新为簇占比
    • 初始化需指定各高斯分布的权重、均值和协方差。迭代过程中,协方差矩阵可能从各向同性(圆形)发展为各向异性(椭圆),最终收敛至数据分布的最优表示。
相关推荐
新加坡内哥谈技术1 天前
Claude C 编译器:它揭示了软件未来的什么
人工智能
予枫的编程笔记1 天前
【Kafka进阶篇】Kafka消息重复消费?Exactly-Once语义落地指南,PID+事务消息吃透
人工智能·kafka·消息队列·exactly-once·分布式消息·kafka幂等性·kafka事务消息
踢足球09291 天前
寒假打卡:2026-2-23
数据结构·算法
Loo国昌1 天前
【AI应用开发实战】09_Prompt工程与模板管理:构建可演进的LLM交互层
大数据·人工智能·后端·python·自然语言处理·prompt
新缸中之脑1 天前
Wellows:生成式AI搜索优化平台
人工智能·chatgpt
aiAIman1 天前
OpenClaw 使用和管理 MCP 完全指南
人工智能·语言模型·开源
lusasky1 天前
对比ZeroClaw 和 OpenClaw
人工智能
Clarence Liu1 天前
用大白话讲解人工智能(16) 强化学习:教AI“玩游戏“学决策
人工智能·玩游戏
田里的水稻1 天前
FA_建图和定位(ML)-超宽带(UWB)定位
人工智能·算法·数学建模·机器人·自动驾驶
Navigator_Z1 天前
LeetCode //C - 964. Least Operators to Express Number
c语言·算法·leetcode