机器学习笔记(十六)——EM算法概述

一、引言

    按照计划,这周应该学习HMM中的第三个基本问题:参数估计问题,但是其中的内容涉及到了EM算法,所以打算先把EM算法搞定之后再去继续HMM的问题。EM算法的推导过程比较复杂,这节我只给出简述和计算公式,待推导完成后再贴上推导过程。

二、一个实例

例1 (三硬币模型) 假设有3枚硬币,分别记为A,B,C。这些硬币正面出现的概率分别是π,p,q。进行如下掷硬币试验:先掷硬币A,根据其结果选出B或者C,正面选B,反面选C;然后掷选出的硬币,掷硬币的结果,正面记为1,反面记为0;独立重复n次试验(这里,n=10),观测结果如下:1,1,0,1,0,0,1,0,1,1.假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率,即求三硬币模型的参数。

    三硬币模型可以写作:

P(y;θ)=zP(y,z;θ)=zP(z;θ)P(y|z;θ)=πpy(1p)1y+(1π)qy(1q)1y

上式中,随机变量 y是观测变量,z是隐变量且不可观测, θ=(π,p,q)是模型参数。这一模型是以上数据的生成模型。将观测数据表示为 Y=(Y1,Y2,,Yn)T, 未观测数据表示为 Z=(Z1,Z2,,Zn)T,则观测数据的似然函数为:
P(Y;θ)=zP(Z;θ)P(Y|Z;θ)=j=1n[πpyj(1p)1yj+(1π)qyj(1q)1yj]

三、EM算法的迭代公式

    考虑求模型参数θ=(π,p,q)的极大似然估计,即:

θ^=argmaxθlogP(Y;θ)

这个问题没有解析解,只有通过迭代方法求解,EM算法就是求解这个问题的一种算法。下面先给出去针对上述问题的EM算法,推导过程下节给出。
1. 选取初始参数 θ(0)=(π(0),p(0),q(0))
2. E步:计算模型参数 π(i),p(i),q(i)下观测数据 yj来自掷硬币B的概率:
μ(i+1)=π(i)(p(i))yj(1p(i))1yjπ(i)(p(i))yj(1p(i))1yj+(1π(i))(q(i))yj(1q(i))1yj

3. M步:计算模型参数的新估计值:
π(i+1)=1nj=1nμ(i+1)jp(i+1)=nj=1μ(i+1)jyjnj=1μ(i+1)jq(i+1)=nj=1(1μ(i+1)j)yjnj=1(1μ(i+1)j)

4. 给出停止迭代的条件, 一般是较小的正数 ε, 满足:
||θ(i+1)θ(i)||<ε

重复上式2-4步,完成求解,需要注意的是EM算法对初始值的选取是相当敏感的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c# 日期函数[string.Format----GetDateTimeFormats] --转载

c# 日期函数[string.Format----GetDateTimeFormats] c# 日期函数 DateTime dt DateTime.Now;Label1.Text dt.ToString();//2005-11-5 13:21:25Label2.Text dt.ToFileTime().ToString();//127756416859912816Label3.Text dt.ToFileTimeUtc().ToString();//12775670485991281…

ElasticSearch wildcard查询(英文检索)

