高斯混合模型(GMM)和EM算法详解

2023-11-09

小白一枚,接触到GMM和EM,现将学习到的整理出来,如有错误,欢迎指正,文中涉及到公式的推导比较繁琐,故先在纸上推导出来再拍照发出来。希望大家多多交流,共同进步。接下来将按照思路一步一步进行介绍。

1. 单高斯模型GSM(一维)
单高斯模型很简单,大家也很清楚,这里不做过多的解释,如不明白可自行百度。如图
图一
概率密度函数为:
在这里插入图片描述
在这里插入图片描述

2.单高斯模型(多维,以二维为例)
在这里插入图片描述
二维高斯分布图像如下
在这里插入图片描述
关于二维高斯分布的参数设定对为高斯曲面的影响,可以参考这篇文章(二维高斯分布的参数分析

(以上两条是基础,为了下面做铺垫,接下来我将通过例子引出高斯混合模型。)

3.高斯混合模型(GMM)
为什么会有高斯混合模型呢??
首先通过一个例子引出高斯混合模型。这个例子的数据集被称为“老忠实间歇喷泉”数据集,由美国黄石国家公园的老忠实间歇喷泉的272次喷发的测量数据组成。每条测量记录包括喷发持续了几分钟(横轴)和距离下次喷发间隔了几分钟(纵轴)。我们看到数据集主要聚集在两大堆中,一个简单的高斯分布不能描述这种结构,而两个高斯分布的线性叠加可以更好地描述这个数据集的特征。
在这里插入图片描述
我们看上图就是“老忠实间歇喷泉”的数据集,左图,我们用一个高斯模型对样本来做分析,显然,一个高斯分布是不合适的。一般来说越靠近椭圆中心样本出现的概率越大,这是由概率密度函数决定的,但是这个高斯分布的椭圆中心的样本量却极少。显然样本服从单高斯分布的假设并不合理。单高斯模型无法产生这样的样本。基于此,我们引入了高斯混合模型,我们发现用两个高斯模型通过一定的权重形成的混合高斯模型可以产生这样的样本,如右上面右图。

高斯混合模型的本质就是融合几个单高斯模型,来使的模型更加复杂,从而产生更复杂的样本。理论上,如果某个混个高斯模型融合的高斯模型个数足够多,他们之间的权重设定的足够合理,这个混合模型可以拟合任意分布的样本。

更一般话的描述为:假设混合高斯模型有K个高斯模型组成(即数据包含K个类),则GMM的概率密度函数如下:
在这里插入图片描述
在这里插入图片描述
4.EM算法
4.1 为什么要有EM算法(或者EM算法是用来干什么的)
为了引出EM算法,首先我们先解决单高斯模型求参数的问题。
在这里插入图片描述
如图所示是我画的一些样本,样本满足高斯分布,我们的目的就是根据已知的样本求出该高斯分布的参数μ,Σ(换句话说,我们已知这些样本,我们要找到一个合适的高斯分布(也就是确定高斯分布的参数μ,Σ),使的这个高斯分布能产生这组样本的可能性尽可能的大)。

那么如何找到这个合适的高斯分布(也就是如何确认高斯分布的参数μ,Σ呢?),这时候我们就可以用到似然函数来求解。
在这里插入图片描述
如上图求解,我们可以得到想求的参数。所以最大化似然函数的意义就是:通过使得样本集的联合概率最大来对参数进行估计,从而选择最佳的分布模型。(也可以说,利用已知样本结果,反推最有可能(最大概率)导致这样结果的参数值)

若对于高斯混合模型求参数,我们应该如何来解决呢?
在这里插入图片描述
如上图所示,我们给出了一个混合高斯模型。我们想求此高斯混合模型的参数θ={μ,Σα},其中α为单高斯混合模型的权重。如果我们按照前面单高斯模型求解参数,则我们要用似然函数来求解,此混合模型的对数似然函数为:
在这里插入图片描述
用MLE求参数θ为:
在这里插入图片描述
根据上图,我们可以看到,如果我们用MLE来求解高斯混合模型的话,我们很难求得,因为上式中log后面有一个求和并且高斯分布也是多维的,这样我们是无法通过求导得到参数。

此时,我们就可以引入EM算法来解决。

EM算法解决的就是具有隐变量的混合模型的参数估计问题(隐变量的存在实际上就是数据缺失问题,缺失了各个样本来源于哪一类的记录)

4.2EM算法的公式
此部分涉及到太多的公式和公式推导,我会在纸上推导出来然后贴出照片。
在这里插入图片描述
关于验证 函数H,我们会用到一个知识点Jensen不等式

--------------------------关于Jensen不等式:------------------------------------
设f是定义域为实数的函数,如果对于所有的实数x。如果对于所有的实数x,f(x)的二次导数大于等于0,那么f是凸函数。当x是向量时,如果其hessian矩阵H是半正定的,那么f是凸函数。如果只大于0,不等于0,那么称f是严格凸函数。
Jensen不等式表述如下:

如果f是凸函数,X是随机变量,那么:E[f(X)]>=f(E[X])

特别地,如果f是严格凸函数,当且仅当X是常量时,上式取等号。
如图所示:
在这里插入图片描述
图中,实线f是凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。(就像掷硬币一样)。X的期望值就是a和b的中值了,图中可以看到E[f(X)]>=f(E[X])成立。

当f是(严格)凹函数当且仅当-f是(严格)凸函数。

Jensen不等式应用于凹函数时,不等号方向反向。

------------------------------分割线----------------------------------------------------
继续证明:
在这里插入图片描述
4.3用EM算法解决GMM
尝试用EM算法来解决GMM问题,推导过程为先在纸上推导然后拍照。
在这里插入图片描述
在这里插入图片描述
4.4EM算法总结
此文章中的EM算法是一种狭义上的EM 算法,是针对GMM来讲解的。EM算法是一种迭代算法,对于GMM不能像单高斯模型那样利用MLE来直接给出结果,而是只能通过不断的求期望和最大化,一步一步的逼近最终的结果。

期望最大算法是一种从不完全数据或有数据丢失的数据集(存在隐含变量)中求解概率模型参数的最大似然估计方法。

EM算法的流程:
1.初始化分布参数θ;
2.E步骤:根据参数初始值或上一次迭代的模型参数来计算出隐性变量的后验概率,其实就是隐性变量的期望。作为隐藏变量的现估计值:
在这里插入图片描述
M步骤:将似然函数最大化以获得新的参数值:
在这里插入图片描述
这个不断的迭代,就可以得到使似然函数L(θ)最大化的参数θ了

5.参考文献
https://blog.csdn.net/zk_ken/article/details/82350325
https://blog.csdn.net/lin_limin/article/details/81048411

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高斯混合模型(GMM)和EM算法详解 的相关文章

随机推荐

  • 花费7元训练自己的GPT 2模型

    在上一篇博客中 我介绍了用Tensorflow来重现GPT 1的模型和训练的过程 这次我打算用Pytorch来重现GPT 2的模型并从头进行训练 GPT 2的模型相比GPT 1的改进并不多 主要在以下方面 1 GPT 2把layer nor
  • Gensim 中 word2vec 模型的恢复训练:载入存储模型并继续训练

    Gensim 中 word2vec 模型的恢复训练 本文为系列文章之一 前面的几篇请点击链接 NLP 利器 gensim 库基本特性介绍和安装方式 NLP 利器 Gensim 库的使用之 Word2Vec 模型案例演示 NLP 利器 Gen
  • 数据挖掘概述

    目录 1 数据挖掘概述 2 数据挖掘常用库 3 模型介绍 3 1 分类 3 2 聚类 3 3 回归 3 4 关联 3 5 模型集成 4 模型评估 ROC 曲线 5 模型应用 1 数据挖掘概述 数据挖掘 寻找数据中隐含的知识并用于产生商业价值
  • 无基础学c语言的打卡日记总论

    背景知识 笨人浙江考生 选课是政史地 目前在读大一 知道自己的专业学c并且还学数学分析和高等代数 一开始不以为意 学校用的教材是谭浩强老师的c语言程序设计 推荐的 小白友好 上课之前有很认真的自习课本 第一章好像是一个总论 里面有一些思想以
  • 在NPU上的切片操作x=x[:,::-1,:,:]不生效的分析解决

    1 系统环境 硬件环境 Ascend GPU CPU Ascend GPU MindSpore版本 1 9 0 执行模式 PyNative Graph 不限 Python版本 3 7 5 操作系统平台 Linux 2 报错信息 2 1 问题
  • winform下mapxtreme2008 v7.0 生成release版提示找不到dll问题

    在winform下基于mapxtreme2008 v7 0 生成了一个地图软件 用debug方式运行无误 但改为release版时提示缺少一大堆dll 如 无法从C Program Files x86 Common Files MapInf
  • 本地网站域名与联网冲突吐槽篇

    提示 前面是吐槽360使用bug 以及网站开发者使用弊端 解决冲突主要方法在后面 前言是解决电脑无法保存修改的hosts文件真相以及解决棒法 处理不行的话 只能一棒打死安全软件 前言 电脑里安装了360之类的安全软件 安全类软件为了安全 往
  • 时序预测

    时序预测 MATLAB实现时间序列回归之评估模型残差及统计分布 目录 时序预测 MATLAB实现时间序列回归之评估模型残差及统计分布 基本介绍 程序设计 异方差性 统计分布 学习总结 参考资料 致谢 基本介绍 残差分析的基本目的是检查 CL
  • 偷懒的一天-------Day83

    今天实在是学不进去 从公司里工作着也是浑浑噩噩的 虽然不是我媳妇生孩子 但这也是我们这个大家庭里的第一个孩子 我的亲大侄子啊 当然还可能是侄女 还在想名字 都想了好多了 还是有些激动有些紧张啊 偷懒一天 来码上几个字 草草写上至少我也知道我
  • Opencv的基础操作

    一 图像填充 首先定义图像显示函数 def cv show name img cv2 imshow name img cv2 waitKey 0 cv2 destroyAllWindows 图像读取 img cat cv2 imread c
  • 一定能让你理解的素数筛法——埃氏筛法和欧式筛法

    先上代码 埃氏筛法 include
  • 卸载Docker方法

    卸载步骤 在安装Autoware库的时候安装了Docker 发现电脑硬盘容量被占用不少 现在想卸载一下docker 查找了很多资料 最终使用以下方法完整卸载 1 在配置autoware的时候其实安装的docker ce 所以需要执行 sud
  • Nginx基本使用

    一 Nginx作用 1 HTTP服务器 2 反向代理 3 负载均衡 4 正向代理 5 虚拟主机 等 二 Nginx安装 1 下载nginx最新稳定版 windows nginx 1 14 0 2 解压 备注 如上图 配置关键配置文件后 双击
  • 基于tensorflow实现手写数字识别

    实验目的 了解机器学习的相关知识 实现基于tensorflow的手写数字识别 实验环境 ubuntu16 04 或 windows python 3 默认安装版本 tensorflow 2 0 版本以上 或其他深度学习框架 实验内容 实现基
  • 内网穿透-Natapp实现免费远程桌面

    很多人都在使用Teamviewer访问远程桌面 但收费很贵 而且经常有一些安全漏洞 下面教大家一个免费安全的远程桌面方法 打开Natapp主页 https natapp cn 点击 立即下载 按钮 下载操作系统匹配的客户端 下载之后 解压至
  • 可能是史上最全的Kubernetes证书解析

    为了避免广告法 题目还是加个可能吧 想要安全就必须复杂起来 证书是少不了的 在Kubernetes中提供了非常丰富的证书类型 满足各种不同场景的需求 今天我们就来看一看Kubernetes中的证书 k8s证书分类 在说证书之前 先想想作为集
  • Shiro简单配置Springboot版(1)

    1 权限的管理 1 1 什么是权限管理 基本上涉及到用户参与的系统都要进行权限管理 权限管理属于系统安全的范畴 权限管理实现对用户访问系统的控制 按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源 权限管理包括用户身份认证
  • 【论文速递】CCDC2021 - 轻量级网络的结构化注意知识蒸馏

    论文速递 CCDC2021 轻量级网络的结构化注意知识蒸馏 论文原文 Structured Attention Knowledge Distillation for Lightweight Networks 获取地址 https ieeex
  • 【文献调研】再入院预测(1)

    1 基于MIMIC 3数据库的心衰患者诊断与再入院模型研究 1 1 文献来源 太原理工大学 2022年6月 1 2 摘要 背景 利用深度学习去大规模的分析电子健康记录数据仍具有极大的挑战 基于大量医学文本 及时识别心力衰竭患者并建立再入院预
  • 高斯混合模型(GMM)和EM算法详解

    小白一枚 接触到GMM和EM 现将学习到的整理出来 如有错误 欢迎指正 文中涉及到公式的推导比较繁琐 故先在纸上推导出来再拍照发出来 希望大家多多交流 共同进步 接下来将按照思路一步一步进行介绍 1 单高斯模型GSM 一维 单高斯模型很简单