解决含有隐变量的问题有三种方法,其中第三种方法就是通常所说的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. Vue项目搭建及原理三

    我每次写博客都要先在本地写一遍草稿,所以之前有些发布顺序可能会有一丢丢凌乱 哈哈哈,以后绝对改正,那下面我们就说一下创建及项目目录结构吧 三.创建项目 1.初始化Webpack p.p1 { marg ...

  2. ontimer 与多线程

    一般来说,在MFC中开启一个UI线程可以用以下代码: m_pCameraThread = AfxBeginThread(RUNTIME_CLASS(CCameraThread)); if (!m_pC ...

  3. 用Java实现栈结构

    栈是一种先进后出的数据结构,出栈入栈都是操作的栈顶元素,下面是利用Java语言实现的一个简单的栈结构 class MyStack{ private int size;//栈大小 private Obj ...

  4. [ZOJ3435]Ideal Puzzle Bobble

    题面戳我 题意:你现在处于\((1,1,1)\),问可以看见多少个第一卦限的整点. 第一卦限:就是\((x,y,z)\)中\(x,y,z\)均为正 sol 首先L--,W--,H--,然后答案就变成了 ...

  5. [Luogu3377]【模板】左偏树(可并堆)

    题面戳我 题目描述 如题,一开始有N个小根堆,每个堆包含且仅包含一个数.接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数 ...

  6. 小结:c++中的new、operator new和placement new

    小结:c++中的new.operator new和placement new new(也称作new operator),是new 操作符,不可重载 class T{...}; T *t = new T ...

  7. javascript ES5、ES6的一些知识

    ES6 标签(空格分隔): ES6 严格模式 "use strict" 注意:严格模式也有作用域,如果在某个函数内部声明的话,只在该函数内部有作用 1) 严格模式下全局变量声明必须 ...

  8. 利用EF Core的Join进行多表查询

    背景 话说有这么一家子,老公养了一条狗,老婆养了一只猫. 数据库的设计 人表 宠物表 通过表可以知道,宠物通过Owner指向主人的Id. 问题来了,我要和故事开头一样,老公-狗,老婆-猫,对应起来,怎 ...

  9. Redis持久化方案

    Redis可以实现数据的持久化存储,即将数据保存到磁盘上. Redis的持久化存储提供两种方式:RDB与AOF.RDB是默认配置.AOF需要手动开启. 默认redis是会以快照的形式将数据持久化到磁盘 ...

  10. JDK1.8源码(二)——java.lang.Integer 类

    上一篇博客我们介绍了 java.lang 包下的 Object 类,那么本篇博客接着介绍该包下的另一个类 Integer.在前面 浅谈 Integer 类 博客中我们主要介绍了 Integer 类 和 ...