【机器学习系列】GMM第二讲:高斯混合模型Learning问题,最大似然估计 or EM算法?
作者:CHEONG
公众号:AI机器学习与知识图谱
研究方向:自然语言处理与知识图谱
阅读本文之前,首先注意以下两点:
1、机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文的重要结论,方便最快速度理解本文核心。需要进一步了解推导细节可继续往后看。
2、文中含有大量公式,若读者需要获取含公式原稿Word文档,可关注公众号【AI机器学习与知识图谱】后回复:GMM第二讲,可添加微信号【17865190919】进学习交流群,加好友时备注来自CSDN。原创不易,转载请告知并注明出处!
本文主要介绍高斯混合模型的Learning问题,探讨是使用最大似然估计还是EM算法,以及完整的求解思路。
一、问题定义
看如下表格中展现了某个高斯混合模型由c1,c2,...,ckc_1,c_2,...,c_kc1,c2,...,ck个高斯分布组成,其中隐变量zzz的含义是某个样本属于第i个高斯分布的概率是pip_ipi:
C/高斯分布 | c1c_1c1 | c2c_2c2 | … | ckc_kck |
---|---|---|---|---|
z | 1 | 2 | … | k |
P(z) | p1p_1p1 | p2p_2p2 | … | pkp_kpk |
根据上述表格先给出高斯混合模型的概率密度函数p(x)p(x)p(x),公式如下:
结合表格数据,p(z=ck)p(z=c_k)p(z=ck)是概率值pkp_kpk,而当z=ckz=c_kz=ck时XXX概率符合高斯分布,所以高斯混合模型的概率密度函数表示为:
因此本文求解的问题是:高斯混合模型的Learning问题,即对高斯混合模型进行参数学习。现有观测数据Observed Data X=(x1,x2,...,xk)X=(x_1,x_2,...,x_k)X=(x1,x2,...,xk),隐变量ZZZ,完整数据Complete Data为(X,Z)(X,Z)(X,Z),结合上述的概率密度函数需要学习的参数即为:
本文接下来将探讨如何对上述参数Θ\ThetaΘ进行求解。
二、本文结论
结论1: 高斯混合模型Learning问题使用最大似然估计MLE,无法求出解析解,需要使用EM算法去求解高斯混合模型Learning问题的近似解。
结论2: EM算法求解过程分为E-Step和M-Step,求解过程公式推导较复杂,但需要抓住E-Step和M-Step主要目的是什么,而不能先陷入大量公式中。EM算法思想简单来说:先通过E-Step求解模型期望Q(Θ,Θ(t))Q(\Theta,\Theta^{(t)})Q(Θ,Θ(t)),再通过M-Step最大化期望,当迭代收敛时求出最优的参数值Θ\ThetaΘ。
三、最大似然估计为何无法求解GMM
下面首先给出若使用最大似然估计求解高斯混合模型Learning问题的推导过程:
根据上式得出结论:最后一个推导公式中log后面存在一个求和符号,对于log中存在求和符号无法继续往下求解,所以高斯混合模型无法使用MLE求出解析解,但对于单一高斯分布是可以用MLE进行求解的。
四、EM算法求解GMM
重点: 再次强调,虽然下面的公式推导很复杂,但最主要是弄清楚E-Step和M-Step主要是在做什么事情,理清楚思路比陷入到公式推导中要重要得多。
接下来讲解使用EM算法求解高斯混合模型,先给出EM算法的求解时迭代公式:
EM算法思想:先通过E-Step求解模型期望Q(Θ,Θ(t))Q(\Theta,\Theta^{(t)})Q(Θ,Θ(t)),再通过M-Step最大化期望,当迭代收敛时求出最优的参数值Θ\ThetaΘ。
在讲解EM算法求解高斯混合模型之前,先给出高斯混合模型的边缘概率密度函数p(x)p(x)p(x),联合概率函数p(x,z)p(x,z)p(x,z)以及条件概率密度函数p(z∣x)p(z|x)p(z∣x)。
EM算法:E-Step求解过程
接下来讲解EM算法求解高斯混合模型的E-Step,求期望Q(Θ,Θ(t))Q(\Theta,\Theta^{(t)})Q(Θ,Θ(t)),求解过程相对比较复杂,先直接给出期望的求解结果,不想看推导过程的可以直接跳过。经过E-Step求出的期望为:
将高斯混合模型条件概率密度函数p(z∣x)p(z|x)p(z∣x)和联合概率密度函数p(x,z)p(x,z)p(x,z)代入上式得:
下面给出该E-Step结论的推导过程,较复杂不需要了解的可以直接跳过。
可以看出上式很复杂,现在需要对上式进行简化,我们先拆除上式加和中的一项进行简化:
上式简化过程如下图展示所示:
经过简化后继续推导如下:
至此我们通过E-Step求解出高斯混合模型的期望Q(Θ,Θ(t))Q(\Theta,\Theta^{(t)})Q(Θ,Θ(t))
EM算法:M-Step求解过程
在E-Step我们已经求出了期望Q(Θ,Θ(t))Q(\Theta,\Theta^{(t)})Q(Θ,Θ(t))
将其中的ZiZ_iZi替换成k=1,2,...,Kk=1,2,...,Kk=1,2,...,K表示,并且条件概率不展开表示为如下形式:
上面就是经过E-Step得疯狂推导得出的结论,接下来M-Step就是通过最大化期望Q(Θ,Θ(t))Q(\Theta,\Theta^{(t)})Q(Θ,Θ(t))来求解参数值:
这里以求解参数p1,p2,...,pkp_1,p_2,...,p_kp1,p2,...,pk来简单讲解求解过程,使用的是拉格朗日乘子法
对于上述有约束项的最值求解,使用拉格朗日乘子法有:
我们将k从1,2,...,K1,2,...,K1,2,...,K进行赋值之后有:
其中有:
所以可得:
至此结合以下两个式子:
最终求出:
而另外两个参数求解方式和p(t+1)p^{(t+1)}p(t+1)相同。
【机器学习系列】GMM第二讲:高斯混合模型Learning问题,最大似然估计 or EM算法?相关推荐
- 视觉机器学习20讲-MATLAB源码示例(7)-EM算法
视觉机器学习20讲-MATLAB源码示例(7)-EM算法 1. EM算法 2. Matlab仿真 3. 仿真结果 4. 小结 1. EM算法 最大期望算法(Expectation-Maximizati ...
- 【机器学习自学笔记6】高斯混合模型(GMM)
我们知道生活中的很多现象,比如身高体重的分布,都满足高斯分布 (正态分布).而高斯混合模型,则是通过多个高斯分布的叠加,实现对数据集的拟合. 高斯分布 如果学过概率论,我们知道高斯分布的公式如下: X ...
- python机器学习案例系列教程——极大似然估计、EM算法
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 极大似然 极大似然(Maximum Likelihood)估计为用于已知模型的参数估计的统计学方法. 也就是求使得似然函数最大的代估参 ...
- 机器学习算法(1)——贝叶斯估计与极大似然估计与EM算法之间的联系
极大似然估计 在讲解极大似然估计前,需要先介绍贝叶斯分类: 贝叶斯决策: 首先来看贝叶斯分类,经典的贝叶斯公式: 其中:p(w)为先验概率,表示每种类别分布的概率:是条件概率,表示在某种类别前提下,某 ...
- 国科大UCAS胡包钢教授《信息论与机器学习》课程第二讲:信息论基础一
来源:专知 信息论中最为基本的概念就是香农熵(第8页),由此可以导出信息论中其它各种定义,以至我们常规应用的其它经验式定义(以后会提到).学习信息论基础知识时要避免仅是概念与定义的简单记忆,要尽量结合 ...
- 【云原生系列】第二讲:Knative 简介
目录 一. Serverless介绍 二.Knative 介绍 2.1 Knative 的定位 2.2 Knative的组成 2.2.1 Build 构建系统 2.2.2 Serving:服务系统 ...
- CODING 敏捷实战系列课第二讲:Scrum 敏捷项目管理核心要素之 3355
Scrum 是敏捷开发流派中最著名和最落地的一支,全球 70% 以上公司的敏捷转型都是以 Scrum 起步.CODING 特邀敏捷顾问.CST & CTC 认证敏捷教练申健老师将在本课程 &l ...
- 机器学习笔记之高斯混合模型(一)模型介绍
机器学习笔记之高斯混合模型--模型介绍 引言 高斯混合模型介绍 示例介绍 从几何角度观察高斯混合模型 从混合模型的角度观察 概率混合模型的引出 从概率生成模型的角度观察高斯混合模型 引言 上一系列介绍 ...
- 机器学习教程 之 EM算法 :高斯混合模型聚类算法 (python基于《统计学习方法》实现,附数据集和代码)
之前写过一篇博客讲述极大似然方法, 这一方法通常适用于知道观测数据 Y Y Y,求解模型参数 θ \theta θ的场合,即 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ). 但是,在更 ...
- 其他算法-高斯混合模型
目录 高斯模型 单高斯模型 高斯混合模型GMM 参数估计 单高斯模型参数估计-极大似然 高斯混合模型参数估计-EM算法 GMM与k-means 高斯模型 单高斯模型 当样本数据 x∈Rx\in\mat ...
最新文章
- Cadence快捷键设置亲测有效!
- C语言面试题分享(6)
- LeetCode MySQL 1070. 产品销售分析 III(group by 陷阱)
- java http超时重连_httpclient 重连机制
- pandas如何通过函数修改某一列的值?
- 【IDE】JetBrains全家桶教程系列,学生认证 + 汉化
- c++怎么可以在二进制文件中读取带string的数据_文件处理 | csv文件读写
- java 和mysql做Android_基于Android和Java后台的朋友圈的设计和实现
- HP02: ssh: Could not resolve hostname hp02: Name or service not known HP01: ssh: Could not resolve h
- Java Mail 相关资料
- 计算机网络技术教研活动,(2012.09.27)计算机网络技术专业教研活动(文本).doc...
- 商业的10个最佳Android应用程序模板
- 21节点六自由度梁单元 ,悬臂有限元代码
- 以太坊基础---奖励
- 关于GPIO的内部结构及编程步骤
- java模仿滴滴的程序_小程序模仿滴滴打车
- 腾讯全民wifi驱动无法安装
- [深入研究4G/5G/6G专题-56]: L3信令控制-5-无线承载DRB管理
- 使用PowerDesigner反向生成数据模型
- Allegro PCB Design GXL (legacy) - 导出 PCB 中元件的坐标文件
热门文章
- UNIX发展历史流程图
- nec的reset文件摘要
- 命令行构建Unity项目
- wdcp安装多种php版本共存
- vector容器——容量和大小
- 电子信息工程求职目标_广东海洋大学电子与信息工程学院电子信息工程专业欢迎你...
- android示例程序剖析之记事本,Android实现记事本项目完整实例,附源代码
- 不等式解集怎么取_6.初中数学:一个不等式的解集,都是另一个不等式的解,求a的取值范围?...
- python网站开发实例 flask_Python Web开发之——构建基于Flask框架的web后端项目
- linux 占用缓存前10_Linux查看内存使用情况应该使用什么命令