EM(Expectation Maximization )
概括
看李航老师的《统计学习方法》知道,EM是一个对于有隐含随机变量的概率模型的参数的估计方法,它是一种无监督的算法。
只是有些重要的点并没有给出, 比如没有三硬币例子中直接给出的 u(z), π ,p, q的公式,并没有推到过程, 让人使用起来有些迷惑。
通过浏览了一些网上一些优秀的文章,本文把三硬币问题和EM算法的细节重新阐述一下,以补充李航老师书中的内容,从而加深理解 。
三硬币问题
假设有3枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别为 ,
和
。进行如下投掷实验:先投掷硬币A,根据其结果选出硬币B或者硬币C,正面选硬币B,反面选硬币C;然后投掷选出的硬币,投掷硬币的结果,出现正面记作1,出现反面记作0;独立地重复n次实验 (这里n=10)。观测结果如下:
1,1,0,1,0,0,1,0,1,1
假设只能观测到投掷硬币的结果,不能观测投掷硬币的过程。问如何估计三硬币正面出现的概率, 即三硬币模型的参数。
EM 算法 的数学推导
没办法,想要深刻理解EM 算法的原理, 必须理解下面的数学: 静下心来, 是可以看懂的。
如《统计学习方法》所述, 三硬币问题的观测数据不是完全数据, 因为无法看到A的数据,A在本问题里的隐藏事件,按惯例记作 z, 观测数据(结果)记作 y.
观测数据为 y1,y2,...,y10, (取值:1或0, 代表最终看到的硬币(B或C)的正反面), 隐藏数据为z1,z2,...,z10(取值:1或0, 代表A硬币的正反面) .
如果用最大似然的方法估计y概率模型参数,似然函数 是 每个样本的联合概率, 即:
L (y:θ,π) = p(y1,y2,...,y10 :θ,π)
其中, z 和模型参数解释如下 :

对于每一y样本的概率p(yi) 是 A或B投掷结果为yi 关于z 的数学期望, 表示如下:

对于上面的三硬币式样结果, 展开式为:

按照惯例, 对L (y:θ,π)求对数, 将乘法转换成加法。

上式展开后,无法通过求最大值(也就是最大似然)从而获取θ和π的值:所谓最大似然估计就是当似然函数达到最大值时的参数。
可是,因为在上式中,θ和π并不不互相独立 (有乘法关系), 无法通过使偏导为0从而求得θ或π (比如将θ偏导函数置0后,θ依然依赖π)。
下面过程是利用Jensen不等式进行变形 。 引入R(Z;θ,π), 它是z 的一个概率分布, 模型参数等同于L (y:θ,π) ,R(Z;θ,π)> 0 。将它带入 l(y:θ,π) 如下:




EM 算法 的步骤
第一步:选择参数的初始值
选择参数的初始值 
E 步 : 求Expectation


M 步: Maximization

第四步:反复迭代,直到收敛

三硬币模型中的 EM
参数和z值:

下面的步骤是推导出李航老师书中给出的公式。
E 步 :

M 步:

高斯混合模型中的EM
下图三个二元高斯分布组成的高斯混合模型的有lable观察值。我们可以用最大似然的方法求得三个高斯分布的各自的参数(υk,Σk),每一个分布根据(υk,Σk)都有一个椭圆型的范围, 因此就已对平面上的其他测试点进行分类。

但是对于下面这种这种没有label 的观测数据怎么求得三个高斯分布的各自的参数(υk,Σk) ? 答案是 EM 。
参数和z值 :
E 步 :

M 步 :


Jensen不等式:
如果f是凸函数,X是随机变量,那么:
当f为凹函数是:E[f(X)]>=f(E[X])
当f为凸函数是:E[f(X)]>=f(E[X])
特别地,如果f是严格凸(凹)函数,当且仅当X是常量时,上式取等号。
如果用图表示会很清晰:

