一、GMM算法

EM算法实在是难以介绍清楚,因此我们用EM算法的一个特例GMM算法作为引入。

1、GMM算法问题描述

GMM模型称为混合高斯分布,顾名思义,它是由几组分别符合不同参数的高斯分布的数据混合而成的。

假设有n个样本点\(x_{1},x_{2},...,x_{n}\),它们来自K个不同的高斯分布。有如下参数:

1、不同高斯分布的数据占比:\(\pi_{i}\)
2、每个高斯分布的均值与方差:\(\pi_{i}~N(\mu_{i},\sigma_{i}^2)\)

我们的目的是求出每个\(\pi_{i}\),\(\mu_{i}\),\(\sigma_{i}\)

因此我们的目标即是求合适的\(\pi_{i}\),\(\mu_{i}\),\(\sigma_{i}\)来最大化对数似然函数。

\[l_{\pi,\mu\sigma}(x)=\sum^{N}_{i=1}log[\sum^{K}_{k=1}\pi_{k}N(x_{I}|\mu_{k},\sigma_{k})]\]
这个目标函数中既有对数又有加和,因此不能直接求导因此我们采用迭代的方法。

2、GMM迭代方法描述

Step1:对于每一个样本点i,计算它由不同组分(第k个组分)生成的概率\[r(i,k)=\dfrac{\pi_{k}N(x_{i}|\mu_{k},\sigma_{k})}{\sum^{K}_{j=1}\pi_{j}N(x_{i}|\mu_{j},\sigma_{j})}\]
Step2:由各个样本点的\(r(i,k)\)更新参数\(\pi_{i}\),\(\mu_{i}\),\(\sigma_{I}\)

Step3:回到Step1,迭代更新

这其实就是EM算法的E步和M步的过程。

下面给出通用的EM算法伪代码。

3、EM算法

Repeat util 收敛{
(E步):对每个样本\(x_{i}\),计算\[Q_{i}(z^{i})=P(z^{i}|x^{i};\theta)\]
(M步):对每个参数\(\theta\),有\[\theta:=argmax_{\theta }l\left( \theta \right) =argmax_{\theta}\sum^{}_{i}\sum^{}_{z^{i}}Q_{i}(z^{i})log\dfrac{P(x_{i};z_{i};\theta)}{Q_{i}(z_{i})}\]
}

其中,E步的那个\(Q\)就是第i个样本的分布,就是那个\(r(i,k)\)
这个形式可以推导可得,其实是等价的

M步中,那个公式就是对数似然函数,求使它最大化的参数

总结:EM算法说到底是一个迭代更新的过程。它首先对各个样本计算分布,然后更新参数;再计算分布,再更新参数……

机器学习(七)EM算法、GMM的更多相关文章

  1. 斯坦福大学机器学习,EM算法求解高斯混合模型

    斯坦福大学机器学习,EM算法求解高斯混合模型.一种高斯混合模型算法的改进方法---将聚类算法与传统高斯混合模型结合起来的建模方法, 并同时提出的运用距离加权的矢量量化方法获取初始值,并采用衡量相似度的 ...

  2. 机器学习五 EM 算法

    目录 引言 经典示例 EM算法 GMM 推导 参考文献: 引言 Expectation maximization (EM) 算法是一种非常神奇而强大的算法. EM算法于 1977年 由Dempster ...

  3. 机器学习之EM算法(五)

    摘要 EM算法全称为Expectation Maximization Algorithm,既最大期望算法.它是一种迭代的算法,用于含有隐变量的概率参数模型的最大似然估计和极大后验概率估计.EM算法经常 ...

  4. 【机器学习】EM算法详细推导和讲解

    今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...

  5. 关于机器学习-EM算法新解

    我希望自己能通俗地把它理解或者说明白,但是,EM这个问题感觉真的不太好用通俗的语言去说明白,因为它很简单,又很复杂.简单在于它的思想,简单在于其仅包含了两个步骤就能完成强大的功能,复杂在于它的数学推理 ...

  6. 【机器学习】--EM算法从初识到应用

    一.前述 Em算法是解决数学公式的一个算法,是一种无监督的学习. EM算法是一种解决存在隐含变量优化问题的有效方法.EM算法是期望极大(Expectation Maximization)算法的简称,E ...

  7. 机器学习:EM算法

    EM算法 各类估计 最大似然估计 Maximum Likelihood Estimation,最大似然估计,即利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值的计算过程. 直白来讲,就 ...

  8. 机器学习笔记—EM 算法

    EM 算法所面对的问题跟之前的不一样,要复杂一些. EM 算法所用的概率模型,既含有观测变量,又含有隐变量.如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法来估计 ...

  9. 机器学习-EM算法-GMM模型笔记

    GMM即高斯混合模型,下面根据EM模型从理论公式推导GMM: 随机变量X是有K个高斯分布混合而成,取各个高斯分布的概率为φ1,φ2,... ,φK,第i个高斯分布的均值为μi,方差为Σi.若观测到随机 ...

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

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

随机推荐

  1. 软件测试为什么需要学习Linux的知识?Linux学到什么程度?-log5

    ​软件测试为什么需要学习Linux的知识?学到什么程度?-log5 Dotest软件测试学堂-董浩 公司目前90%的服务器操作系统不是Windows,而是Linux(RedHat.Debian.Cen ...

  2. Nginx下配置虚拟主机的三种方法

    Nginx下,一个server标签就是一个虚拟主机. 1.基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2.基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站,外部网站的 ...

  3. python正则表达式--match search方法

    1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern, st ...

  4. 处理soapUI特殊返回报文 【原】

    String message ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + & ...

  5. 2018年最新JAVA面试题总结之基础(1)

    转自于:https://zhuanlan.zhihu.com/p/39322967 1.JAVA中能创建volatile数组吗?volatile能使得一个非原子操作变成原子操作吗? 回答: 能,Jav ...

  6. js实现放大效果

    <!doctype html><html> <head> <meta charset="UTF-8"> <title>放 ...

  7. 「JOISC 2017 Day 3」幽深府邸

    题解: 和hnoi2018day2t1基本一样 我想了半小时想出了一个很麻烦的做法 写了之后发现假掉了 刚开始想的是 先预处理出每个门要打开至少要在左边的哪个点$L[]$,右边的哪个点$R[]$ 对每 ...

  8. Node.js 操作 OSX 系统麦克风、扬声器音量

    最近几年 Electron 很火,公司也正好有个项目想做跨平台客户端,大家研究了一下就选择了 Electron,第一次做 js 的项目遇到了不少坑,不过也都一点点解决了. 因为项目中需要对用户录音,H ...

  9. 杂记:Python 两坑

    近日写代码又遇到两个 Python 的坑,觉得值得记录. 递归传参问题 Python 里传参的实现是 assignment,但由于 Python 里都是对象,除了几个基本类型,assignment 基 ...

  10. Django--post提交表单内容

    本节目标:①.提交表单内容②.通过客户端提交表单新增一篇文章③.通过Django的forms组件来完成新增一篇文章 =======提交表单内容======== 1.前端html:login.html ...