EM算法详解

  • (一)单高斯模型
    • 1.1 一维高斯分布:
    • 1.2 多维高斯分布:
  • (二)最大似然估计
    • 2.1 最大似然估计的数学概念:
    • 2.2 最大似然估计的基本步骤:
      • 2.2.1 构造似然函数:
      • 2.2.2 对数似然函数:
      • 2.2.3 计算参数估计值:
  • (三)混合高斯模型
    • 3.1 单高斯模型的局限:
    • 3.2 全概率公式:
    • 3.3 混合高斯模型的概念:
  • (四)最大似然估计的局限
    • 4.1 混合模型的似然函数:
    • 4.2 对数似然函数估计时的问题:
  • (五)最大期望估计(EM算法)
    • 5.1 EM算法的基本概念:
    • 5.2 Q函数公式:
    • 5.3 EM算法的基本步骤:
      • 5.3.1 模型参数的初始化:
      • 5.3.2 E-Step:
      • 5.3.3 M-Step:
  • (六)EM算法收敛性的证明
    • 1. 证明的直观目标:
    • 2. 推导和证明过程:
      • 2.1 条件概率公式:
      • 2.2 对两边求期望:
      • 2.3 Q函数和H函数:
      • 2.4 Jenson不等式:
  • (七)EM算法的应用——视频背景分割:
    • 7.1 论文地址:
    • 7.2 检测效果:
    • 7.3 原理详解及其实现:
  • 关注我的公众号:

(一)单高斯模型

1.1 一维高斯分布:

高斯分布(Gaussian Distribution)又叫正态分布(Normal Distribution),是一种常用的概率分布。

对于一组数据,其分布如图,我们可以用高斯模型去拟合这组数据的分布:

服从均值为μ\muμ、标准差为σ\sigmaσ的高斯分布在x点的概率密度为:

我们通常使用一个线性变换,将其转换成均值为0、方差为1的标准正态分布:

1.2 多维高斯分布:


以二维高斯分布为例,我们现在判断的是一个多维向量(这里是二维)X = (x1, x2),其分布为服从均值为μ\muμ1μ\muμ2、标准差为σ\sigmaσ1σ\sigmaσ2的高斯分布:

(二)最大似然估计

2.1 最大似然估计的数学概念:

假设我们手中有一个样本集X,X={ x1,x2,……,xN } 共N个样本,我们假设其符合均值为μ\muμ、标准差为σ\sigmaσ的高斯分布:

这时我们需要通过一定的方法去估计这个高斯分布的均值μ\muμ和标准差σ\sigmaσ,方法之一就是最大似然估计。

2.2 最大似然估计的基本步骤:

2.2.1 构造似然函数:


由于我们假设这个样本符合高斯分布(均值μ\muμ和标准差σ\sigmaσ未知,记为θ\thetaθ),那么X中的某个样本xix_{i}xi​在参数θ={μ,σ}\theta=\lbrace \mu,\sigma \rbraceθ={μ,σ}下取得相应的值的概率为f(xi)f(x_{i})f(xi​),记为f(xi;θ)f(x_{i} ; \theta)f(xi​;θ);

我们构造一个函数L(θ)L(\theta)L(θ),称之为似然函数:

那么使L(θ\thetaθ)最大的参数θ\thetaθ(注意xi均已知),就是我们的估计值;

2.2.2 对数似然函数:

然后对似然函数L(θ\thetaθ)取对数,得到对数似然函数:

这里求对数的原因是我们下一步需要求偏导,这里使用对数将乘除转换成加减,便于计算;

2.2.3 计算参数估计值:

然后对对数似然函数求导,并令其为0(注意多个参数时分别求偏导):


就得到了参数θ\thetaθ的估计值;

对于一维高斯分布:

(注意求得参数θ\thetaθ的时候需要先求μ\muμ,因为σ\sigmaσ的估计值中有μ\muμ)

(三)混合高斯模型

3.1 单高斯模型的局限:

但是现实中往往我们得到的数据的分布并不均匀:

如果我们继续使用单个高斯模型去拟合这组数据,得到的结果可能是一个均值μ\muμ为所有x的均值、标准差σ\sigmaσ非常大的一个分布:

显然这并不能很好地拟合这组数据的分布,因为对于高斯分布,越往均值处(椭圆中心)数据分布应该越密集,但似乎这组数据有不同的概率中心,即这组数据可能分别属于不同的高斯分布;

