https://applenob.github.io/em.html

EM算法总结

在概率模型中,最常用的模型参数估计方法应该就是最大似然法

EM算法本质上也是最大似然,它是针对模型中存在隐变量的情况的最大似然

下面通过两个例子引入。

没有隐变量的硬币模型

假设有两个硬币,AA和BB,这两个硬币具体材质未知,即抛硬币的结果是head的概率不一定是50%。

在这个实验中,我们每次拿其中一个硬币,抛10次,统计结果。

实验的目标是统计AA和BB的head朝上的概率,即估计θ̂ Aθ^A和θ̂ Bθ^B。

对每一枚硬币来说,使用极大似然法来估计它的参数:

假设硬币AA正面朝上的次数是nAhnhA,反面朝上的次数是:nAtntA。

似然函数:L(θA)=(θA)nAh(1−θA)nAtL(θA)=(θA)nhA(1−θA)ntA。

对数似然函数:logL(θA)=nAh⋅log(θA)+nAt⋅log(1−θA)logL(θA)=nhA⋅log(θA)+ntA⋅log(1−θA)。

θ̂ A=argmaxθAlogL(θA)θ^A=argmaxθAlogL(θA) 。

对参数求偏导:∂logL(θA)∂θA=nAhθA−nAt1−θA∂logL(θA)∂θA=nhAθA−ntA1−θA。

令上式为00,解得:θ̂ A=nAhnAh+nAtθ^A=nhAnhA+ntA。

即θ̂ A=numberofheadsusingcoinAtotalnumberofflipsusingcoinAθ^A=numberofheadsusingcoinAtotalnumberofflipsusingcoinA。

 

有隐变量的硬币模型

这个问题是上一个问题的困难版,即给出一系列统计的实验,但不告诉你某组实验采用的是哪枚硬币,即某组实验采用哪枚硬币成了一个隐变量

这里引入EM算法的思路

  • 1.先随机给出模型参数的估计,以初始化模型参数。
  • 2.根据之前模型参数的估计,和观测数据,计算隐变量的分布
  • 3.根据隐变量的分布,求联合分布的对数关于隐变量分布的期望
  • 4.重新估计模型参数,这次最大化的不是似然函数,而是第3步求的期望

一般教科书会把EM算法分成两步:E步和M步,即求期望和最大化期望。

E步对应上面2,3;M对应4。

 

EM算法

输入:观测变量数据YY,隐变量数据ZZ,联合分布P(Y,Z|θ)P(Y,Z|θ),条件分布P(Z|Y,θ)P(Z|Y,θ);

输出:模型参数θθ。

  • 1.选择参数的初始值θ(0)θ(0),开始迭代;
  • 在第i+1i+1次迭代:
    • 2.E步:Q(θ,θ(i))=∑zlogP(Y,Z|θ)P(Z|Y,θ(i))Q(θ,θ(i))=∑zlogP(Y,Z|θ)P(Z|Y,θ(i))
    • 3.M步:Q(i+1)=argmaxθQ(θ,θ(i))Q(i+1)=argmaxθQ(θ,θ(i))
  • 4.重复2,3直至收敛。

转:EM算法总结的更多相关文章

  1. 学习笔记——EM算法

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

  2. K-Means聚类和EM算法复习总结

    摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 内容: 1.算法概述 k-means算法是一种得到最广泛使用的聚类算法. 它是将各个聚类子集内 ...

  3. EM算法总结

    EM算法总结 - The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用 ...

  4. GMM的EM算法实现

    转自:http://blog.csdn.net/abcjennifer/article/details/8198352 在聚类算法K-Means, K-Medoids, GMM, Spectral c ...

  5. EM算法(4):EM算法证明

    目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(4):EM算法证明 1. 概述 上一篇博客我们已经讲过 ...

  6. EM算法(3):EM算法运用

    目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(3):EM算法运用 1. 内容 EM算法全称为 Exp ...

  7. EM算法(2):GMM训练算法

    目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(2):GMM训练算法 1. 简介 GMM模型全称为Ga ...

  8. EM算法(1):K-means 算法

    目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(1) : K-means算法 1. 简介 K-mean ...

  9. [MCSM]随机搜索和EM算法

    1. 概述 本节将介绍两类问题的不同解决方案.其一是通过随机的搜索算法对某一函数的取值进行比较,求取最大/最小值的过程:其二则和积分类似,是使得某一函数被最优化,这一部分内容的代表算法是EM算法.(书 ...

  10. EM算法

    EM算法的推导

随机推荐

  1. STL中map的遍历

    map作为STL中的映射容器非常好用,我们来说一下map的遍历. map.first为key值,map.second为value值,key不可修改,value可修改. 定义一个迭代指针iter,使其指 ...

  2. SlickOne 敏捷开发框架介绍(二) -- 多用户/多租户/SAAS软件基础框架实现

    前言:在应用于集团版客户或SAAS平台服务的业务系统中,流程管理系统需要支持多用户组织模型.其中包括角色数据.流程定义数据和流程实例数据的多用户标识绑定.本文旨在全面描述如何基于SlickOne敏捷开 ...

  3. 阿里云VPC默认网关问题

    在使用VPC专用网络时,阿里云上面不用设置网关都可以工作,其实不是的,狗日的阿里云居然把默认网关设置成了253,比如设置了172.18.0.0/24时,那么它的默认网关就是172.18.0.253.

  4. 0xWS2812 STM32 driver for WS2812(B) RGB LEDs

    0xWS2812 STM32 driver for WS2812(B) RGB LEDs 0xWS2812 pronounced "hex-WS2812" This code ai ...

  5. setInterval设置停止和循环

    原文链接:http://caibaojian.com/setinterval-times.html 需要知道已经经过了多少次或者说过多久就会停止 var timesRun = 0; var inter ...

  6. OAuth2.0网页授权 提示未关注该测试号

    用无高级接口权限的公众号使用别人的appid和appsecret在网页中获取用户信息时,提示未关注该测试号. 搜集各种资料才发现是因为 测试帐号只能对关注者网页授权,正式帐号可以对未关注者授权

  7. MTK65XX平台充电调试总结

    MTK平台充电调试总结 摘要:调试电池的充放电管理,首先须要深入了解锂电池的电池原理和特点.充放电特性以及主要的电池安全问题.然后须要对MTK的电池管理驱动程序有深入的了解.理解电池充放电算法的基本原 ...

  8. bind,apply,call的区别

    在Javascript中,bind, apply, call方法都可以显式绑定上下文this,这三者有何不同呢? bind只绑定this不马上执行 var person = { firstname: ...

  9. AIDL interface XXX should be declared in a file

    在写AIDL的时候出现了interface XXX should be declared in a file, 错误...经过反复查看,发现AIDL规定,文件名必须和interface XXX名字相同 ...

  10. 找不到"javax.servlet.annotation.WebServlet"解决方法

    以前创建的一个项目,打开的时候总是报错. import javax.servlet.annotation.WebServlet; 后来想起当时这个项目是发布在tomcat7.0下面的, 也就是说当时这 ...