参考来源:

  1. 《机器学习》——周志华
  2. https://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

几个概念

  • 极大似然估计

A事件发生了,A与某因素θ有关,我们“理所当然”认为θ的取值应该使A发生的概率最大,即θ的极大似然估计为θ=arg maxθ P(A|θ)

  • Jensen不等式

对于下凸函数f和变量X,有不等式:E[f(X)]>=f(E[X])

上式易从函数的几何形状推出。

EM算法

EM算法即Expectation-Maximization,期望最大化算法。

基本想法为:若参数θ已知,则可根据训练集推断最优隐变量Z(E步);若Z已知,则可对θ做极大似然估计,调整θ。

假设有变量X及隐变量Z,参数为θ,则对θ做极大似然估计:

由于Z为隐变量,无法直接求解上式,此时可对Z计算期望,来最大化X的对数边际似然:

EM算法以初始θ为起点,通过以下操作迭代至收敛。

EM算法原型

  1. 基于θt推断隐变量Z的期望Zt
  2. 基于变量X和Zt对参数θ做极大似然估计,得到θt+1

若不取Z的期望,而是根据θ计算Z的概率分布P(Z|X,θ),则:

  • 以当前参数θt推断Z的分布,并计算对数似然LL(θ|X,Z)关于Z的期望
  • 寻找参数最大化期望似然,即

下面,我们基于概率分布进行具体推导:

θ的对数似然为:

我们变形一下,并应用上面的不等式:

上式推导过程为:

不等式取等号当且仅当变量为常数c,即

则Q(z)为:

此即E步更新。

固定Q(z),更新参数,即M步为:

由于

去掉常数项,参数的更新即为:

至此,推导结束。E和M步迭代进行,至似然不再变化或变化小于阈值停止。

EM算法的几何解释

E步相当于使下界函数抬高至不等式取等号处,M步相当于调整参数使下界函数取得极大值,此时更新参数应该会改变下界函数,然后继续执行E、M步。

另外,EM算法只保证收敛到局部最优(对于凸函数,只有一个极值,当然就是全局最优)。

EM算法分析的更多相关文章

  1. 机器视觉编程作业02(00)EM算法

    任务:对图像进行边缘检测 思路: )将图像的灰度数值进行0-255的维度统计: )EM算法分析出几个核心显示区块的灰度: )使用通用的边界检测算法(具体哪一种待定). 编辑于2017.12.24 15 ...

  2. CSS中强悍的相对单位之em(em-and-elastic-layouts)学习小记

    使用相对单位em注意点 1.浏览器默认字体是16px,即1em = 16px,根元素设置如下 html{ font-size: 100%; /* WinIE text resize correctio ...

  3. 由css reset想到的深入理解margin及em的含义

    由css reset想到的深入理解margin及em的含义 原文地址:http://www.ymblog.net/content_189.html 经常看到这样语句,*{ margin:0px;pad ...

  4. 【十大经典数据挖掘算法】EM

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 极大似然 极大似然(Maxim ...

  5. px和em,rem的区别

    1.px是你屏幕设备物理上能显示出的最小的一个点,这个点不是固定宽度的,不同设备上点的长宽.比例有可能会不同.假设:你现在用的显示器上1px宽=1毫米,但我用的显示器1px宽=两毫米,那么你定义一个d ...

  6. 学习笔记——EM算法

    EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(expectation):M步,求 ...

  7. em与px换算关系以及常用列表

    1.任意浏览器的默认字体大小都是16px.2.所有未经调整的浏览器都符合: 1em=16px 12px=0.75em 10px=0.625em3.为了简化font-size的换算,在body选择器中声 ...

  8. CSS3中的px,em,rem,vh,vw辨析

    1.px:像素,精确显示 2.em:继承父类字体的大小,相当于"倍",如:浏览器默认字体大小为16px=1em,始终按照div继承来的字体大小显示,进场用于移动端 em换算工具:h ...

  9. rem、px、em之间的区别以及网页响应式设计写法

    个人收藏用,转载自:http://www.w3cplus.com/css3/define-font-size-with-css3-rem 在Web中使用什么单位来定义页面的字体大小,至今天为止都还在激 ...

随机推荐

  1. 报表开发工具!DevExpress Reporting v19.1:WPF/Web平台报表

    行业领先的.NET界面控件DevExpress Reporting全新发布了v19.1版本,本文主要为大家介绍WPF.Web平台中DevExpress Reporting发布的一些新功能及增强部分功能 ...

  2. 消金ABS

    对于持牌消金公司来说,发行ABS需满足至少3年经营期限的硬性规定,目前已开业的24家消金公司里,有15家符合此项规定. 2019年下半年以来,个人消费金融领域共发行了15个资产证券化产品,发行规模达4 ...

  3. [Algorithm] Convert a number from decimal to binary

    125, how to conver to binary number? function DecimalToDinary (n) { let temp = n; let list = []; if ...

  4. DataGrid控件的列

    四种列(局限性较大)https://www.cnblogs.com/lonelyxmas/p/9442604.html 更强大的模板列(如控件居中等)https://www.cnblogs.com/l ...

  5. 51 Nod 1101 换零钱(动态规划好题)

    1101 换零钱  基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 N元钱换为零钱,有多少不同的换法?币值包括1 2 5分,1 2 5角,1 2 5 ...

  6. matlab函数 bsxfun浅谈(转载)

    关于matlab函数 bsxfun本文来源:http://blog.sina.com.cn/s/blog_9e67285801010ttn.html a=[1 2 3];b=[1 2 3]';c=bs ...

  7. 【CUDA 基础】3.6 动态并行

    title: [CUDA 基础]3.6 动态并行 categories: - CUDA - Freshman tags: - 动态并行 - 嵌套执行 - 隐式同步 toc: true date: 20 ...

  8. MySQL_(Java)使用JDBC创建用户名和密码校验查询方法

    MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL数据库中的数据,数据库名garysql,表名garytb,数据库中存在的用户表 通过JDBC对MySQL中的数据用户名和密码 ...

  9. C# WebServices 客户端服务端

    一.编写一个WebService 开发环境:VS2012 1.编写webservice阶段 打开VS2012,新建一个空的web应用程序,我这里用的Framework版本是4.5的 新建好web应用程 ...

  10. PostgreSQL10配置远程连接

    PostgreSQL10配置远程连接 psql --version centos7.3中 1.开启相应的防火墙端口,允许端口5432 2.访问权限配置/etc/postgresql/10/main/下 ...