这时候就需要混合高斯模型了。

3.2 全概率公式:


全概率公式为概率论中的重要公式,它将对一复杂事件A(取得x)的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题;

3.3 混合高斯模型的概念:

复杂的数据往往是多峰的(如上图),这时我们就使用多个高斯分布来描述这样的数据分布,公式满足全概率公式:

其中:

  1. p(x)p(x)p(x) 是样本取得x值的概率;
  2. KKK 表示共有K个模型;
  3. p(k)p(k)p(k) 表示x属于第k个高斯模型的概率;
  4. p(x∣k)p(x|k)p(x∣k) 表示在第k个高斯模型下取得x的概率;

那么p(x)也等价为:

其中:
5. π\piπkkk 是第k个高斯模型的权重;
6. μ\muμkkk 是第k个高斯模型的均值;
7. ε\varepsilonεkkk 是第k个高斯模型的标准差;

此时K个模型组成的混合高斯模型的参数为:

θ\thetaθ = { π\piπ1,……,π\piπK-1, μ\muμ1,……,μ\muμK,ε\varepsilonε1,……,ε\varepsilonεKKK }

(注意这里由于∑k=1K\sum_{k=1}^K∑k=1K​π\piπk = 1,故参数π\piπ的自由度为K-1)

(四)最大似然估计的局限

4.1 混合模型的似然函数:

这时我们再尝试用最大似然估计的方法来估计参数θ\thetaθ 的值:

我们可以看到这里的对数似然函数中,ln()ln()ln() 里面包含了求和项:

4.2 对数似然函数估计时的问题:

即使我们已经对似然函数取了对数,但是求出的偏导中各个参数的估计值相互关联,计算非常复杂;

这时我们就需要找一种方法,能够用相对简单的方式去估计或者去迭代趋近这个估计值;这种方法就叫做最大期望算法(Expectation-Maximization algorithm,简称EM算法)。

(五)最大期望估计(EM算法)

5.1 EM算法的基本概念:


EM算法的核心概念就是:

通过引入隐藏变量构造一个更为简单的函数(记为QQQ函数),对QQQ函数进行最大似然估计计算参数的估计值θ\thetaθ;

如果能够证明每次迭代时通过最大化Q(θt−1)Q(\theta^{t-1})Q(θt−1)时得到的参数θ\thetaθ的新的估计值θt\theta^{t}θt满足:

那么第t次迭代的参数的估计值为:

通过不断迭代,就可以最终得到收敛的参数θ\thetaθ,此时我们认为这个θ\thetaθ就是我们分布模型的参数的估计值。

5.2 Q函数公式:

我们构造如图所示的Q函数:

其中:

  1. XXX 是样本集,X={x1,x2,……,xN}X=\lbrace x_{1},x_{2},……,x_{N} \rbraceX={x1​,x2​,……,xN​};
  2. ZZZ 是隐藏参数,Z={z1,z2,……,zN}Z=\lbrace z_{1},z_{2},……,z_{N}\rbraceZ={z1​,z2​,……,zN​},其中zi=kz_{i}=kzi​=k表示xix_{i}xi​属于第k个高斯模型;
  3. θ\thetaθ 是待估参数,θ={μ1,……,μN,ε1,……,εN}\theta=\lbrace\mu_{1},……,\mu_{N},\varepsilon_{1},……,\varepsilon_{N}\rbraceθ={μ1​,……,μN​,ε1​,……,εN​};

即,第t次迭代的结果为:

5.3 EM算法的基本步骤:

注:具体的公式推导会写在收敛性的证明里面;

5.3.1 模型参数的初始化:

这时我们明白了EM算法的基本原理,但是当我们开始第一次迭代的时候会发现一个很重要的问题:

  1. 我们需要知道Z0={z0,1,z0,2,……,z0,N}Z^0=\lbrace z_{0,1},z_{0,2},……,z_{0,N}\rbraceZ0={z0,1​,z0,2​,……,z0,N​}(z下标第一个数为迭代次数t),才能根据ZZZ写出函数QQQ,并获得参数θ\thetaθ的估计值;
  2. 但是,同时我们也需要知道θ0\theta^0θ0的值,才能根据混合高斯模型的公式推导出样本X的分布属于哪一个单高斯模型,即ZZZ的值;

这样似乎我们就陷入了一个两难的境地;

