解决含有隐变量的问题有三种方法,其中第三种方法就是通常所说的em算法。下面以统计学习方法中给出的三硬币问题为例来分别描述这三种方法。(a,b,c三硬币抛出来为正的概率分别为pai,p,q,每轮抛硬币先抛a硬币,a为正则抛b硬币,a为反则抛c硬币。把b硬币或者c硬币的结果(正或反)作为最终结果,即样观测值。)

第一种方法:

现在我们只知道样本的观测值集合,我们可以以每一个样本观测值(例如y1=1)为一个单位单独考察。在这种方法之下,我们并不关注pai的值是多少,即抛出a为正的概率,只关注与该样本观测值相对应的抛的那次a硬币的结果究竟是正还是反,只要知道了它的正反,我们就可以知道本次的观测值究竟是b抛出来的还是c抛出来的。使用的方法也可以算是最大似然估计,就是我分别假设a抛出的是正面或反面,然后分别计算在a是正面和a是反面的时候有多大的可能性会抛出该观测值。如果假定a是正面时出现当前观测值的概率更大,我们就把该次的a认定为正面,反之则认定为反面。使用这种方法可以分别定义每个样本观测值对应的a是正面还是反面。计算出a为正面时对应的观测值中有多少为正有多少为反,例如4正6反,就能根据最大似然估计得出p=0.4作为新的p值,同样的办法也能算出新的q的值。算出新值后即可进行新一轮的迭代。

第二种方法:

也就是统计学习方法p156页用到的方法。该方法第一个方法的相同点就是都是以每一个观测值作为一个单元单独考察,不同就在于首先分别通过假设的方法给出pai、p、q的初值。这样就可以通过贝叶斯公式计算出p(z|y)。(即统计学习方法p156页9.5)也就是说在当前观测值对应的a为正和a为反的概率都能求出来。那么对于每一个观测值,我们就只需要看一下它对应的a为正的概率高还是a为反的概率高,如果a为正的概率高我们就假设本次a抛的结果为正,否则就假设其为反。然后分别使用统计学习方法156页的9.6~9.8三个公式就能计算出新一轮的pai,p,q的值。就可以进行新一轮的迭代。

第三种方法(EM):

先列出整个样本集合的观测值共同出现的概率的计算公式,然后把这个计算公式前面加上log,转化为对数最大似然估计估计函数。

(以上是e步)

然后:

(1)固定p、q,把pai作为未知数对最大似然函数求极值,该极值对应的pai即为新一轮的pai(在第一轮刚好知道知道p,q,不知道pai)。

(2)固定pai,q,以p作为最大似然函数的未知数求极值,得到新一轮的p。

(3)固定pai,p,以q作为最大似然函数的未知数求极值,得到新一轮的q。

(以上是m步)

之后不断重复上面的(1),(2),(3)(m步),直到收敛为止。

注:在我看来,所谓的e步只有第一轮迭代的时候需要列出对数最大似然函数并将p,q的值带入。后面就不需要e步了,如果非要保留e步这个环节,也只能把将新的q带入最大似然函数算作是e步的环节。

附:对数似然函数的推导(见下图)

EM算法的直观描述的更多相关文章

  1. EM算法直观认识

    Expectation Maximization, 字面翻译为, "最大期望". 我个人其实一直都不太理解EM算法, 从我个人的渊源来看, 之前数理统计里面的参数估计, 也是没有太 ...

  2. EM 算法(一)-原理

    讲到 EM 算法就不得不提极大似然估计,我之前讲过,请参考我的博客 下面我用一张图解释极大似然估计和 EM 算法的区别 EM 算法引例1-抛3枚硬币 还是上图中抛硬币的例子,假设最后结果正面记为1,反 ...

  3. 机器学习——EM算法

    1 数学基础 在实际中,最小化的函数有几个极值,所以最优化算法得出的极值不确实是否为全局的极值,对于一些特殊的函数,凸函数与凹函数,任何局部极值也是全局极致,因此如果目标函数是凸的或凹的,那么优化算法 ...

  4. EM算法原理总结

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

  5. 从极大似然函数到EM算法

    最近看斯坦福大学的机器学习课程,空下来总结一下参数估计相关的算法知识. 一.极大似然估计: 大学概率论课程都有讲到参数估计的两种基本方法:极大似然估计.矩估计.两种方法都是利用样本信息尽量准确的去描述 ...

  6. EM算法(Expectation Maximization Algorithm)

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

  7. EM算法[转]

    最大期望算法:EM算法. 在统计计算中,最大期望算法(EM)是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量. 最大期望算法经过两个步骤交替进行计算: 第 ...

  8. EM算法(expectation maximization)

    EM算法简述 EM算法是一种迭代算法,主要用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步完成: E步,求期望 M步,求极大. EM算法的引入 如果概率模型的变 ...

  9. 机器学习(二十七)— EM算法

    1.EM算法要解决的问题 如果使用基于最大似然估计的模型,模型中存在隐变量,就要用EM算法做参数估计. EM算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜 ...

随机推荐

  1. Flex中对表格中某列的值进行数字格式化

    1.问题背景 一般的,表格中展示的比率,对比率的处理是:保留两位小数,并向上保留 2.实现实例 <?xml version="1.0" encoding="utf- ...

  2. C#方法有关内容的总结--C#基础

    1.静态方法与实例方法 using System;using System.Collections.Generic;using System.Linq;using System.Text;using ...

  3. Python基础_函数2

    在介绍完函数的大体概念如定义.传参.作用域之后,本节主要介绍函数的几个细节部分. 一. print()函数与return的区别. 相同点:print与return都是向用户在输出界面上展示结果 不同点 ...

  4. iOS开发——下载器的功能基本实现

    今天,做了一个下载器的Demo,即从本地配置的Apache服务器上,下载指定的文件.这次,我们下载服务器根目录下的html.mp4文件. 按照惯例,我们先创建一个URL对象和请求. NSURL *ur ...

  5. mysql的conv的用法

    这次的ctf比赛用到这个函数,这里记录一下 题目禁了ascii , ord 那就使用conv 这个函数是用来将字符转换进制的,例如将a转成ASCII码(换个说法就是将16进制的a换成10进制) 那就直 ...

  6. html5判断浏览器来源并跳转

    <script type="text/javascript"> var system ={}; var p = navigator.platform; system.w ...

  7. python web开发-flask访问请求数据request

    Request对象在web应用的开发中是一个非常重要的对象,主要用来获取用户发来的请求数据. 常用属性参考:http://docs.jinkan.org/docs/flask/api.html#fla ...

  8. 深度揭秘腾讯云TSF日调用量超万亿次背后技术架构

    腾讯云TSF是整合外部开源框架和腾讯内部历经多年锤炼的PaaS平台打造而成的企业级分布式应用服务开发与托管平台,本文重点对TSF中负责服务托管的PaaS平台进行揭秘,从技术角度解析TSF 平台是如何每 ...

  9. node.js 模块化

    模块是编写稍大一点点的程序 一般就会将代码模块化 在node.js中每一个文件就是一个模块,而文件路径就是模块名 怎么使用模块? 在编写某个模块是都有三个预先定义(require,exports,mo ...

  10. python解决图的最短路径问题

    在hihoCoder上遇到一个算法题目,描述如下: 对图结构有了解的不难发现,这是经典的求图的最短路径问题.以下是python代码: def findMin(row): minL = max(row) ...