wildcard查询 允许使用通配符*和?来进行查询 *代表0个或多个字符 工代表任意1个字符 GET /ib3/user/ search { "query": { "wildcard":{ "name": *zhao* }}} GET /ib3/user/ search { "query": { "wildcard":{ *name"…

机器学习笔记(十七)——EM算法的推导

一、Jensen 不等式 在EM算法的推导过程中&#xff0c;用到了数学上的Jensen不等式&#xff0c;这里先来介绍一下。 若Ω是有限集合{x1,x2,…,xn}{x1,x2,…,xn}&#xff0c;而μ是Ω上的正规计数测度&#xff0c;则不等式的一般形式可以简单地用和式表示: φ(∑i1ng(xi)λi)≤…

CCTextureCache的多线程加载原理和使用

做引擎的时候&#xff0c;遇到一个texture的异步加载&#xff0c;这里将具体的原理和使用方法贴出来&#xff0c;后面根据浏览器的特性做修改移植。 voidCCTextureCache::addImageAsync(constchar *path, CCObject *target, SEL_CallFuncO selector) { CCAssert(path ! NULL, …

ElasticSearch fuzzy模糊查询(英文检索)

fuzzy实现模糊查询 value:查询的关键字 boost:查询的权值&#xff0c;默认值是1.0 min_similarity:设置匹配的最小相似度&#xff0c;默认值为0.5, 对于字符串,取值为0-1(包括0和1);对于数值&#xff0c;取值可能大于1;对于日期型取值为1d,1m等&#xff0c;1d就代表1天 prefix…

机器学习笔记(十八)——HMM的参数估计

一、HMM中的第三个基本问题 参数估计问题&#xff1a;给定一个观察序列OO1O2…OT&#xff0c;如何调节模型μ(A,B,π)的参数&#xff0c;使得P(O|μ)最大化&#xff1a; argmaxμP(Otraining|μ)arg \max_{\mu} P(O_{training}|\mu)模型的参数是指构成μ的πi,aij,bj(k)。本文…

[Pyramid 杂记]Static Routes,静态路由是用来干什么的?

官方文档上介绍说Static Routes(即添加路由时指定static参数为True,config.add_route(page, /page/{action}, staticTrue)),在匹配Request Url时不会被用来匹配,它只用于生成URL. 这哥就很奇怪,只用于生成URL,而不会被匹配,就是说生成的URL不会被匹配到了嘛(有点拗口 …),那要这…

ElasticSearch highlight搜索结果高亮显示(英文检索)

高亮显示搜索结果&#xff08;使用highlight&#xff09; #高亮搜索结果 GET /lib3/user/_search {"query":{"match":{"interests": "changge" } }, "highlight": { "fields": {"interests":{}}}}{&qu…

最优化学习笔记(十二)——基本共轭方向算法(续)

目标函数为n维二次型函数时,共轭方向法能够在n步迭代之后得到极小点。接下来会发现&#xff0c;共轭方向法的中间迭代步骤具有一种很有意义的性质。选定x(0)作为迭代初始点&#xff0c; d(0)为初始搜索方向&#xff0c; 有&#xff1a; x(1)x(0)−(g(0)Td(0)d(0)TQd(0))d(0)\…

C++ 入门笔记1

一.关于注释 注释总是以 /* 开始并以 */ 结束。这意味着&#xff0c;一个注释对不能出现在另一个注释对中。由注释对嵌套导致的编译器错误信息容易使人迷惑。 当注释掉程序的一大部分时&#xff0c;似乎最简单的办法就是在要临时忽略的区域前后放一个注释对。问题是如果那段代码…

基本查询(Query查询中文)

查询语句&#xff1a; GET /lib4/user/_search {"query": {"term": {"interests":"唱歌"}} }#terms:查询某个字段里含有多个关键词的文档 GET /lib4/user/_search {"query":{"terms":{"interests": …

C#实现POST提交方式

网页自动登录和提交POST信息的核心就是分析网页的源代码&#xff08;HTML&#xff09;&#xff0c;在C#中&#xff0c;可以用来提取网页HTML的组件比较多&#xff0c;常用的用WebBrowser、WebClient、HttpWebRequest这三个。 以下就分别用这三种方法来实现&#xff1a; 1、WebB…

最优化学习笔记(十三)——基本共轭方向算法(扩张子空间定理)

由上节我们得出的一个引理&#xff1a; 引理 在共轭方向算法中&#xff0c; 对于所有的k,0≤k≤n−1,0≤i≤k都有 : g(k1)Td(i)0\boldsymbol{g}^{(k+1)T}\boldsymbol{d}^{(i)}=0由上可知&#xff1a;g(k1)正交于由向量d(0),d(1),…,d(k)张成的子空间中的任意向量。该引理可用…

term和match查询总结(中文检索)

es中的查询请求有两种方式&#xff0c;一种是简易版的查询&#xff0c;另外一种是使用JSON完整的请求体&#xff0c;叫做结构化查询&#xff08;DSL&#xff09;。 由于DSL查询更为直观也更为简易&#xff0c;所以大都使用这种方式。 DSL查询是POST过去一个json&#xff0c;由于…

机器学习笔记(十九)——最大熵原理和模型定义

一、最大熵原理 最大熵原理是概率模型学习的一个准则。最大熵原理认为&#xff0c;在学习概率模型时&#xff0c;在所有可能的概率分布中&#xff0c;熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合&#xff0c;所以&#xff0c;最大熵模型也可以表述为在满足约…

EasyCode.Net代码生成器使用心得

前段时间购买了一个EasyCode的正式使用许可 看他的界面设计的不错 就用他生成了一个项目(目地是想把以前我自己的一个程序的界面给更换下 人家有专业的UI设计我自己设计出来的肯定没有人家专业UI设计师弄出来的好看) &#xff0c;项目生成完了 发现还不能直接更换界面他的是sq…

ElasticSearch(中文检索)source总结

包含不包含这里不多讲了。 GET /lib4/user/_search {"query": {"match_all": {}},"_source": {"includes": ["name" ,"address"],"excludes": ["age" , "birthday" ]} }直接看看…

2012 依赖注入框架

以下内容来自维基百科的控制反转词条 控制反转&#xff08;英语&#xff1a;Inversion of control&#xff0c;缩写为IoC&#xff09;&#xff0c;也叫做依赖注入&#xff08;Dependency Injection&#xff0c;简称DI&#xff09;&#xff0c;是面向对象编程中的一种设计原则&a…

机器学习笔记(二十)——求解最大熵模型

一、问题的引出 最大熵模型的学习过程就是求解最大熵模型的过程。最大熵模型的学习可以形式化为约束最优化问题。 对于给定的训练数据集T{(x1,y1),(x2,y2),…,(xn,yn)}及特征函数fi(x,y)&#xff0c;i1,2,…,n,最大熵模型的学习等价于约束最优化问题&#xff1a; maxP∈C…

ElasticSearch前缀匹配查询和范围查询(中文检索)

GET /lib4/user/_search {"query": {"match_phrase_prefix": {"name": {"query": "赵"}}} } GET /lib4/user/_search {"query": {"prefix": {"name": "赵"}} }范围查询 GET /lib4…