但是由于我们知道,每次迭代得到的值θt\theta^{t}θt都越来越接近参数θ\thetaθ的估计值,因此我们不如在抽样之前先给每种样本依照经验赋予一个初始分布(即变量θ0\theta^0θ0),再依照分布求取隐藏变量ZZZ的期望,这样再开始不断迭代,就能得到最终的θ\thetaθ;

5.3.2 E-Step:

E-Step 指的是Exception步骤,即求取样本XXX的隐藏变量ZZZ的期望Zt−1Z^{t-1}Zt−1:

  1. 如果是第1次运行E-Step,使用初始化的高斯混合分布函数确定样本X={x1,x2,…,xN}X=\lbrace x_{1},x_{2},…,x_{N} \rbraceX={x1​,x2​,…,xN​}属于的概率最大的分类,从而预估隐藏参数Z0Z^{0}Z0;

  2. 如果是第ttt次运行E-Step,则使用经过t−1t-1t−1次迭代、参数为θt−1\theta^{t-1}θt−1的高斯混合分布函数确定隐藏参数Zt−1Z^{t-1}Zt−1。

5.3.3 M-Step:

M-step 指的是Maximization步骤,即求取混合模型的参数θt\theta^{t}θt:

通过最大化Q(θt−1)Q(\theta^{t-1})Q(θt−1),得到新的参数估计值θt\theta^tθt;

(六)EM算法收敛性的证明

1. 证明的直观目标:

我们的最终目标,是证明EM算法迭代足够多的次数得到的θt\theta^tθt,能够近似表示混合高斯模型的参数估计值θ\thetaθ,那就等价于证明每次迭代得到的θt\theta^tθt满足:

直观上理解就是,只要我们能够证明每次迭代的参数θt\theta^tθt,能够使的对数似然函数lnL(θt)lnL(\theta^{t})lnL(θt)比上一次迭代的参数lnL(θt−1)lnL(\theta^{t-1})lnL(θt−1)更大,那么我们认为经过足够多的次数的迭代,就可以使得lnL(θ)lnL(\theta)lnL(θ)最大化;

此时的θt\theta^tθt就认为是参数θ\thetaθ的估计值;

2. 推导和证明过程:

2.1 条件概率公式:


对数似然函数(这里用概率PPP表示样本XXX的概率乘积),引入隐含变量ZZZ可以表示为:

即:

2.2 对两边求期望:

对上述等式两边在分布ZZZ下求其期望,得:

左边由于样本属于不同分布的概率之和∑P(Z∣X,θt−1)\sum P(Z|X,\theta^{t-1})∑P(Z∣X,θt−1)为1,可得:

右边同样可以得到:

此时有:
其中lnP(X∣θ)lnP(X|\theta)lnP(X∣θ)就是对数似然函数;

到这一步我们就只需要证明:

即证明:

2.3 Q函数和H函数:

这时我们发现:

并构造HHH函数:

此时证明的不等式转换为:

由于我们对QQQ函数进行最大似然估计得到的θt\theta^tθt满足:

那么在θ=θt−1\theta=\theta^{t-1}θ=θt−1时:

这样我们只需要证明:

或者:

H(θt−1,θt−1)−H(θt,θt−1)≥0H(\theta^{t-1},\theta^{t-1})-H(\theta^{t},\theta^{t-1})\geq 0H(θt−1,θt−1)−H(θt,θt−1)≥0

即可证明不等式:

2.4 Jenson不等式:

Jenson不等式表述为,如果函数fff是一个凸函数(注:有的地方叫凹函数,定义不尽相同,但都满足二次导数f′′≤0f^{''}\leq0f′′≤0),则满足:

直观上描述为:函数值的期望大于期望的函数值;

这样我们就可以得到:

当θ=θt\theta=\theta^tθ=θt时:


至此证明完毕

(七)EM算法的应用——视频背景分割:

EM算法广泛应用于混合模型特别是混合高斯模型的参数估计,一种应用就是通过对视频中每个像素点进行建模,来实现对视频中的运动目标检测和背景分割;

7.1 论文地址:

《Effective Gaussian Mixture Learning for Video Background Subtraction》

7.2 检测效果:

7.3 原理详解及其实现:

可以看我的这篇博客:
【目标追踪】基于高斯混合学习的视频背景减法

关注我的公众号:

感兴趣的同学关注我的公众号——可达鸭的深度学习教程:

