首先介绍高斯混合模型:

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

一般其他分布的混合模型用相应的概率密度代替(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. Linux makefile教程之使用变量五[转]

    使用变量 ———— 在 Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使 用的地方.其与C/C++所不同 ...

  2. POJ 1844 Sum

    题意:给一个整数n,求当n由1到k的连续整数加或减组成时的最小的k. 解法:一开始觉得dp……后来觉得复杂度太大了……GG……百度了一下是个数学题orz. 如果n全部由加法组成,那么k可以组成k(k+ ...

  3. 自定义View实现图片的绘制、旋转、缩放

    1.图片 把一张JPG图片改名为image.jpg,然后拷贝到项目的res-drawable中. 2.activity_main.xml <LinearLayout xmlns:android= ...

  4. APP测试时不可忽视搭建代理服务器抓包测试的必要性

    这几天测的一个app,后台从已有服务器搬迁到了阿里云,接口api之类的都没有变化,但测试时发现客户端始终无法使用,每次点击都无法获得服务器反馈 用python编写脚本调接口,没问题,返回数据一切正常, ...

  5. Java核心_内省

    Java核心_内省 查看java的api,发现有一个包java.bean咦,这个包是干什么的呢,原来,它是用来操作JavaBean对象的! 一.内省操作①JavaBean:一种特殊的Java类无参构造 ...

  6. python字典概述

    字典 1.    概述 字典是一个无序的数据集合,序列类型用有序的数字键做索引将数据以数组的形式存储. 在字典中能获得的有序集合只能是键的集合或者是值得集合,方法keys()或者value()返回一个 ...

  7. LeetCode Database: Consecutive Numbers

    Consecutive Numbers Write a SQL query to find all numbers that appear at least three times consecuti ...

  8. 【开源项目之路】jquery的build问题

    在刚开始clone了jquery到本地build的时候,就遇到了问题. “ENORESTARGET No tag found that was able to satisfy ...” 提示为bowe ...

  9. MYSQL数据库性能调优之八:mysql日志

    MySQL日志 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志.中继日志: 使用 SHOW GLOBAL VARIABLES LIKE '%log%';  查询所有日志配置详情: 一. ...

  10. HDU 2859 Phalanx (dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859 给你一个n*n的矩阵,问你最大的对称度是多少(左下右上为对称线) dp[i][j]表示i行j列元 ...