提出混合模型主要是为了能更好地近似一些较复杂的样本分布,通过不断添加component个数,能够随意地逼近不论什么连续的概率分布。所以我们觉得不论什么样本分布都能够用混合模型来建模。由于高斯函数具有一些非常有用的性质。所以高斯混合模型被广泛地使用。

GMM与kmeans相似,也是属于clustering,不同的是。kmeans是把每一个样本点聚到当中一个cluster,而GMM是给出这些样本点到每一个cluster的概率。每一个component就是一个聚类中心。

GMM(Gaussian Mixture Model)高斯混合模型,由K个不同的Gaussian线性组合而成,每一个Gaussian是混合模型的一个component,GMM的概率密度函数例如以下:

p(x)=∑k=1Kp(k)(x|k)=∑k=1Kπk(x|μk,∑k)

依据上式。从GMM中生成一个样本点x分两步:
    1,从K个component中随机的选择一个
    2。从该component中选择一个点

參数说明:N个样本点。K个component,μk,∑k 是第k个component的均值和协方差矩阵,是模型參数,是须要预计的。

πk是mixing coefficient,表示第k个component被选中的概率。πk=1N∑Nn=1znk,也是模型參数。须要预计。N是高斯(正态)分布。

对一个样本集建立高斯混合模型的过程,就是依据已知样本集X反推高斯混合模型的參数(μ,∑,π),这是一个參数预计问题。首先想到用最大似然的方法求解,也就是,要确定參数π,μ,∑使得它所确定的概率分布生成这些样本点的概率最大。这个概率也就是似然函数,例如以下:

p(x)=∏n=1Np(xi)

而一般对于单个样本点其概率较小。多个相乘后更小,easy造成浮点数下溢,所以通常是对似然函数求log,变成加和形式:

∑i=1Nlnp(xi)

这个叫做log似然函数,目标是要最大化它。用log似然函数对參数分别求偏导。令偏导等于0,可求解得參数。
    然而。GMM的log似然函数是例如以下形式:

lnp(X)=∑i=1Nln[∑k=1Kπk(xi|μk,∑k)]

能够看到对数中有求和,直接求导求解将导致一系列复杂的运算,故考虑使用EM算法。(详细思路见上一篇:EM算法学习笔记)

考虑GMM生成一个样本点的过程,这里对每一个xi引入隐变量z,z是一个K维向量,如果生成xi时选择了第k个component,则zk=1,其它元素都为0。∑Kk=1zk=1.
    如果z是已知的。则样本集变成了{X,Z},要求解的似然函数变成了:

p(X,Z|μ,∑,π)=∏n=1N∏k=1Kπznkk(xn|μk,∑k)znk

log似然函数为:

lnp(X,Z|μ,∑,π)=∑n=1N∑k=1Kznk[lnπk+ln(xn|μk,∑k)].(∗)

能够看到,这次ln直接对Gaussian作用,求和在ln外面,所以能够直接求最大似然解了。

1,初始化一组模型參数π,μ,∑
2,E-step


然而。其实z是不知道的。我们仅仅是如果z已知。

而z的值是通过后验概率观測。所以这里考虑用z值的期望在上述似然函数中取代z。
    对于一个样本点x:

p(z)=∏k=1Kπzkk
p(x|zk=1)=(x|μk,∑k)
p(x|z)=∏k=1K(x|μk,∑k)zk
p(x)=∑zp(z)p(x|z)=∑k=1Kπk(x|μk,∑k)

后验概率(固定μ,∑,π):

p(z|x,μ,∑,π)=p(x|z)p(z)p(x)正比于∏n=1N∏k=1K[πk(xn|μk,∑k)]znk

由于{zn}之间是相互独立的。
    计算z期望γ(znk)(z向量仅仅有一个值取1,其余为0):

γ(znk)=E[znk]=0∗p(znk=0|xn)+1∗p(znk=1|xn)=p(znk=1|xn)=p(znk=1)p(xn|znk=1)p(xn)=πk(x|μk,∑k)∑Kj=1πj(x|μj,∑j).

将z值用期望取代。则待求解的log似然函数(*)式变为:

Ez[lnp(X,Z|μ,∑,π)]=∑n=1N∑k=1Kγ(znk)[lnπk+ln(xn|μk,∑k)].

3,M-step


如今能够最大化似然函数求解參数了,首先对μ求偏导,令偏导等于0。可得:

∑n=1N∑k=1Kγ(znk)∑k(xn−μk)=0
μk=1Nk∑n=1Nγ(znk)xn,其中Nk=∑n=1Nγ(znk).

Nk 是“the effective number of points assigned to cluster k”.
    再对∑k求偏导,令偏导等于0,可得:

∑k=1Nk∑n=1Nγ(znk)(xn−μk)(xn−μk)T

接下来还需求解π。注意到π需满足∑Kk=1πk=1。所以这是一个带等式约束的最大值问题。使用拉格朗日乘数法。
    构造拉格朗日函数:

L=lnp(X|π,μ,∑)+λ(∑k=1Kπk−1).

对π求导,令导数为0:

∑n=1N(x|μk,∑k)∑Kj=1πj(x|μj,∑j)+λ=0