【机器学习基础】EM算法详解及其收敛性证明相关推荐

  1. 基础排序算法详解与优化

    文章图片存储在GitHub,网速不佳的朋友,请看<基础排序算法详解与优化> 或者 来我的技术小站 godbmw.com 1. 谈谈基础排序 常见的基础排序有选择排序.冒泡排序和插入排序.众 ...

  2. 机器学习最易懂之EM算法详解与python实现

    文章目录 0.前言 1.EM算法引入 2.具体的EM算法 3.EM算法推导 3.1 Jensen不等式 3.2 EM推导 3.3 EM算法的收敛性 4.EM算法在高斯混合模型中的应用 4.1 高斯混合 ...

  3. 机器学习基础 EM算法

    文章目录 一.初识EM算法 二.EM算法介绍 1. 极大似然估计 1.1 问题描述 1.2 用数学知识解决现实问题 1.3 最大似然函数估计值的求解步骤 2. EM算法实例描述 3. EM算法流程 三 ...

  4. em算法怎么对应原有分类_机器学习基础-EM算法

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断等等.本文就对 ...

  5. 机器学习之k-means算法详解

    文章目录 K-means算法 (无监督算法,聚类算法) 1-1 基本流程 一.概念: 二.主要特点: 三.算法流程: kmeans作用:去除奇异值 小结: 1-2 算法效果衡量标准 一.K值确定: 二 ...

  6. 高斯混合模型(GMM)和EM算法详解

    小白一枚,接触到GMM和EM,现将学习到的整理出来,如有错误,欢迎指正,文中涉及到公式的推导比较繁琐,故先在纸上推导出来再拍照发出来.希望大家多多交流,共同进步.接下来将按照思路一步一步进行介绍. 1 ...

  7. 极大似然函数求解_从最大似然函数 到 EM算法详解

    极大似然算法 本来打算把别人讲的好的博文放在上面的,但是感觉那个适合看着玩,我看过之后感觉懂了,然后实际应用就不会了.... MLP其实就是用来求模型参数的,核心就是"模型已知,求取参数&q ...

  8. 【机器学习】机器学习基础知识常见问题详解!

    作者:胡联粤,Datawhale面经小组 Q1 ⽼板给了你⼀个关于癌症检测的数据集,你构建了⼆分类器然后计算了准确率为 98%, 你是否对这个模型满意?为什么?如果还不算理想,接下来该怎么做? 首先模 ...

  9. 机器学习基础-正则化作用详解

    正则化的概念在机器学习中经常被提到,本文主要介绍正则化的作用,通过一系列具体的例子,相信能够对正则化有一个非常清晰的认识. 过拟合问题(The Problem of Overfitting) 来看预测 ...

最新文章

  1. AllUsers And SiteUsers
  2. bzoj4631踩气球
  3. 如何删除Safari浏览器的扩展程序 大神教你搞定
  4. alert,confirm和prompt
  5. H264码流打包分析
  6. 《狂人日记》金句摘抄(一)
  7. 如何在golang代码里面解析容器镜像
  8. 反复出现的PSW木马, 附日志,请高手指点
  9. windows vs编译环境 python_Python虚拟环境使用(Windows)
  10. 拿什么重建你,巴黎圣母院?
  11. 洛谷P3216 [HNOI2011]数学作业
  12. 电脑卡顿不流畅是什么原因_为什么感觉电脑远不如手机流畅?
  13. 3.1.3、控制结构
  14. 键盘无响应-如何修复键盘注册表
  15. 外贸中一些单词的缩写
  16. docker中报错Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirro
  17. 类 SimpleDateFormat
  18. PHP MVC框架初探
  19. 基于单片机的超市储物柜设计_一种基于at89c51单片机的超市寄存装置的制造方法...
  20. 10、Dp Notes底部导航栏

热门文章

  1. java学习day31(redis2)数据类型
  2. matlab指令汇总
  3. lol客户端打开之后是wegame并且卡住
  4. 简单灵活万用管理软件——蓝点通用管理系统V26破版,手慢无
  5. HttpClient的使用教程
  6. java实现基于管程法的消费者生产者模式(两个消费者一个生产者)
  7. python使用pandas读取excel绘制柱状图,折线图,饼状图
  8. 电感、电容、电阻基本元器件参数选型
  9. 关于make提示must been abled with the -std=c++11 or -std=gnu++11 compiler options
  10. Android仿微信朋友圈2自定义点赞评论弹框