机器学习笔记(十七)——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,一经查实,立即删除!

相关文章

基本查询(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…

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

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

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

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

ElasticSearch filter查询

学习查询之前,我还是老规矩,先准备数据 #Filter查询 #filter是不计算相关性的,同时可以cache.因此,filter速度要快于query. POST /lib5/items/_bulk {"index":{"_id": 1}} {"price": 40,"ite…

SQL Server 2005中的分区表(四):删除(合并)一个分区

在前面我们介绍过如何创建和使用一个分区表,并举了一个例子,将不 同年份的数据放在不同的物理分区表里。具体的分区方式为: 第1个小表:2010-1-1以前的数据(不包含2010-1-1)。 第2个小表:2010-1-…

畅通您的iOS开发之路

随着大家对苹果产品的趋之若鹜,iphone与ipad软件开发的前景也相当广阔。然而,目前精通iOS开发的专业人才却是凤毛麟角。因此,安博中 程在2012年推出重磅课程——“iPhone与iPad开发实战之路——精通iOS开发”高级培训班,为想从事i…

tool vmmap 配置符号文件 symbolic file

转载于:https://www.cnblogs.com/titer1/archive/2012/03/21/2410316.html

使用简单的5个步骤设置 Web服务器集群

通过在多个处理器之间分担工作负载并采用多种软件恢复技术,能够提供高度可用的环境并提高环境的总体 RAS(可靠性、可用性和可服务性)。可以得到的好处包括:更快地从意外中断中恢复运行,以及将意外中断对终端用户的影响…

浅谈HotSpot逃逸分析

JIT 即时编译(Just-in-time Compilation,JIT)是一种通过在运行时将字节码翻译为机器码,从而改善字节码编译语言性能的技术。在HotSpot实现中有多种选择:C1、C2和C1C2,分别对应client、server和分层编译。 …

pku 1611 The Suspects 并查集的应用

http://poj.org/problem?id1611 思路&#xff1a;统计出和0能够联系在一起的点&#xff0c;然后输出其个数 View Code #include <cstdio>#include <iostream>#define maxn 30004using namespace std;int f[maxn],num[maxn];//num记录与0有联系的个数int n,m;int …

ElasticSearch 聚合查询

价格总和&#xff1a; 1,使用aggs 2,自己起个名字price_of_sum 3,求和sum 4&#xff0c;filed要求和的字段 GET /lib5/items/_search {"aggs": {"price_of_sum": {"sum": {"field": "price"}}} }聚合查询结果&#x…

hdu Candy Sharing Game

http://acm.hdu.edu.cn/showproblem.php?pid1034 模拟题 View Code 1 #include<iostream> 2 using namespace std; 3 int a[100000]; 4 int b[100000];//a的一半 5 int n; 6 int main() 7 { 8 while(cin>>n && n) 9 {10 int i;11 …

对DataTable的一些解释

最经做导入导出Excel时&#xff0c;经常操作DataTable&#xff0c;DataSet&#xff0c;就按自己的需求对他们的一些常用的东西进行了一下总结。 一、DataTable简介 (1)构造函数 DataTable() 不带参数初始化DataTable 类的新实例。 DataTable(string …

Doc2Vec训练相似文章识别模型

一、需求描述 由于在平台上发布的文章是来源于不同渠道和作者的&#xff0c;发布的文章也存在一定程度上的抄袭或者太相似。为了避免对用户体验造成影响&#xff0c;避免不必要的文章费用支出&#xff0c;需要识别出哪些文章是相似的。数据源是若干文章&#xff08;中文&#x…

实时重复文章识别——SimHash

一、背景介绍 在前边的文章中&#xff0c;我们采用的是用google的Doc2Vec模型来识别重复文章的&#xff0c;从线上运行的效果来看&#xff0c;它的准确率是比较高的。当然&#xff0c;这是建立在把所有的文章都当做训练数据来训练Doc2Vec模型的基础上的&#xff0c;它推断出一篇…

深入理解simhash原理

一、LSH 介绍 LSH(Locality sensitive hashing)是局部敏感性hashing&#xff0c;它与传统的hash是不同的。传统hash的目的是希望得到O&#xff08;1&#xff09;的查找性能&#xff0c;将原始数据映射到相应的桶内。 LSH的基本思想是将空间中原始数据相邻的2个数据点通过映…

IntelliJ IDEA tomcat配置

1&#xff0c;首先安装好 IntelliJ IDEA 开发工具 2&#xff0c;右上角这里有个 Edit Configurations 3,添加模板 选择本地安装的tomcat 和 选择jdk 4&#xff0c;添加tomcat 这里tomcat就安装好了

Think in Java之斐波那契数列

斐波纳契数列&#xff08;Fibonacci Sequence&#xff09;&#xff0c;又称黄金分割数列。 指的是这样一个数列&#xff1a;1、1、2、3、5、8、13、21、……这个数列从第三项开始&#xff0c;每一项都等于前两项之和。 在数学上&#xff0c;斐波纳契数列以如下被以递归的方法定…