Mixtures of Gaussian

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

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

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

\begin{equation*} \begin{split} l(\phi, \mu, \Sigma) & =\sum_{i=1}^{m}\text{log} p(x^{(i)}; \phi, \mu, \Sigma) \\ & =\sum_{i=1}^{m} \text{log} \sum_{z^{(i)}=1}^{k} p(x^{(i)}|z^{(i)} ;\mu, \Sigma)p(z^{(i)}, \phi) \end{split} \end{equation*}

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

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

l(\phi, \mu, \Sigma) = \sum_{i=1}^{m} \text{log} p(x^{(i)}|z^{(i)} ;\mu, \Sigma) + \text{log}p(z^{(i)}, \phi)
利用最大似然估计,可以求得这些参数为:

ϕ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}

\begin{equation*} \begin{split} \phi_{j} & =\frac{1}{m} \sum_{i=1}^{m} 1\{z^{(i)}=j\} \\ \mu_{j}& =\frac{\sum_{i=1}^{m} 1\{z^{(i)}=j\} x^{(i)}} { \sum_{i=1}^{m} 1\{z^{(i)}=j\} } \\ \Sigma_{j} & = \frac{\sum_{i=1}^{m} 1\{z^{(i)}=j\}( x^{(i)}-\mu_{j}) ( x^{(i)}-\mu_{j})^{T}}{\sum_{i=1}^{m} 1\{z^{(i)}=j\}} \end{split} \end{equation*}
从上面的表达式可以看出,如果 z(i) z^{(i)}的值已知,那么参数 ϕ,μ,Σ \phi, \mu,\Sigma的估计与之前介绍的Gaussian discriminant analysis 模型对参数的估计是一样的,这里的 z(i) z^{(i)}就像Gaussian discriminant analysis 模型中的输出y一样。

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

Repeat until convergence {

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

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

w_{j}^{(i)}:=p(z^{(i)}=j| x^{(i)}; \phi, \mu, \Sigma)

M-step: 跟新如下参数:

ϕj:=1m∑i=1mw(i)j

\phi_{j} : =\frac{1}{m} \sum_{i=1}^{m} w_{j}^{(i)}

μj:=∑mi=1w(i)jx(i)∑mi=1w(i)j

\mu_{j} : = \frac{\sum_{i=1}^{m} w_{j}^{(i)}x^{(i)}}{ \sum_{i=1}^{m} w_{j}^{(i)} }

Σj:=∑mi=1w(i)j(x(i)−μj)(x(i)−μj)T∑mi=1w(i)j

\Sigma_{j} : = \frac{ \sum_{i=1}^{m} w_{j}^{(i)} ( x^{(i)}-\mu_{j}) ( x^{(i)}-\mu_{j})^{T} }{ \sum_{i=1}^{m} w_{j}^{(i)} }

}

