高斯混合模型深入理解
高斯混合模型GMM是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。网上的关于GMM的大多资料介绍都是大段公式,而且符号表述不太清楚,或者文笔非常生硬。本文尝试用通俗的语言全面介绍一下GMM,不足之处还望各位指正。https://blog.csdn.net/njustzj001/article/details/50889023
首先给出GMM的定义
这里引用李航老师《统计学习方法》上的定义,如下图:
定义很好理解,高斯混合模型是一种混合模型,混合的基本分布是高斯分布而已。
第一个细节:为什么系数之和为0?
PRML上给出过一张图:
这图显示了拥有三个高斯分量的一个维度的GMM是如何由其高斯分量叠加而成。这张图曾经一度对我理解GMM造成了困扰。因为如果是这样的话,那么这三个高斯分量的系数应该都是1,这样系数之和便为3,才会有这样直接叠加的效果。而这显然不符合GMM的定义。因此,这张图只是在形式上展现了GMM的生成原理而并不精确。
那么,为什么GMM的各个高斯分量的系数之和必须为1呢?
其实答案很简单,我们所谓的GMM的定义本质上是一个概率密度函数。而概率密度函数在其作用域内的积分之和必然为1。GMM整体的概率密度函数是由若干个高斯分量的概率密度函数线性叠加而成的,而每一个高斯分量的概率密度函数的积分必然也是1,所以,要想GMM整体的概率密度积分为1,就必须对每一个高斯分量赋予一个其值不大于1的权重,并且权重之和为1。
第二个细节:求解GMM参数为什么需要用EM算法
总所周知,求解GMM参数使用EM算法。但是为什么呢?这样是必须的吗?
首先,类似于其他的模型求解,我们先使用最大似然估计来尝试求解GMM的参数。如下:
可以看出目标函数是和的对数,很难展开,优化问题麻烦,难以对其进行求偏导处理。因此只能寻求其它方法。那就是EM算法。
第三个细节:求解GMM的EM算法隐变量的理解
使用EM算法必须明确隐变量。求解GMM的时候设想观测数据x是这样产生的:首选依赖GMM的某个高斯分量的系数概率(因为系数取值在0~1之间,因此可以看做是一个概率取值)选择到这个高斯分量,然后根据这个被选择的高斯分量生成观测数据。然后隐变量就是某个高斯分量是否被选中:选中就为1,否则为0。
按照这样的设想:隐变量是一个向量,并且这个向量中只有一个元素取值为1,其它的都是0。因为假设只有一个高斯分量被选中并产生观测数据。然而我们的GMM的一个观测数据在直观上应该是每个高斯分量都有产生,而不是由一个高斯分量单独生成,只是重要性不同(由系数控制)。那么,这样的隐变量假设合理吗?
答案是合理,只是理解起来比较“费劲”而已。
首先明确一点:GMM的观测数据是啥,GMM的函数结果又是啥。如果是一个一维的GMM,那么其观测数据就是任意一个实数。而GMM这个概率密度函数在输入这个观测数据之后输出的是这个实数被GMM产生的概率而已。
接着,现在我们不知道GMM具体的参数值,想要根据观测数据去求解其参数。而GMM的参数是由各个高斯分量的参数再加上权值系数组成的。那么我们就先假定,如果这个观测值只是由其中一个高斯分量产生,去求解其中一个高斯分量的参数。我们假设不同的观测值都有一个产生自己的唯一归宿,就像K-means算法一样。然后在后面的迭代过程中,根据数据整体似然函数的优化过程,逐渐找到一个最优的分配方案。然而,不同于K-means算法的是,我们最终给出的只是某一个观测是由某一个高斯分量唯一生成的概率值,而不是确定下来的属于某一类。每个高斯分量其实都可以产生这个观测数据只是输出不同而已,即产生观测数据的概率不同。最后,根据每个高斯分量产生观测数据的可能性不同,结合其权值汇总出整个GMM产生这个观测数据的概率值。
终极理解:使用EM算法求解GMM参数
1、定义隐变量
我们引入隐变量γjkγjk,它的取值只能是1或者0。
- 取值为1:第jj个高斯分量
那么对于每一个观测数据yjyj的先验分布概率。
2、得到完全数据的似然函数
对于观测数据yjyj
3、得到各个高斯分量的参数计算公式
首先,我们将上式中的lnN(yj|μk,Σk)lnN(yj|μk,Σk)
假设我们已经知道隐变量γjkγjk
至此,我们在隐变量已知的情况下得到了GMM的三种类型参数的求解公式。
4、得到隐变量的估计公式
根据EM算法,现在我们需要通过当前参数的取值得到隐变量的估计公式也就是说隐变量的期望的表达形式。即如何求解E{γjk|y,Θ}E{γjk|y,Θ}
高斯混合模型深入理解相关推荐
- 高斯混合模型理解汇总
https://blog.csdn.net/weixin_42555080/article/details/92222665 高斯混合模型终极理解 https://blog.csdn.net/lin_ ...
- 一维数据高斯滤波器_透彻理解高斯混合模型
高斯混合模型GMM是一个非常基础并且应用很广的模型.对于它的透彻理解非常重要. 本文从高斯分布开始逐步透彻讲解高斯混合模型 高斯分布 高斯分布有两个参数: μ = mean(数据的中心) σ2 =va ...
- 高斯混合模型(GMM)浅入理解
学习的资料主要是看大佬的一些博客和李航老师的统计学习第九章,感谢! 其中有篇笔记让小匹眼前一亮,这里贴出来: 知乎_戴文亮_高斯混合模型(GMM) 进入正题 目录 1.1 概念理解 1.2 隐变量 1 ...
- 高斯混合模型的终极理解
高斯混合模型GMM是一个非常基础并且应用很广的模型.对于它的透彻理解非常重要.网上的关于GMM的大多资料介绍都是大段公式,而且符号表述不太清楚,或者文笔非常生硬.本文尝试用通俗的语言全面介绍一下GMM ...
- 高斯混合模型(GMM)及其EM算法的理解
一个例子 高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况(或者是同 ...
- 理解高斯混合模型中期望最大化的M-Step
在本篇文章中将解释高斯混合模型(GMM)的关键部分背后的数学原理,即期望最大化(EM),以及如何将这些概念转换为Python. 这个故事的重点是EM或M-Step. 注意:这不是有关端到端GMM算法的 ...
- 高斯混合模型GMM的理解
高斯混合模型(Gaussian Mixture Model,简称GMM)是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型.通俗点 ...
- 独家 | 使用高斯混合模型,让聚类更好更精确(附数据代码学习资源)
作者:AISHWARYA SINGH 翻译:张玲 校对:张一豪 本文约3500字,建议阅读10+分钟. 本文简单介绍聚类的基础知识,包括快速回顾K-means算法,然后深入研究高斯混合模型的概念,并用 ...
- 【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )
文章目录 I . 高斯混合模型 ( 样本 -> 模型 ) II . 高斯混合模型 ( 模型 -> 样本 ) III . 高斯混合模型 与 K-Means 迭代过程对比 IV . 高斯混合模 ...
最新文章
- 速度收藏!600页阿里技术全景图曝光,程序员看完都沸腾了
- VTK:Utilities之ColorTransferFunction
- gg oracle tjs 同步_配置Goldengate从Oracle到PostgreSQL的同步复制
- 一步步编写操作系统 24 编写内核加载器
- Java基础知识(一)
- 这些数据分析方法你都掌握了么
- 删除操作记录_微信消费记录能删吗?专家告诉你这样做百分百彻底删除!
- Java基础概念干货(字符、标识符、数据类型... ...)
- VXLAN Ethernet Virtual Private Network集中式和分布式网关实验(华为设备)
- matlab把图例放在左边,如何将图例放在p之外
- Python入门者必须吃透嚼烂的69个内置函数一(1含案例详解)
- 德怀特·艾森豪威尔(1890-1969)美国第34任总统,陆军五星上将。
- 白嫖党最爱!撸了郭霖大神写的Framework源码笔记,最强技术实现
- 最简单的 UE 4 C++ 教程 —— 扫描多线轨迹【十六】
- oracle按照in的顺序进行排序
- android go怎么安装,Android studio3.0安装教程-Go语言中文社区
- 内蒙古大学计算机学院团支部书记,内蒙古大学团委鼓励研支团勇做新时代弄潮儿...
- 大白话解析Context中的cancelCtx
- 什么是stm32的部分重映像与完全重映像
- ESP32学习:AD/DA数模转换
热门文章
- calabash-android 环境问题
- SketchUp快快快快快速入门
- iOS - Swift - 语法糖
- pipy 的whl和egg的区别
- 网络版EXCEL订单业务系统实战(多人网络同时分权限操作同一个EXCEL文件)-张涛-专题视频课程...
- CN2线路好处都有啥?
- Godot游戏开发视频课程
- Win7与雪豹对比评测:雪豹更省电 Win7更适合游戏
- 视频【解码】原理(播放器原理),音视频同步等
- ABAQUS壳单元加钢筋层,分析报错“The rebar name is required in a particular element or element set”