机器学习 高斯混合模型

article/2025/10/11 11:46:35

高斯混合模型

  • 前言
  • 高斯混合模型
    • 高斯分布
    • 混合模型
    • 高斯模型
      • 单高斯模型
      • 高斯混合模型
      • 高斯混合模型训练
        • EM算法
  • 应用
    • 图像背景的高斯混合模型
    • 智能监控系统
  • 参考

前言

之前在一次技术讨论当中,针对文本处理的时候被问到高斯混合模型。当时我对“高斯混合模型”都是比较懵圈,因此写下这篇笔记来记录高斯混合模型。高斯混合模型比较经典,有很多相关的资料也做了非常详细的介绍,本博客的参考内容请见参考部分

高斯混合模型

高斯混合模型通常简称GMM,是一种业界广泛使用的聚类算法,该方法使用了高斯分布作为参数模型,并使用期望最大(Expectation Maximization,简称EM)算法进行训练。

高斯分布

高斯分布有时也被成为正态分布,是一种自然界大量存在的,最为常见的分布形式。高斯分布的概率密度函数公式如下: f ( x ∣ μ , σ 2 ) = 1 2 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x|\mu, \sigma^2) = \frac{1}{\sqrt{2\sigma^2\pi}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(xμ,σ2)=2σ2π 1e2σ2(xμ)2其中 μ \mu μ表示均值, σ \sigma σ表示标准差,均值对应正态分布的中间位置。正态分布意思是95%的数据分布在均值周围2个标准差的范围内。上面公式在一直参数的情况下,输入变量 x x x,可以获得对应的概率密度。在使用之前需要对概率分布进行归一化,即曲线下面的面积之和为1,这样才能确保返回的概率密度在允许的取值范围内。

混合模型

混合模型是一个可以用来表示在总体分布中含有K个子分布的概率模型。换言之概率模型表示了观测数据在总体中的概率分布,它是由K个子分部组成的混合分布。混合模型不要求观测数据提供关于子分部的信息,来计算观测数据在总体分布中的概率。

高斯模型

单高斯模型

当样本数据 X X X是一维数据时,高斯分布遵从下方的概率密度函数: f ( x ∣ μ , σ 2 ) = 1 2 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x|\mu, \sigma^2) = \frac{1}{\sqrt{2\sigma^2\pi}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(xμ,σ2)=2σ2π 1e2σ2(xμ)2其中 μ \mu μ表示均值, σ \sigma σ表示标准差。当样本数据数据是多维数据的时,高斯分布遵从下方概率密度函数: P ( x ∣ θ ) = 1 ( 2 π ) D 2 ∣ ∑ ∣ 1 2 e x p ( − ( x − μ ) T ∑ − 1 ( x − μ ) 2 ) P(x|\theta) = \frac{1}{(2\pi)^{\frac{D}{2}}|\sum|^\frac{1}{2}}exp(-\frac{(x-\mu)^T\sum^{-1}(x-\mu)}{2}) P(xθ)=(2π)2D211exp(2(xμ)T1(xμ))其中, μ \mu μ为数据均值(期望), ∑ \sum 为协方差, D D D为数据维度。

高斯混合模型

高斯混合模型可以看作是由 K 个单高斯模型组合而成的模型,这 K 个子模型是混合模型的隐变量(Hidden variable)。一般来说,一个混合模型可以使用任何概率分布,这里使用高斯混合模型是因为高斯分布具备很好的数学性质以及良好的计算性能。
在这里插入图片描述
首先定义一下信息:

  • x j x_j xj表示第 j j j个观测数据, j = 1 , 2 , ⋯ , N j=1,2,\cdots,N j=1,2,,N
  • K K K是很合模型中高斯模型的数量, k = 1 , 2 , ⋯ , K k=1,2,\cdots,K k=1,2,,K
  • a k a_k ak是观测数据属于第 k k k个子模型的高斯分布密度函数, a k ≥ 0 , ∑ k = 1 K a k = 1 a_k\geq0,\sum^K_{k=1}a_k=1 ak0,k=1Kak=1
  • ϕ ( x ∣ θ k ) \phi(x|\theta_k) ϕ(xθk)是第 k k k个子模型的高斯分布密度函数, θ k = ( μ k , σ k 2 ) \theta_k=(\mu_k, \sigma^2_k) θk=(μk,σk2)
  • γ j k \gamma_{jk} γjk表示第 j j j个观测数据属于第 k k k个子模型的概率
    高斯混合模型的概率分布为: P ( x ∣ θ ) = ∑ k = 1 K a k ϕ ( x ∣ θ k ) P(x|\theta) = \sum^K_{k=1}a_k\phi(x|\theta_k) P(xθ)=k=1Kakϕ(xθk)对于模型而言,参数 θ = ( μ k ^ , σ k ^ , a k ^ ) \theta=(\hat{\mu_k}, \hat{\sigma_k}, \hat{a_k}) θ=(μk^,σk^,ak^),每个子模型的期望、方差(协方差)、在混合模型中发生的概率。

高斯混合模型训练

模型的EM训练过程,通过观察采样的概率值和模型概率值的接近程度来判断一个模型是否拟合良好。然后通过调整模型以让新模型更适配采样的概率值。反复迭代这个过程很多次,直到两个概率值非常接近时停止更新并完成模型训练。

  • 单高斯模型
    使用极大似然法估算参数 θ \theta θ θ = a r g m a x θ L ( θ ) \theta = argmax_\theta L(\theta) θ=argmaxθL(θ)这里假设每个数据点都是独立的,似然函数由概率密度函数给出 L ( θ ) = ∏ j = 1 N P ( x j ∣ θ ) L(\theta)=\prod^N_{j=1}P(x_j|\theta) L(θ)=j=1NP(xjθ)由于每个点发生的概率都很小,乘积会变得很小,因此通常利用maximum Log-Likelihood: log ⁡ L ( θ ) = ∑ j = 1 N log ⁡ P ( x j ∣ θ ) \log L(\theta)= \sum^N_{j=1}\log P(x_j|\theta) logL(θ)=j=1NlogP(xjθ)

  • 高斯混合模型
    Log-Likelihood函数是: log ⁡ L ( θ ) = ∑ j = 1 N log ⁡ P ( x j ∣ θ ) = ∑ j = 1 N log ⁡ ( ∑ k = 1 K a k ϕ ( x ∣ θ k ) ) \log L(\theta)= \sum^N_{j=1}\log P(x_j|\theta) = \sum^N_{j=1}\log(\sum^K_{k=1}a_k\phi(x|\theta_k)) logL(θ)=j=1NlogP(xjθ)=j=1Nlog(k=1Kakϕ(xθk))形如这种每个子模型都有未知的 a k , μ k , σ k a_k,\mu_k,\sigma_k ak,μk,σk需要通过迭代的方法求解高斯混合模型的参数。

EM算法

在这里插入图片描述

应用

图像背景的高斯混合模型

图像灰度直方图反映的是图像中某个灰度值出现的频次,也可以以为是图像灰度概率密度的估计。如果图像所包含的目标区域和背景区域相差比较大,且背景区域和目标区域在灰度上有一定的差异,那么该图像的灰度直方图呈现双峰-谷形状,其中一个峰对应于目标,另一个峰对应于背景的中心灰度。对于复杂的图像,尤其是医学图像,一般是多峰的。通过将直方图的多峰特性看作是多个高斯分布的叠加,可以解决图像的分割问题。

智能监控系统

在智能监控系统中,对于运动目标的检测是中心内容,而在运动目标检测提取中,背景目标对于目标的识别和跟踪至关重要。而建模正是背景目标提取的一个重要环节。

参考

  1. 一文详解高斯混合模型原理
  2. 斯混合模型(GMM)

http://chatgpt.dhexx.cn/article/BH4Gmcfy.shtml

相关文章

高斯混合模型GMM

1. 高斯混合模型概念 高斯混合模型(Gaussian Mixture Model)是一种聚类算法,它是多个高斯分布函数的线性组合,通常用于解决同一集合下的数据包含多种不同的分布情况。 2.高斯混合模型的一个例子 在校园里随机抽取2000个学生&#…

高斯混合模型

一、什么是高斯混合模型(GMM) 高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,通常用于解决同一集合下的数据包含多个不同的分布的情况,如解决分类情况 如下图,明显分成两…

【技术分享】高斯混合模型

本文原作者:尹迪,经授权发布。 原文链接:https://cloud.tencent.com/developer/article/1480731 导语:现有的高斯模型有单高斯模型(SGM)和高斯混合模型(GMM)两种。从几何上讲&#…

高斯混合模型(GMM)

高斯混合模型 k-means 聚类模型非常简单并且易于理解,但是它的简单性也为实际应用带 来了挑战。特别是在实际应用中,k-means 的非概率性和它仅根据到簇中心点的距离来指 派簇的特点将导致性能低下。这一节将介绍高斯混合模型,该模型可以被看…

机器学习笔记 - 什么是高斯混合模型(GMM)?

1、高斯混合模型概述 高斯混合模型 (GMM) 是一种机器学习算法。它们用于根据概率分布将数据分类为不同的类别。高斯混合模型可用于许多不同的领域,包括金融、营销等等!这里要对高斯混合模型进行介绍以及真实世界的示例、它们的作用以及何时应该使用GMM。 高斯混合模型 (GMM) …

机器学习算法(二十九):高斯混合模型(Gaussian Mixed Model,GMM)

目录 1 混合模型(Mixture Model) 2 高斯模型 2.1 单高斯模型 2.2 高斯混合模型 3 模型参数学习 3.1 单高斯模型 3.2 高斯混合模型 4 高斯混合模型与K均值算法对比 1 混合模型(Mixture Model) 混合模型是一个可以用来表示在总…

重启虚拟机异常:Unmount and run xfs_repair

重启虚拟机异常:Unmount and run xfs_repair 解决办法: 原因:看出来应该是sda3分区损坏,修复就可以了 1:启动虚拟机E进入单用户模式 2:在linux16开头的哪一行后面添加rd.break,ctrlx进入救援模式…

Unmount and run xfs_repair

开启虚拟机报错:Unmount and run xfs_repair 从错误可以查看到是vda3错误。 解决办法: 1、umount /dev/vda3 2、xfs_repair -L /dev/vda3 3、reboot 就ok了。

Linux mount/unmount命令

开机自动挂载 如果我们想实现开机自动挂载某设备,只要修改/etc/fstab文件即可。 文件挂载的配置文件:/etc/fstab 查看此文件可知 每行定义一个要挂载的文件系统; 其每行的格式如下 要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项…

android.permission.MOUNT_UNMOUNT_FILESYSTEMS添加权限报错

<!--这是在sd卡内创建和删除文件权限--> <uses-permission android:name"android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name"android.permission.WRITE_SETTINGS" /> 出现报错有两种解决方法&#xff1…

Centos7 虚拟机非法关机导致系统无法启动报Unmount and run xfs_repair的解决方法

1&#xff0c;电脑不正常启动导致我的虚拟机无法启动&#xff0c;报以下错误Unmount and run xfs_repair&#xff0c;大概意思是xfs文件系统出现问题了&#xff0c;导致无法挂载&#xff0c;需要使用xfs_repair进行修复。 2&#xff0c;执行如下命令 xfs_repair /dev/mapper/c…

linux下unmount了移动硬盘之后,硬盘灯还是常亮并且硬盘还在一直转动

linux下unmount了移动硬盘之后&#xff0c;硬盘灯还是常亮并且硬盘还在一直转动 ​ 参考:https://www.zhihu.com/question/23362385 希捷2T移动硬盘 在windows下卸载硬盘之后硬盘灯就不亮了&#xff0c;手摸也没有震动感。 在ubuntu下卸载硬盘之后&#xff0c;硬盘灯仍然常…

centos7异常断电,重启提示Unmount and run xfs_repair

周末服务器由于阵列卡问题&#xff0c;异常重启&#xff0c;重启后前台异常报错&#xff0c;提示磁盘元数据问题&#xff0c;需要修复 如故障图所示&#xff0c;sdb1&#xff0c;sdf1&#xff0c;sdi1 3块磁盘出现问题&#xff0c; 下面的解决办法&#xff1a; 解决办法&…

Android/C/C++ 中解决 USB UnMount(禁止USB端口)

引&#xff1a;因为某些特殊需求&#xff0c;需要在某些设备接入车机的时候&#xff0c;动态UnMount USB设备&#xff0c;因为代码其中有一些方法是自定义过的&#xff0c;所以该文章仅供思路参考。 &#xff08;20200319 更新&#xff09;&#xff1a;在后续跟进中&#xff0…

linux移动硬盘unmount报错处理

备份数据用的移动硬盘unmount时报&#xff1a; 通过fuser命令来kill掉设备进程&#xff0c;再unmount移动设备 先看fuser命令帮助信息&#xff1a; [rootathenadb2 ~]# fuser -helpUsage: fuser [ -a | -s | -c ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME... [ - ] [ -n SPAC…

虚拟机 报错:Unmount and run xfs_repair

1&#xff0c;启动虚拟机的时候&#xff0c;摁 E 键 找到linux16 这一行(在fi下一行) 的最后&#xff0c;添加&#xff1a; rd.break 摁 &#xff1a;ctrlx进入救援模式 2&#xff0c;执行&#xff1a;umount /dev/sda3 xfs_repair -L /dev/sda3 …

VMware 安装Centos7 虚拟机 报Unmount and run xfs_repair

VMware 安装Centos7 虚拟机 报Unmount and run xfs_repair 问题描述 安装完虚拟机后重启无法进入用户登录界面 报错&#xff1a;Unmount and run xfs_repair 原因&#xff1a; dm-0分区损坏 解决办法 卸载目录 umount /dev/mapper/centos-root 修复目录 xfs_repair -L…

linux 开机遇见unmount and run xfs_repair

vmware 开机提示 看不懂反正提示 dm-0 没有正确挂载&#xff0c;需要修复 直接上干货执行如下两条命令 ls -l /dev/mapper xfs_repair /dev/mapper/cl_root 或是 xfs_repair -L /dev/mapper/cl_root echo $? 如果返回零&#xff0c;代表成功 最后重启服务器即可 init 6

Linux虚拟机(lvm)报Unmount and run xfs_repair

原因&#xff1a;因为突然断电&#xff0c;导致机器关闭 结果&#xff1a;发现有一台虚拟机无法启动&#xff0c;一直报错 Unmount and run xfs_repair 分析&#xff1a;主机异常掉电后里面的虚拟机无法启动&#xff0c;主要是损坏的分区 解决办法&#xff1a; 原因&#x…

Ubuntu远程装载硬盘Mount and unmount disk

小虎本来以为Ubuntu&#xff08;Linux系统&#xff09;不能够远程装载硬盘&#xff0c;每次重开机都要线下重新装载硬盘。但是苦于工作站不在身边&#xff0c;跑来跑去太麻烦&#xff0c;所以想远程装载一下。 解决方法 遍历搜索所有硬盘。找到对应名字。 lsblk创建一个文件…