Mixtures of Gaussian

这一讲,我们讨论利用EM (Expectation-Maximization)做概率密度的估计。假设我们有一组训练样本x(1),x(2),...x(m),因为是unsupervised的学习问题,所以我们没有任何y的信息。

我们希望利用一个联合分布p(x(i),z(i))=p(x(i)|z(i))p(z(i))来拟合这些数据, 其中z(i)∼Multinomial(ϕ) (ϕj⩾0, ∑kj=1ϕj=1,参数ϕj给出了概率p(z(i)=j)),并且 x(i)|z(i)=j∼N(μj,Σj),我们让k表示z(i)可能值的个数,因此在这个模型中,每一个训练样本x(i)是由随机取某一个值的变量z(i)生成的,所以x(i)是从k个的高斯分布中的一个(由z(i)指示)提取出来的。这个称为高斯混合模型,我们也要注意到z(i)是隐含的随机变量,高斯混合模型涉及的参数是ϕ,μ,Σ,为了估计这些变量,我们可以建立如下的表达式:

l(ϕ,μ,Σ)=∑i=1mlogp(x(i);ϕ,μ,Σ)=∑i=1mlog∑z(i)=1kp(x(i)|z(i);μ,Σ)p(z(i),ϕ)

我们发现,通过求偏导数求极值的方法,无法得到这些参数的解,从上面的表达式可以看出,随机变量z(i)告诉了我们x(i)是从k个高斯分布中的其中一个生成的,如果我们知道是哪一个高斯分布,或者说如果知道z(i)的值,那我们可以利用最大似然估计的方法估计参数

ϕ,μ,Σ,如果z(i)已知,那么上式可以写成:

l(ϕ,μ,Σ)=∑i=1mlogp(x(i)|z(i);μ,Σ)+logp(z(i),ϕ)

利用最大似然估计,可以求得这些参数为:

ϕjμjΣj=1m∑i=1m1{z(i)=j}=∑mi=11{z(i)=j}x(i)∑mi=11{z(i)=j}=∑mi=11{z(i)=j}(x(i)−μj)(x(i)−μj)T∑mi=11{z(i)=j}

从上面的表达式可以看出,如果z(i)的值已知,那么参数ϕ,μ,Σ的估计与之前介绍的Gaussian discriminant analysis 模型对参数的估计是一样的,这里的z(i)就像Gaussian discriminant analysis 模型中的输出y一样。

但是遗憾的是,我们不知道z(i)的值,所以这里我们要介绍另外一种unsupervised的学习方法,称为EM算法,EM算法主要分为两步,在E-step,我们主要对z(i)的值做猜测,在M-step,我们在E-step假设的基础上,利用最大似然估计求参数ϕ,μ,Σ,算法主要流程如下:

Repeat until convergence {

E-step: 对于每一个i,j,设置:

w(i)j:=p(z(i)=j|x(i);ϕ,μ,Σ)

M-step: 跟新如下参数:

ϕj:=1m∑i=1mw(i)j
μj:=∑mi=1w(i)jx(i)∑mi=1w(i)j
Σj:=∑mi=1w(i)j(x(i)−μj)(x(i)−μj)T∑mi=1w(i)j

}

在E-step,我们可以通过给定的x(i)和当前估计的参数计算z(i)的后验概率,利用贝叶斯估计,我们可以得到:

p(z(i)=j|x(i);ϕ,μ,Σ)=p(x(i)|z(i)=j;μ,Σ)p(z(i)=j,ϕ)∑kl=1p(x(i)|z(i)=l;μ,Σ)p(z(i)=l,ϕ)

这里,p(x(i)|z(i)=j;μ,Σ)通过计算一个均值为μj,协方差为Σj的高斯分布在x(i)处的概率密度得到,p(z(i)=j,ϕ)

是由ϕj给出,在E-step计算的w(i)j的值,表示我们对z(i)的一种弱估计。

同样,我们也可以将M-step的参数跟新与知道z(i)确切值的参数估计的表达式进行对比,可以看出两者是一致的,只不过前面的表达式1{z(i)=j}指出了我们利用哪个高斯分布,而现在换成了w(i)j。

EM 算法同样会让人联想起k均值算法,k均值是硬聚类,将样本聚到某一类里,而EM算法是弱聚类,样本所属的高斯分布由w(i)j估计。

参考来源:

Andrew Ng, “Machine Learning”, Stanford University.

机器学习 : 高斯混合模型及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算法

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

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

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

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

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

  7. 高斯混合和EM算法

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

  8. 机器学习笔记—混合高斯和 EM 算法

    本文介绍密度估计的 EM(Expectation-Maximization,期望最大). 假设有 {x(1),...,x(m)},因为是无监督学习算法,所以没有 y(i). 我们通过指定联合分布 p( ...

  9. 【机器学习】GMM和EM算法

    机器学习算法-GMM和EM算法 目录 机器学习算法-GMM和EM算法 1. GMM模型 2. GMM模型参数求解 2.1 参数的求解 2.2 参数和的求解 3. GMM算法的实现 3.1 gmm类的定 ...

随机推荐

  1. xamarin studio 安装

    公司wpf项目移植到mac,用到mono来进行重写,不会,自己开搞 首先一个问题Xamarin怎么读,xaml熟悉吧,xaml读作Zamel,xamarin也就读作Zamerin,恩,就是它了... ...

  2. Android -- AsyncTask 使用和缺陷

    一.AsyncTask的基本用法 由于AsyncTask是一个抽象类,所以如果我们想使用它,就必须要创建一个子类去继承它.在继承时我们可以为AsyncTask类指定三个泛型参数,这三个参数的用途如下: ...

  3. Jmeter Summariser report及其可视化

    Jmeter summariser report的设置在:bin/jmeter.properties #------------------------------------------------ ...

  4. 很多shell命令后面的单横杠和双横杠,原来这个意思

    原文: https://blog.csdn.net/deyili/article/details/5471023 ------------------------------------------- ...

  5. Exchange 2013 Database Move to New Partition

    建议不要删除默认数据库,可以通过修改默认数据库名称.路径等实现您的需求. 客戶:The HK Anti-Cancer Society. 要求:遷移數據庫(01)到新分區,實際是遷移成為數據庫(05)  ...

  6. angular - 使用es6等一些功能

    app.module.ts var model = { user: 'Admin', items: [{ action: 'buy flowsers', done: false },{ action: ...

  7. Android手机需要安装任务管理软件吗?

    使用android手机的用户可能都安装了任务管理的软件,使用android手机真的有必要安装结束任务的软件吗?大家在使用中也都发现了,很多软件在被结束后,马上就会又出现在任务列表里,或是稍等一会自己也 ...

  8. windows下redis安装以及简单配置

    1.下载redis 下载地址https://github.com/dmajkic/redis/downloads.有32bit和64bit根据自己需要选择就可以了. 2.安装redis 首先使用cmd ...

  9. sublime 快捷键 汇总--长期

    Ctrl+P 输入当前项目中的文件名,快速搜索文件 Ctrl+G 输入数字跳转到该行代码 Ctrl+R 输入关键字,查找文件中的函数名 Ctrl+: 输入关键字,查找文件中的变量名.属性名等 Ctrl ...

  10. ffmpeg编码常见问题排查方法

    播放问题排查: 一旦我们遇到视频播放不了,第一件事,就是要找几个别的播放器也播放看看,做一下对比测试,或者对码流做一些基础分析,以便更好的定位问题的源头,而各个平台比较常见的播放/分析工具有如下几个: ...