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

一、Jensen 不等式

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

φ(i=1ng(xi)λi)i=1nφ(g(xi))λi171(1)(1)φ(∑i=1ng(xi)λi)≤∑i=1nφ(g(xi))λi,(17−1)

  其中 λ1+λ2++λn=1,λi0λ1+λ2+⋯+λn=1,λi≥0

  若φ是凹函数,只需把不等式符号调转。主要参考文献【1】
  

二、EM算法推导

    面对一个含有隐含变量的概率模型,目标是极大化观测数据YY关于参数θ的对数似然函数,即极大化:

L(θ)=logP(Y;θ)=logzP(Y,Z;θ)=logzP(Y|Z;θ)P(Z;θ)(184)(184)L(θ)=logP(Y;θ)=log∑zP(Y,Z;θ)=log∑zP(Y|Z;θ)P(Z;θ)

    事实上,EM算法是通过迭代逐步极大化 L(θ)L(θ)的。假设在第 ii次迭代后 θθ的估计值是 θ(i)θ(i)。我们希望新的估计值 θθ能使 L(θ)L(θ)增加,即 L(θ)>L(θ(i))L(θ)>L(θ(i)),并逐步达到极大值。为此考虑两者的差:
L(θ)L(θ(i))=log(zP(Y|Z;θ)P(Z;θ))logP(Y;θ(i))=log(zP(Z|Y;θ(i))P(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i)))logP(Y;θ(i))zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))logP(Y;θ(i))=zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))P(Y;θ(i))(185)(185)L(θ)−L(θ(i))=log(∑zP(Y|Z;θ)P(Z;θ))−logP(Y;θ(i))=log(∑zP(Z|Y;θ(i))P(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i)))−logP(Y;θ(i))≥∑zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))−logP(Y;θ(i))=∑zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))P(Y;θ(i))

上式利用了Jensen不等式,在17-1式中, 令 φφloglog, 且zP(Z|Y;θ(i))=1∑zP(Z|Y;θ(i))=1,则可得上述推导。注意loglog为凹函数,不等号要改变方向


B(θ,θ(i))=L(θ(i))+zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i))172(186)(186)B(θ,θ(i))=L(θ(i))+∑zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i)),(17−2)

则:
L(θ)B(θ,θ(i))(187)(187)L(θ)≥B(θ,θ(i))

那么, B(θ,θ(i))B(θ,θ(i)) L(θ)L(θ)的一个下界,由17-2知道:
L(θ(i))=B(θ(i),θ(i))(188)(188)L(θ(i))=B(θ(i),θ(i))

因此,任何可以使 B(θ,θ(i))B(θ,θ(i))增大的 θθ,都可使 L(θ)L(θ)增大,选择 θ(i+1)θ(i+1)使 B(θ,θ(i))B(θ,θ(i))达到极大,即:
θ(i+1)=argmaxθB(θ,θ(i))(189)(189)θ(i+1)=argmaxθB(θ,θ(i))

现在求 θ(i+1)θ(i+1) 的表达式,省去对于 θθ而言都是常数的项:
θ(i+1)=argmaxθ(L(θ(i))+zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i)))=argmaxθ(zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ))=argmaxθ(zP(Y|Z;θ(i))logP(Y,Z;θ))=argmaxθQ(θ,θ(i))(190)(190)θ(i+1)=argmaxθ(L(θ(i))+∑zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i)))=argmaxθ(∑zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ))=argmaxθ(∑zP(Y|Z;θ(i))logP(Y,Z;θ))=argmaxθQ(θ,θ(i))

EM算法并不能保证全局最优值,直观解释如图所示。
这里写图片描述

参考文献

http://wiki.mbalib.com/wiki/%E8%A9%B9%E6%A3%AE%E4%B8%8D%E7%AD%89%E5%BC%8F

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

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

相关文章

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

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

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

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

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

一、HMM中的第三个基本问题 参数估计问题:给定一个观察序列OO1O2…OT,如何调节模型μ(A,B,π)的参数,使得P(O|μ)最大化: 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搜索结果高亮显示(英文检索)

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

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

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

C++ 入门笔记1

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

基本查询(Query查询中文)

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

C#实现POST提交方式

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

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

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

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

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

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

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

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

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

ElasticSearch(中文检索)source总结

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

2012 依赖注入框架

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

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

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

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

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

系统管理员必须知道的PHP安全实践

系统管理员必须知道的PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供了这种便利:通过HTTP或HTTPS协议, 访问文件和内容。配置不当的服务器端脚本语言会带来各种各样的问题。所以,使用PHP时要小心。…

ElasticSearch模糊查询(中文检索)

# "*" 表示匹配任意字符 GET /lib4/user/_search {"query": {"wildcard": {"name": "赵*"}} }# "?" 表示匹配任意一个字符 GET /lib4/user/_search {"query": {"wildcard": {"name&quo…

最优化学习笔记(十四)——共轭梯度法

共轭梯度法不需要预先给定Q共轭方向,而是随着迭代的进行不断产生Q共轭方向。在每次的迭代中,利用上一个搜索方向和目标函数在当前迭代点的梯度向量 之间的线性组合构造一个新的方向,使其与前边已经产生的搜索方向组成Q共轭方向。对于一个n维二…