对于高斯混合模型是干什么的呢?它解决什么样的问题呢?它常用在非监督学习中,意思就是我们的训练样本集合只有数据,没有标签。

它用来解决这样的问题:我们有一堆的训练样本,这些样本可以一共分为K类,用z(i)表示。,但是具体样本属于哪类我们并不知道,现在我们需要建立一个模型来描述这个训练样本的分布。这时, 我们就可以用高斯混合模型来进行描述。

怎么入手呢?

高斯混合模型:

我们这么想,因为样本集合潜在地是可以分为K类的,用z(i)表示第 i 样本所属的类别,所以z(i) 的范围为从1至 K。对于我们可以用z(i)多项式分布模型来描述它的分布。然后呢,对于属于潜同一个类别内的样本,假设它们服从高斯分布(这和高斯判别模型有点类似的)。然后呢,假设我们创建了一个模型哈(其实它就是我们要讲的高斯混合模型),然后,我们呢,我们表示一个样本x(i) 的分布在这个模型下可以用概率表示为:

(注意:对于上式中的多元正态分布与多项式分布如果不太了解,可以看一个我 之前写的高斯判别分析模型Logistic 分类器与 softmax分类器,里面有写到)

然后,我们写出它的拟然函数,如下所示:

虽然通过上面的分析,我们可以写出相应的公式来,但是呢,很难去求解啊。那怎么办??

注意下面我们先假设哈:如果我们假设我们已经知道了我们所求的样本x(i) 所属于的类别为的 z(i) 话,那么问题就会变得很简单了,此时,拟然函数可以变为了这样:

此时,通过类似高斯判别分析模型中的方法,我们最大化拟然函数,我们可以得到相关参数和值可以表示为:

(上面的式子很容易理解的吧,其实就是用频率来估计它们的期望。)

利用EM算法求解。

下面我们要做的就是利用EM算法,按照我们假设的思路来求。具体为:

重复下面的过程,直到收敛:{

E-step:

M-setp:

}

什么意思呢?其实第一个步骤E-step中,我们要做的就是估计训练集合中每一个样本属于每一个类别的概率的大小.怎么求呢,我们可以用下面公式:

第二个步骤中,会想为什么要这么更新参数值呢?

其实想想很简单:如果把它和 K-means的聚类算法作比较,我们做发现是这样的,在K-means的聚类算法我们已经明确指定了一个样本所属于的类别,而这里呢,我们没有明确去指定,而是都过概率的形式来指明的。所以,在更新参数时,我们通过概率对所以样本进行加权了,概率表示了该样本属于第 j 类别的可能性的大小,加权目的就是在计算该类别的高斯分布的参数时,指定不同的样本占有的比重不一样,属于该类别概率越大的样本占的权值越大。

最后说明的是,这样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算法

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

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

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

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

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

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

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

  7. 高斯混合和EM算法

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

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

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

  9. 统计学习方法c++实现之八 EM算法与高斯混合模型

    EM算法与高斯混合模型 前言 EM算法是一种用于含有隐变量的概率模型参数的极大似然估计的迭代算法.如果给定的概率模型的变量都是可观测变量,那么给定观测数据后,就可以根据极大似然估计来求出模型的参数,比 ...

随机推荐

  1. Java网络通信初步认知

    本文转载自:http://wing011203.cnblogs.com/ 在这篇文章里,我们主要讨论如何使用Java实现网络通信,包括TCP通信.UDP通信.多播以及NIO. TCP连接 TCP的基础 ...

  2. nodejs 80端口监听失败及NODE_PATH不起作用的问题

    nodejs做web服务器,打开80时报错:Error: listen EACCES 0.0.0.0:80 80端口监听失败,是因为1024以下的端口需要root权限,需要sudo或su之后执行.但这 ...

  3. java调用 webservices接口实现天气预报

    最近要用到web services,而这两天也比较有空,就弄了一个获取天气预报的Util.以前以为这有多难,因为数据来源是个困难.现在用web services的技术,发现下面这个是相当不错的.下面就 ...

  4. Selenium2学习-038-firefox、webdriver版本不对称问题解决:org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055

    今天有个朋友在群里问,为何脚本运行不通过,其脚本操作步骤简单描述如下: 1.启动火狐浏览器 2.打开百度 3.查询框输入关键字 4.点击按钮[百度一下] 脚本挺简单的,其给出的应用报错信息如下所示: ...

  5. Lock较synchronized多出的特性

    1.尝试非阻塞形式获取锁 tryLock() :当前线程尝试获取锁,如果锁被占用返回false;如果成功则占有锁 //类似用法if(lock.tryLock()) { try { System.out ...

  6. CentOS-7.0.中安装与配置Tomcat-7的方法

    安装说明 安装环境:CentOS-7.0.1406安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz 下载地址:http://tomcat.apache.org/down ...

  7. in-list expansion

    in-list expansion也被称作or expansion --针对in后面是常量集合的另外一种处理方法.优化器会把目标sql中in后面的常量集合拆开,把里面的每个常量都提出来形成一个分支,各 ...

  8. Java Servlet(四):Servlet接口service工作(ServletRequest,ServletResponse对象)(jdk7+tomcat7+eclipse)

    本篇将会记录,Servlet接收客户端传递来的参数信息,并返回信息使用的对象,及这些对象的函数相关用法. 还是在java ee工程中进行操作,在WebContent目录下创建一个login.jsp文件 ...

  9. Android近场通信---高级NFC(二)

    读写NFC标签 读写NFC标签,要涉及到从Intent对象中获取标签,并要打开与标签的通信.要读写NFC标签数据,你必须要定义自己的协议栈.但是,要记住在直接使用NFC标签工作时,你依然能够读写NDE ...

  10. .net 直接输出远程文件到浏览器和下载文件保存到本机

    利用了xmlhttp,实现代码比较简单具体实现如下: 首先bin文件引入,com->microsoft xml v3.0 具体代码如下: protected void Button1_Click ...