两边同乘πk得:

∑n=1Nγ(znk)+λπk=0
Nk+λπk=0

两边对k求和:

∑k=1KNk+∑k=1Kλπk=0
N+λ=0

可得:λ=−N
    代入可得:πk=NkN.

4,检查是否收敛
    反复E-step和M-step两步。直到收敛,就可以求得一个局部最优解。


GMM的建模步骤例如以下图(k=2,高斯分布是蓝色和红色圈):


主要參考资料:
《Pattern Recognization and Machine Learning》
帮助理解:
http://blog.pluskid.org/?p=39

转载于:https://www.cnblogs.com/mfrbuaa/p/5111355.html

GMM高斯混合模型学习笔记(EM算法求解)相关推荐

  1. 高斯混合模型学习笔记

    高斯混合模型学习笔记 根据师兄(王延凯的博客)以及其他博主大佬的总结学习高斯混合模型,自己也作一下学习记录. 目录 高斯混合模型学习笔记 1.模型介绍 2.模型求解步骤 举个栗子 通用背景模型UBM[ ...

  2. 【统计学习方法】学习笔记——EM算法及其推广

    统计学习方法学习笔记--EM算法及其推广 1. EM算法的引入 1.1 EM算法 1.2 EM算法的导出 1.3 EM算法在非监督学习中的应用 2. EM算法的收敛性 3. EM算法在高斯混合模型学习 ...

  3. 高斯混合模型参数估计的EM算法

    一.高斯模型简介 首先介绍一下单高斯模型(GSM)和高斯混合模型(GMM)的大概思想. 1.单高斯模型 如题,就是单个高斯分布模型or正态分布模型.想必大家都知道正态分布,这一分布反映了自然界普遍存在 ...

  4. GMM高斯混合模型聚类的EM估计过程matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB源码 1.算法概述 高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通 ...

  5. EM算法在高斯混合模型学习中的应用

    本篇文章是之前期望极大算法(EM算法)文章的后续,有需要可以先看看那篇文章关于EM算法的推导. 高斯混合模型 高斯混合模型是研究算法的人避不开的一个东西,其在非深度学习的远古时代经常被用到,比如图像处 ...

  6. GMM 模型与EM算法求解详细推导

    1. 高斯模型与高维高斯模型介绍 高斯模型也就是正态分布模型,该模型最早可见于我们的高中数学教材中.闻其名知其意,正态分布是自然界中普遍存在的一种分布.比如,考试成绩,人的智力水平等等.都是大致呈现为 ...

  7. 王小草【机器学习】笔记--EM算法

    原文地址:http://blog.csdn.net/sinat_33761963/article/details/53520898 EM算法的英文全称是Expectation Maximization ...

  8. K-Means(K均值)、GMM(高斯混合模型),通俗易懂,先收藏了!

    文章目录 1. 聚类算法都是无监督学习吗? 2. k-means(k均值)算法 2.1 算法过程 2.2 损失函数 2.3 k值的选择 2.4 KNN与K-means区别? 2.5 K-Means优缺 ...

  9. EM算法:期望最大算法,原来你是这么得灵性,很多机器学习的参数都是通过EM算法求解的

    EM算法:期望最大算法,原来你是这么得灵性,很多机器学习的参数都是通过EM算法求解的 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联 ...

最新文章

  1. 12 Java面向对象之多态
  2. 第9部分 备份与灾难恢复
  3. 【[AHOI2013]差异】
  4. flink配置+停止flink中的job
  5. java中包命名常见规则
  6. 【UOJ549】序列妙妙值【异或】【根号分治】
  7. 众多Android 开源项目再次推荐,学习不可错过
  8. 数据挖掘之数理统计与常见分布与假设检验
  9. [leetcode]209. 长度最小的子数组
  10. 获得Oracle中刚插入的数据的ID(for produce)
  11. ModbusTCP助手调试工具Modbus主站调试工具ModbusMaster支持所有Modbus设备调试
  12. 直线分割平面的公式_几种分割平面问题 | 学步园
  13. C++关键字(static/register/atuo/extern/volatile/const/inline/define/typedef)
  14. 微信小程序授权登陆源码
  15. 15个令iPhone用户嫉妒的Android widgets 桌面组件
  16. 张铁林的十年英国留学生涯
  17. houseoforange_hitcon_2016(unsortbin attack,fsop)
  18. 七彩虹 pci内存控制器 感叹号 蓝屏 DPC_WATCHDOG_VIOLATION
  19. 关于Go语言的发展前景
  20. 金融机构的反洗钱(AML)合规工作和系统建设

热门文章

  1. 怎么强制限制div宽度
  2. 让你的主机运行ASP.NET 2.0 AJAX程序
  3. TCP/IP模型层次结构
  4. JS事件冒泡机制和兼容性添加事件
  5. Arithmetic_Thinking -- greedy algorithm
  6. BZOJ1409 : Password
  7. Linux 文本界面转到图形界面
  8. PowerDesigner导入SQL生成数据模型
  9. linux 蓝牙脚本,arm linux串口蓝牙工具移植及使用(示例代码)
  10. visual studio 64位汇编 listing列表文件