一、高斯混合模型概述

1、公式

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

其中,αk≥0,且∑αk=1,是每一个高斯分布的权重。Ø(y|θk)是第k个高斯分布的概率密度,被称为第k个分模型,参数为θk=(μk, αk2),概率密度的表达式为:

高斯混合模型就是K个高斯分布的线性组合,它假设所有的样本可以分为K类,每一类的样本服从一个高斯分布,那么高斯混合模型的学习过程就是去估计K个高斯分布的概率密度Ø(y|θk),以及每个高斯分布的权重αk。每个观测样本出现的概率就表示为K个高斯分布概率的加权。

所谓聚类,就是对于某个样本yj,把该样本代入到K个高斯分布中求出属于每个类别的概率:

然后选择概率值最高的那个类别作为它最终的归属。把所有的样本分别归入K个类,也就完成了聚类的过程。

2、案例

假设有 20 个身高样本数据,并不知道每个样本数据是来自男生还是女生。在这种情况下,如何将这 20 个身高数据聚成男女生两大类呢?

用高斯混合模型来聚类,那么假设男女生身高分别服从两个不同的高斯分布,高斯混合模型就是由男生身高和女生身高这两个高斯分布混合而成。在高斯混合模型中,样本点属于某一类的概率不是非0即 1 的,而是属于不同类有不同的概率值。如下图,有两个高斯分布,均值分别为μ1和μ2,而高斯混合模型就是又这两个高斯分布的概率密度线性组合而成。

二、高斯混合模型参数估计的EM算法

假设观测数据y1, y2, ...yN由高斯混合模型生成:

其中,要估计的参数θ=(α1, α2, ...αK; θ1, θ2, ..., θK),θk=(μk, αk2),k=1,2,...,K。因此如果高斯混合模型由K个高斯分布混合而成,那么就有3K个参数需要估计。

我们用极大似然估计法来估计参数θ,也就是求参数θ,使得观测数据y的对数似然函数L(θ)=logP(y|θ)的极大化:

由于对数似然函数L(θ)中包含了和的对数,比较难以求解,因此考虑用EM算法。

(一)高斯混合模型EM算法的推导

用EM算法估计高斯混合模型的参数θ,步骤如下:

1、明确隐变量,写出完全数据的对数似然函数

可以设想观测数据yj,j=1,2,..., N,是这样产生的:

首先依概率αk选择第k个高斯分布分模型Ø(y|θk),然后依这个分模型的概率分布Ø(y|θk)生成观测数据yj,N个观测数据中有多个来自于同一个分模型。

这时观测数据yj,j=1,2,..., N是已知的,而反映观测数据yj来自于第k个分模型的数据是未知的,也就是隐变量,用γjk表示:

有了观测数据yj和未观测数据γjk,那么完全数据是:

在《概率图模型之EM算法》中,我们说了,EM算法的目标是通过迭代,求不完全数据的对数似然函数L(θ)=logP(y|θ)的极大似然估计,这可以转化为求完全数据的对数似然函数logP(y, γ|θ)的期望的极大似然估计。

于是我们先得到完全数据的似然函数:

其中nk表示N个观测数据中,由第k个分模型生成的数据的个数。

那么完全数据的对数似然函数为:

2、EM算法的E步:确定Q函数

Q函数是指,在给定观测数据y和第i轮迭代的参数θ(i)时,完全数据的对数似然函数logP(y, γ|θ)的期望,计算期望的概率是隐随机变量γ的条件概率分布P(γ|y, θ(i))。于是Q函数为:

其中隐随机变量γ的条件概率分布P(γ|y, θ(i))为:

这里需要计算E(γjk|y, θ(i)):

是当前模型参数θ(i)下第j个观测数据来自第k个分模型的概率,称为分模型k对观测数据yj的响应度。

3、确定EM算法的M步:

M步也就是在得到第i轮的参数θ(i)之后,求下一轮迭代的参数θ(i+1),使函数Q(θ,θ(i))极大:

得到参数θ(i+1)之后,继续进行迭代求新的参数,直到Q函数的值不再有明显变化为止。

(二)高斯混合模型EM算法总结

