EM算法(Expectation-maximization),又称最大期望算法,是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计(或极大后验概率估计)

从定义可知,该算法是用来估计参数的,这里约定参数为  。既然是迭代算法,那么肯定有一个初始值,记为  ,然后再通过算法计算 

通常,当模型的变量都是观测变量时,可以直接通过极大似然估计法,或者贝叶斯估计法估计模型参数。但是当模型包含隐变量时,就不能简单的使用这些估计方法

举个具体的栗子:

永远在你身后:Matplotlib输出动画实现K-means聚类过程可视化​zhuanlan.zhihu.com

K-means算法中,除了给定的样本(也就是观测变量)  以及参数  (也就是那些个聚类的中心)之外,还包含一个隐变量(记为  ),它是每个样本的所属类别

可以理解为,我们之所以对一批样本进行聚类,也是因为认为这些样本是有它们潜在的类别的,也就是说还有一个隐变量是我们没有(或者无法)观测到的

下面先给出EM算法的步骤公式,然后再对公式进行推导。假设在第  次迭代后参数的估计值为  ,对于第  次迭代,分为两步

  • E步,求期望:

关于的随机变量的函数的期望,公式在后面会给出

  • M步,最大化:

其中,  称为  函数,是EM算法的核心。下面就来对公式进行推导


给定一组观测数据记为  ,以及参数  。因为  是独立同分布,所以有以下对数似然函数:

可以通过极大似然估计来求解最优参数,即:

但是由于隐变量的存在,  变为

注意:联合概率公式 P(XZ)=P(X|Z)P(Z)

这样直接求解就变得困难,一个办法是构造一个容易优化的——关于对数似然函数的——下界函数,通过不断的优化这个下界,迭代逼近最优参数。为了方便下面推导流畅,提前先贴几个公式

随机变量的数学期望

随机变量函数的数学期望。设  ,则  的期望为:

相对熵

下面是具体的推导。首先引入隐变量  的概率分布  ,满足

并且以下等式成立

两边同时取对数

同时求两边在  上的期望

因为  与  无关,所以求期望仍然不变:

然后将右边展开

由此得到对数似然函数的下界。并且当  ,上式可以取到等号,由相对熵的性质可知,相对熵为0,也就是 

其中  是  的概率分布,但是因为无法观测  ,所以  未知,可以假设其等于  ,也就是  关于给定  与  的后验,且  是由初始值  一次次迭代计算而来,所以此处的  是迭代  次后的值

然后通过极大似然估计得到:

以上,就是EM算法中E步的由来,然后令  ,就得到了M步的公式

以上就是EM算法的推导过程,为了加深理解,我们可以换一个角度来总结一下。前面我们定义了似然函数

由于累加号嵌套在  函数中,难以直接进行求解,如果换一个似然函数,就容易的多

但是,又由于的  是隐变量,无法得到它的概率分布,只能通过给定的  和  来计算它的后验分布,然后求似然函数在此分布上的期望

最后,再寻找能使似然函数的期望最大化的参数

EM算法理论与推导的更多相关文章

  1. Machine Learning系列--EM算法理解与推导

    EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,是机器学习十大算法之一,吴军博士在<数学之美>书中称其为“上帝视角”算 ...

  2. EM算法定义及推导

    EM算法是一种迭代算法,传说中的上帝算法,俗人可望不可及.用以含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计 EM算法定义 输入:观测变量数据X,隐变量数据Z,联合分布\(P(X,Z|\t ...

  3. python机器学习笔记:EM算法

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

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

    # coding:utf-8 import numpy as np def qq(y,alpha,mu,sigma,K,gama):#计算Q函数 gsum=[] n=len(y) for k in r ...

  5. EM算法(Expectation Maximization Algorithm)

    EM算法(Expectation Maximization Algorithm) 1. 前言   这是本人写的第一篇博客(2013年4月5日发在cnblogs上,现在迁移过来),是学习李航老师的< ...

  6. EM算法求高斯混合模型參数预计——Python实现

    EM算法一般表述:       当有部分数据缺失或者无法观察到时,EM算法提供了一个高效的迭代程序用来计算这些数据的最大似然预计.在每一步迭代分为两个步骤:期望(Expectation)步骤和最大化( ...

  7. EM算法 小结

    猴子吃果冻 博客园 首页 新随笔 联系 管理 订阅 随笔- 35  文章- 0  评论- 3  4-EM算法原理及利用EM求解GMM参数过程   1.极大似然估计 原理:假设在一个罐子中放着许多白球和 ...

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

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

  9. EM算法以及推导

    EM算法 Jensen不等式 其实Jensen不等式正是我们熟知的convex函数和concave函数性质,对于convex函数,有 \[ \lambda f(x) + (1-\lambda)f(y) ...

随机推荐

  1. Windows安装多个python解释器

    Windows安装多个python解释器 ​ 在windows10系统下安装两个不同版本的的python解释器,在通常情况下编译执行文件都是没问题的,但是加载或下载包的时候pip的使用就会出现问题,无 ...

  2. 基于Python3.7的robotframework环境搭建步骤

    一.前言 Robot Framework作为公司能快速落地实现UI自动化测试的一款框架,同时也非常适合刚入门自动化测试的朋友们去快速学习自动化,笔者计划通过从搭建逐步到完成自动化测试的过程来整体描述它 ...

  3. Razor 视图

    Razor 视图 关于视图引擎 视图引擎简单理解就是能够支持对视图的解析,在 ASP.NET MVC 中,视图引擎的作用就是把视图处理成浏览器能够执行的 HTML 代码,不同的视图引擎,语法规则不一样 ...

  4. TensorFlow从0到1之回归算法(11)

    回归是数学建模.分类和预测中最古老但功能非常强大的工具之一.回归在工程.物理学.生物学.金融.社会科学等各个领域都有应用,是数据科学家常用的基本工具. 回归通常是机器学习中使用的第一个算法.通过学习因 ...

  5. (三)POI-格式设置

    原文链接:https://blog.csdn.net/class157/article/details/92800980 package com.java.poi; import org.apache ...

  6. WPF入门(1)

    开始对WPF动手,从0开始一步一步深入学习 1)参考文档:msdn.<WPF编程宝典:使用C#2012和NET 4.5 第4版> 2)开发工具:Microsoft Visual Studi ...

  7. 成为python程序员,对疫情过后的毕业生来说,真是一个不错的方向吗?

    Python最近几年,一直被炒得很火,这其中有商业因素,但更重要的是即将到来的人工智能时代,而python就恰好是最适合的编程语言. 所以无论是在职的人,还是在校的学生,都想着跟上这一趋势,但,在今年 ...

  8. ssh生成单个公钥

    ssh生成单个公钥命令: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 查看公钥: cat ~/.ssh/id_rsa ...

  9. SpringCloud 入门(二)

    前文我们介绍了创建注册中心的过程以及配置,接下来我们再简单的创建一个客户端 基本操作和前文一样,不一样的是选择的依赖 然后下一步,修改启动类和配置,结构如下图 修改配置文件application-te ...

  10. 手写spring事务框架-蚂蚁课堂

    1.视频参加C:\Users\Administrator\Desktop\蚂蚁3期\[www.zxit8.com] 0017-(每特教育&每特学院&蚂蚁课堂)-3期-源码分析-手写Sp ...