EM算法总结
发布日期:2022-03-31 07:53:32 浏览次数:5 分类:博客文章

本文共 1225 字,大约阅读时间需要 4 分钟。

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)=nAhlog(θA)+nAtlog(1θA)logL(θA)=nhA⋅log(θA)+ntA⋅log(1−θA)。

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

对参数求偏导:logL(θA)θA=nAhθAnAt1θ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直至收敛。
 

参考资料

转载地址:https://www.cnblogs.com/DjangoBlog/p/10402692.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:如何感性地理解EM算法?
下一篇:转:EM算法总结

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2023年05月22日 06时11分08秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

qt 调用createfile打开串口_在Ubuntu中的串口通信(1)-串口设备读写权限问题 2019-12-01 13:16:38
bootstrap连接mysql并修改_较简单的修改和添加功能(链接数据库) 2019-12-01 13:16:38
richedit 获取文本长度_小函数、大作用,常用文本函数和其他函数组合使用技巧解读... 2019-12-01 13:16:38
python漫画滤镜怎么实现的_python实现图片转换成素描和漫画格式 2019-12-01 13:16:35
linux uvc协议_linux 使用 uvc 摄像头 2019-12-01 13:16:35
classpath中没有加入合适的mysql_jdbc驱动_新能源汽车中预充电阻的选型及分析 2019-12-01 13:16:36
go 监听windows系统信号_gocron - 定时任务管理系统 2019-12-01 13:16:36
java8根据某个字段过滤并拼接_侠说java8--Stream流操作学习笔记,都在这里了 2019-12-01 13:16:36
js如何在当前页面加载springmvc返回的页面_Spring 和 Spring MVC经典面试题及答案 2019-12-01 13:16:36
mysql数据库5.5_MySQL数据库安装Version5.5 2019-12-01 13:16:36
++递归 字符串全排列_一组数据的全排列 2019-12-01 13:16:34
2110n操作使用说明_罗茨风机使用维护大全?故常处理?操作说明 2019-12-01 13:16:34
假设检验_科学统计做决策―浅析统计方法假设检验 2019-12-01 13:16:34
平均数和均值一样吗_你真的清晰的知道什么是投资高回报吗? 2019-12-01 13:16:35
matlab 韩明距离_使用Matlab计算各种距离Distance 2019-12-01 13:16:35
cf英文名字格式好看的_cf好看的英语名字格式,有你想要的! 2019-12-01 13:16:35
python用户输入的是q么_Python基础(一):程序输入输出、判断合法用户、编写判断成绩的程序... 2019-12-01 13:16:35
苹果7pid怎么设置_苹果手机铃声怎么设置 2019-12-01 13:16:33
职场上个人的核心技术_因个人原因向单位辞职,社保都白交了? 2019-12-01 13:16:33
印象笔记三级目录_如何将5k+条笔记,按五类归类整理? 2019-12-01 13:16:33