在E-step,我们可以通过给定的 x(i) x^{(i)}和当前估计的参数计算 z(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(z^{(i)}=j| x^{(i)}; \phi, \mu, \Sigma)=\frac{ p(x^{(i)}|z^{(i)}=j ;\mu, \Sigma) p(z^{(i)}=j, \phi) }{ \sum_{l=1}^{k} p(x^{(i)}|z^{(i)}=l ;\mu, \Sigma) p(z^{(i)}=l, \phi) }

这里, p(x(i)|z(i)=j;μ,Σ) p(x^{(i)}|z^{(i)}=j ;\mu, \Sigma)通过计算一个均值为 μj \mu_{j},协方差为 Σj \Sigma_{j}的高斯分布在 x(i) x^{(i)}处的概率密度得到, p(z(i)=j,ϕ) p(z^{(i)}=j, \phi)
是由 ϕj \phi_{j}给出,在E-step计算的 w(i)j w_{j}^{(i)}的值,表示我们对 z(i) z^{(i)}的一种弱估计。

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

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

参考来源:

Andrew Ng, “Machine Learning”, Stanford University.

机器学习 : 高斯混合模型及EM算法相关推荐

  1. 详解高斯混合模型与EM算法

    详解高斯混合模型与EM算法 详解高斯混合模型与EM算法 高斯混合模型 单高斯模型(Gaussian single model, GSM) 一维高斯分布 多维高斯分布 混合高斯模型(Gaussian m ...

  2. 高斯混合模型与EM算法求解

    高斯混合模型 文章目录 高斯混合模型 EM算法 高斯混合模型参数估计 1.样本分类已知情况下的GMM 2.样本分类未知的情况下的GMM 混合模型是一个用来表示在总体分布中含有K个子分布的概率模型,也就 ...

  3. GMM高斯混合模型及EM算法(matlab实现)

    单元 %绘制男女生身高的GMM clc clear all %男女生共取2000人,女生平均身高163,男声平均身高180 male=180+sqrt(10)*randn(1,1000); %产生均值 ...

  4. 机器学习 高斯混合模型

    高斯混合模型 前言 高斯混合模型 高斯分布 混合模型 高斯模型 单高斯模型 高斯混合模型 高斯混合模型训练 EM算法 应用 图像背景的高斯混合模型 智能监控系统 参考 前言 之前在一次技术讨论当中,针 ...

  5. (转载)机器学习知识点(十四)EM算法原理

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

  6. ITK学习笔记(八) ITK高斯混合模型 GMM EM

    ITK学习笔记(八) ITK高斯混合模型 GMM EM 1.高斯混合模型 2.变分贝叶斯高斯混合 3.ITK中的GMM.EM 1.高斯混合模型 sklearn.mixture是一个能够学习高斯混合模型 ...

  7. 机器学习系列-强填EM算法在理论与工程之间的鸿沟(下)

    前言 在上一篇文章<机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)>中,小夕用优(恐)雅(怖)的数学理论来向读者解释了EM算法的工作原理.那么从工程角度出发的EM算法又是怎样的呢? ...

  8. 《机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)》

    小夕曾经问一位做机器学习理论的学姐:"学姐学姐,EM算法是什么呢?" 学姐回答:"EM算法啊,就是解决包含隐变量的参数估计问题." 小夕: 然后小夕去问一位做工 ...

  9. 机器学习(八)——在线学习、K-Means算法、混合高斯模型和EM算法

    http://antkillerfarm.github.io/ 贝叶斯统计和规则化(续) p(θ|S)p(\theta\vert S)可由前面的公式得到. 假若我们要求期望值的话,那么套用求期望的公式 ...

最新文章

  1. Lintcode 655解题思路和c++代码
  2. iOS之深入解析GCD的底层原理
  3. scala 方法、函数定义小结
  4. 认识数据分析_认识您的最佳探索数据分析新朋友
  5. 精品书籍-go go go
  6. 第一阶段冲刺 第八天
  7. 修改 JSON 对象的值
  8. 使用Spark分析拉勾网招聘信息(四): 几个常用的脚本与图片分析结果
  9. Java之美[从菜鸟到高手演变]之Exception
  10. JavaScript 高级教程
  11. termux 安装python3教程_termux怎么安装python
  12. matlab里直线拟合,matlab如何拟合直线
  13. 格雷码编码器 c语言,格雷码编码器功能实现
  14. python编写tftp服务器
  15. android内存脚本教程,安卓内存
  16. Excel2013 破解(编辑工作表受保护)密码
  17. php是什么水处理药剂,国内目前最主要水处理药剂分类及特点
  18. 上计会青少年算法竞赛3月月赛
  19. LeetCode.287 Find the Duplicate Number
  20. 全民一起VBA实战篇 专题3 第一回 格式化规定各人迥异,Format函数一招摆平

热门文章

  1. mysql 解压版启动失败_解压版mysql 错误-mysql启动失败
  2. 【canvas教程】实现画布拖动、定点缩放,支持手势与鼠标滚轮操作
  3. HTML中bold是多少像素,bold是什么字体样式
  4. 关于联想电脑使用AS时的证书问题
  5. 各类木材强度_木材各种特性
  6. Object类中的常用方法
  7. 微信小程序之在线任务发布与接单平台(3)
  8. 2022年10月中国数据库排行榜:达梦冲刺IPO热度不减,PolarDB立足创新夺锦才
  9. 21小时精通微信小程序开发(仿猫眼电影App、微信小程序问答)
  10. 用sql改oracle表结构,SQL server 表结构转Oracle SQL脚本