首先介绍高斯混合模型:

高斯混合模型是指具有以下形式的概率分布模型:

一般其他分布的混合模型用相应的概率密度代替(1)式中的高斯分布密度即可。


给定训练集,我们希望构建该数据联合分布

这里,其中是概率,并且,用表示可能的取值。

因此,我们构建的模型就是假设是由生成,而是从中随机选择出来的,那么就服从个依赖于的高斯分布中的一个。这就是一个高斯混合模型

是潜在随机变量,即它是隐藏的或者观察不到的,这将使得估计问题变得棘手。

上面公式太多,作一个总结,总体意思是关于的条件分布符合高斯分布(即正态分布),这个是潜在变量,它的值未知,但是服从多项式分布,于是关于的条件分布就是高斯混合模型,而是一个潜在变量,值不确定,进而导致高斯混合模型的概率估计也变得棘手。

可以看出,我们构建的高斯混合模型参数有,为了估计出这些参数,写出参数的似然函数:

变量意味着每一个来自于个高斯分布中的哪一个,如果我们知道变量的值,最大化似然函数问题将变得容易,似然函数将会变成如下形式:

那么参数的最大似然估计可以计算出:

可以看出,当已知的时候,最大似然函数的的估计与前面讨论过的高斯判别分析模型(关于高斯判别模型参见生成式学习算法)几乎一样,除了这里替代了高斯判别模型中类别标签的角色。

但是在这个问题中是未知的,该怎么办?就得运用EM算法。在应用到我们的这个问题中,EM算法分两步,在E步骤中,算法试图猜测出的值,在M步骤中,根据E步骤猜测的值更新参数。需要注意的是在M步骤中假定E步骤中的猜测是正确的,算法流程如下:

E-step: 对于每一个,令:

  

M-step: 更新参数:

  

重复上面两步直至收敛(参数不再发生明显变化)

在E-step中计算关于的后验概率时,参数用的都是当前的值,第一步时可以随机初始化,用贝叶斯公式,我们可以得到:

分子上的是由均值为,方差为的高斯分布在处的概率密度给出,由参数

给出. 在E-step中对的猜测只是猜测它是某个值得概率,被称作“软猜测”,与之对应的“硬猜测”就是一个最好的猜测,即不是0就是1.

和上面我们在推导已知时,参数估计的公式相比,EM算法中的参数更新仅仅是用代替了.

EM算法和k-means算法(参考我的博文K-means聚类算法原理和C++实现)很类似,除了k-means是一个“硬” 类别分配(为每个样本选择一个确定的类别),而这里是以概率的“软”分配(就是取某个值的概率)。同k-means一样,EM算法也容易陷入局部最优,所以多次运行,每次都将参数初始化为不同的值将会是一个很好的解决办法。

EM算法就是不断重复猜测的值,但是到底是如何进行的呢,如何保证收敛性呢,在下一篇博文将继续讨论,从而使得EM算法能够更加容易应用到各种存在潜在变量的参数估计问题中,而且将讨论如何保证算法收敛。

高斯混合和EM算法的更多相关文章

  1. 高斯混合模型的EM算法

    高斯混合模型的EM算法 混合高斯模型 高斯混合模型的概率分布可以写成多个高斯分布的线形叠加,即 \[ p(\mathbf x) = \sum_{k=1}^{K}\pi_k\mathcal N(\mat ...

  2. SIGAI机器学习第二十三集 高斯混合模型与EM算法

    讲授高斯混合模型的基本概念,训练算法面临的问题,EM算法的核心思想,算法的实现,实际应用. 大纲: 高斯混合模型简介实际例子训练算法面临的困难EM算法应用-视频背景建模总结 高斯混合模型简写GMM,期 ...

  3. 高斯混合模型与EM算法

    对于高斯混合模型是干什么的呢?它解决什么样的问题呢?它常用在非监督学习中,意思就是我们的训练样本集合只有数据,没有标签. 它用来解决这样的问题:我们有一堆的训练样本,这些样本可以一共分为K类,用z(i ...

  4. 机器学习之高斯混合模型及EM算法

    第一部分: 这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation). 与k-means一样,给定的训练样本是,我们将隐含类 ...

  5. 机器学习基础知识笔记(一)-- 极大似然估计、高斯混合模型与EM算法

    似然函数 常说的概率是指给定参数后,预测即将发生的事件的可能性.拿硬币这个例子来说,我们已知一枚均匀硬币的正反面概率分别是0.5,要预测抛两次硬币,硬币都朝上的概率: H代表Head,表示头朝上 p( ...

  6. 机器学习 : 高斯混合模型及EM算法

    Mixtures of Gaussian 这一讲,我们讨论利用EM (Expectation-Maximization)做概率密度的估计.假设我们有一组训练样本x(1),x(2),...x(m),因为 ...

  7. 聚类之高斯混合模型与EM算法

    一.高斯混合模型概述 1.公式 高斯混合模型是指具有如下形式的概率分布模型: 其中,αk≥0,且∑αk=1,是每一个高斯分布的权重.Ø(y|θk)是第k个高斯分布的概率密度,被称为第k个分模型,参数为 ...

  8. 混合高斯模型和EM算法

    这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation). 与k-means一样,给定的训练样本是,我们将隐含类别标签用表示 ...

  9. EM算法原理详解

    1.引言 以前我们讨论的概率模型都是只含观测变量(observable variable), 即这些变量都是可以观测出来的,那么给定数据,可以直接使用极大似然估计的方法或者贝叶斯估计的方法:但是当模型 ...

随机推荐

  1. POI取消科学计数法

    前台输入手机号13777777777,如果是为Double类型接收,就会自动转为科学计数法 找了下,一般是Double转String,方法一般有两种: 1.利用String.format() sale ...

  2. 基于XMPP协议的手机多方多端即时通讯方案

    一.开发背景 1.国际背景 随着Internet技术的高速发展,即时通信已经成为一种广泛使用的通信方式.1996年Mirabilis公司推出了世界上第一个即时通信系统ICQ,不到10年间,即时通信(I ...

  3. 存储过程中使用事务与try catch

    一.存储过程中使用事务的简单语法 在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式: 代码 : ) ) ...

  4. Golang几个常用记录日志对比

    go语言有一个标准库,log,提供了最基本的日志功能,但是没有什么高级的功能,如果需要高级的特性,就需要使用第三方包,下面是一些候选的包: go_tmlog https://code.google.c ...

  5. 转 AI教程 logo

    版权申明:本文原创作者飞屋工作室,感谢飞屋工作室的原创分享! 这篇AI制作标志教程是一个非常实用的教程.通过这个教程飞特的朋友们将会学习到AI制作标志的流程和标志的创作思路.非常实用.推荐过来和飞特的 ...

  6. MVC用户登录方法(lamda表达式)

        public bool ValidateUser(account model) { using (assertEntities db = new assertEntities()) { acc ...

  7. Mysql字符串截取函数SUBSTRING的用法说明

    感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用. 函数: 1.从左开始截取字符串 left(str, length) 说明:le ...

  8. CentOS安装中文输入法:ibus

    转自 http://gnucto.blog.51cto.com/3391516/935964 系统环境:Centos 6.3 编程语言:python + Bash 输入法:ibus 权限支持:root ...

  9. Mapreduce读取Hbase表,写数据到一个Hbase表中

    public class LabelJob { public static void main(String[] args) throws Exception { Job job = Job.getI ...

  10. 用C#.NET调用Java开发的WebService传递int,double问题

    用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到string类型的属性值,却不能得到int类型.double和D ...