下面证明为什么当 X常量时,二式相等。
E[f(X)] = ΣP(X)f(X) ; f(E[X]) = f(ΣP(X)X)
X常量, 则
E[f(X)] = ΣP(X)f(c) = f(c) ΣP(X) = f(c); f(E[X]) = f(ΣP(X)c) =f(cΣP(X)) = f(c)
故E[f(X)] =f(E[X])= f(c)
参考
《统计学习方法》 李航
https://ibug.doc.ic.ac.uk/media/uploads/documents/expectation_maximization-1.pdf
https://zhuanlan.zhihu.com/p/32049842
https://www.zhihu.com/question/27976634
EM(Expectation Maximization )的更多相关文章
- EM算法(Expectation Maximization)
1 极大似然估计 假设有如图1的X所示的抽取的n个学生某门课程的成绩,又知学生的成绩符合高斯分布f(x|μ,σ2),求学生的成绩最符合哪种高斯分布,即μ和σ2最优值是什么? 图1 学生成绩的分 ...
- EM算法(Expectation Maximization Algorithm)初探
1. 通过一个简单的例子直观上理解EM的核心思想 0x1: 问题背景 假设现在有两枚硬币Coin_a和Coin_b,随机抛掷后正面朝上/反面朝上的概率分别是 Coin_a:P1:-P1 Coin_b: ...
- [转]EM算法(Expectation Maximization Algorithm)详解
https://blog.csdn.net/zhihua_oba/article/details/73776553 EM算法(Expectation Maximization Algorithm)详解 ...
- EM算法(Expectation Maximization Algorithm)
EM算法(Expectation Maximization Algorithm) 1. 前言 这是本人写的第一篇博客(2013年4月5日发在cnblogs上,现在迁移过来),是学习李航老师的< ...
- EM(Expectation Maximization)算法
EM(Expectation Maximization)算法 参考资料: [1]. 从最大似然到EM算法浅解 [2]. 简单的EM算法例子 [3]. EM算法)The EM Algorithm(详尽 ...
- 简单理解EM算法Expectation Maximization
1.EM算法概念 EM 算法,全称 Expectation Maximization Algorithm.期望最大算法是一种迭代算法,用于含有隐变量(Hidden Variable)的概率参数模型的最 ...
- 最大期望算法 Expectation Maximization概念
在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Lat ...
- Expectation Maximization and GMM
Jensen不等式 Jensen不等式给出了积分的凸函数值必定大于凸函数(convex)的积分值的定理.在凸函数曲线上的任意两点间连接一条线段,那么线段会位于曲线之上,这就是将Jensen不等式应用到 ...
- 漫谈 Clustering (番外篇): Expectation Maximization
Expectation Maximization (EM) 是一种以迭代的方式来解决一类特殊最大似然 (Maximum Likelihood) 问题的方法,这类问题通常是无法直接求得最优解,但是如果引 ...
随机推荐
- P4147 玉蟾宫--单调栈
P4147 玉蟾宫 题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N*M个格子,每个格子 ...
- 2、使用rpm包安装grafana
Grafana最新版本4.3.1安装从官网下载相关的rpm包 http://docs.grafana.org/installation/rpm/ 1.下载二进制包,安装 [root@localhost ...
- 爬虫-requests
一.爬虫系列之第1章-requests模块 爬虫简介 概述 近年来,随着网络应用的逐渐扩展和深入,如何高效的获取网上数据成为了无数公司和个人的追求,在大数据时代,谁掌握了更多的数据,谁就可以获得更高的 ...
- docker+fastdfs+nginx 实现分布式大文件存储系统以及视频缓存播放
废话不多说,直接开撸 首先是一些准备工作: 1.关闭防火墙 service iptables stop --- fastdfs虽然在docker部署,但是使用的是主机网络,所以关闭防火墙. 2 下载 ...
- SpringBoot使用Nacos配置中心
本文介绍SpringBoot如何使用阿里巴巴Nacos做配置中心. 1.Nacos简介 Nacos是阿里巴巴集团开源的一个易于使用的平台,专为动态服务发现,配置和服务管理而设计.它可以帮助您轻松构建云 ...
- django-request对象
HTTP 应用的信息是通过 请求报文 和 响应报文 传递的,关于更多的相关知识,可以阅读<HTTP权威指南>获得. 其中 请求报文 由客户端发送,其中包含和许多的信息,而 django 将 ...
- linux抓包工具tcpdump使用总结
tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上 1.格式 # tcpdump --help tcpdump version 4.1-PRE-CVS_2012_0 ...
- Android中的Application类在应用程序中的应用
Application类 每次应用程序运行时,应用程序的Application类都保持实例化状态(都会持有该Application实例).与Activity不同的是,配置改变并不会导致应用程序重启.在 ...
- js 复制(自动)
<script type="text/javascript"> document.writeln("<input type=\'text\' id=\' ...
- python-ironicclient使用
使用cli from ironicclient import client kwargs = {'os_username': 'ironic', 'os_password': 'IRONIC_PASS ...