输入:观测数据y1,y2,...,yN,和高斯混合模型:

输出:高斯混合模型的参数θ=(α1, α2, ...αK; θ1, θ2, ..., θK),θk=(μk, αk2),k=1,2,...,K。

步骤:

1、取参数的初始值开始迭代;

2、E步:在第i轮迭代过后,根据当前的模型参数θ(i),求高斯分布分模型Ø(y|θk)对观测数据yj的响应度:

3、M步:计算新一轮迭代的模型参数:

4、重复第2步和第3步,直到收敛而停止迭代。停止迭代的条件是,对于较小的正数ε1、ε2,有:

参考资料:

李航:《统计学习方法》

聚类之高斯混合模型与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算法

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

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

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

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

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

  7. 高斯混合和EM算法

    首先介绍高斯混合模型: 高斯混合模型是指具有以下形式的概率分布模型: 一般其他分布的混合模型用相应的概率密度代替(1)式中的高斯分布密度即可. 给定训练集,我们希望构建该数据联合分布 这里,其中是概率 ...

  8. 聚类之高斯混合模型(Gaussian Mixture Model)【转】

    k-means应该是原来级别的聚类方法了,这整理下一个使用后验概率准确评测其精度的方法—高斯混合模型. 我们谈到了用 k-means 进行聚类的方法,这次我们来说一下另一个很流行的算法:Gaussia ...

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

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

随机推荐

  1. getline及读文件总结

    今天由华为软件精英挑战赛的要求,读文件这块自己进行了总结,主要是泛型以及关联容器这块需要加强,现在总结了读文件的iterator的用法. 1.iterator inserter(essential C ...

  2. SpringBoot 集成FreeMarker

    SpringBoot官方不推荐使用jsp,因为jsp不好发挥SpringBoot的特性.官方推荐使用模板引擎代替jsp,现在很多公司都使用FreeMarker来作为SpringBoot的视图. Spr ...

  3. Python 操作rabbitmq中的confirm模式的错误

    今天使用rabbitmq的confirm模式,书上介绍的是pika版本是0.9.6,但是我用的是别的版本,发现这样的错误 Traceback (most recent call last):  Fil ...

  4. div背景图片自适应

    对背景图片设置属性:background-size:cover;可以实现背景图片适应div的大小. background-size有3个属性: auto:当使用该属性的时候,背景图片将保持100% 的 ...

  5. git提交代码报:fatal: Unable to create 'E:/testGit/test/.git/index.lock': File exists.

    git提交代码报错,提示:fatal: Unable to create 'E:/testGit/test/.git/index.lock': File exists. 具体截图如下: 在.git目录 ...

  6. Linux服务器运行一段时间,出现CPU占用率达到100%卡死

    没事整了一个1核2G的便宜服务器,虽说便宜吧,但是搞个博客网站啥的也还是够用了:但是呢,最近服务器过几天就会出先CPU占用率达到100%:系统完全卡死,项目请求一个都访问不了,或者就是超级长时间才能得 ...

  7. Linux CentOS7 VMware克隆、虚拟机之间互连——初学笔记

    一.VMware克隆:选中我的第一个虚拟机,右键下拉菜单—管理—克隆. 弹出对话框,下一步根据提示:             完成克隆: 二.虚拟机互连: 配置第二虚拟机IP,使用:vi /etc/s ...

  8. Centos7 下vmware NAT模式配置网络连接与DNS

    NAT模式配置网络 1.首先查看NAT模式下的网络 从这边可以知道我的vmware下的nat模式的网络是192.168.109.*网段 上图这个网段也可以修改为别的网段 2.NAT模式下的网关 3.配 ...

  9. linux下FTP的工具和使用以及rpmReadSignature failed错误

      安装rpm文件时提示rpmReadSignature failed 错误 2011-09-23 11:04 现象: [root@localhost share]# rpm -ivh syslog- ...

  10. 【Unity】鼠标指向某物体,在其上显示物体的名字等等等等信息

    之前一直用NGUI HUD Text插件做这个功能,感觉一个小功能就导一个插件进来简直丧心病狂.然后就自己写了一个~ Camera cam;//用于发射射线的相机 Camera UIcam;//UI层 ...