EM算法(4):EM算法证明
目录
EM算法(4):EM算法证明
1. 概述
上一篇博客我们已经讲过了EM算法,EM算法由于其普适性收到广泛关注,高频率地被运用在各种优化问题中。但是EM算法为什么用简单两步就能保证使得问题最优化呢?下面我们就给出证明。
2. 证明
现在我们已经对EM算法有所了解,知道其以两步(E-step和M-step)为周期,迭代进行,直到收敛为止。那问题就是,在一个周期内,目标函数的值是否增加了?如果能保证其每个周期都在增加的话,那么其必然收敛到一个局部最大值处。这就是我们EM算法所需要证明的,即:
$p(\mathbf{X};\theta^{(i+1)}) \geqslant p(\mathbf{X};\theta^{(i)})$
首先假设Y的分布为$q(\mathbf{Y})$,则有$\sum_Yq(\mathbf{Y}) = 1$,则:

现在假设在EM算法第i个周期结束,因为KL(q||p)不小于零,那么其最小时就为0,即$q(\mathbf{Y})=p(\mathbf{Y}|\mathbf{X},\theta^{(i)})$时。
在E-step时,我们计算$Q(\theta^{(i+1)}|\theta^{(i)})$,我们发现:

在M-step时,我们找到一个$\theta^{(i+1)}$,使得$Q(\theta|\theta^{(i)})$最大,即也是使得$\mathcal{L}(q|\theta)$最大。同时,因为此时$p(\mathbf{X,Y}|\theta^{(i+1)}) \neq p(\mathbf{X,Y}|\theta^{(i)}) = q(\mathbf{Y})$,那么KL(q||p)也会大于零。那么相对于第i个EM周期结束时的目标函数的值,现在其两个和项的值都是非减的,那么很容易得到:
$p(\mathbf(X)|\theta^{(i+1)}) \geqslant p(\mathbf{X}|\theta^{(i)})$
EM算法(4):EM算法证明的更多相关文章
- 【EM算法】EM(转)
Jensen不等式 http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html 回顾优化理论中的一些概念.设f是定义域为实数的函数 ...
- K-means聚类算法与EM算法
K-means聚类算法 K-means聚类算法也是聚类算法中最简单的一种了,但是里面包含的思想却不一般. 聚类属于无监督学习.在聚类问题中,给我们的训练样本是,每个,没有了y. K-means算法是将 ...
- EM算法浅析(二)-算法初探
EM算法浅析,我准备写一个系列的文章: EM算法浅析(一)-问题引出 EM算法浅析(二)-算法初探 一.EM算法简介 在EM算法之一--问题引出中我们介绍了硬币的问题,给出了模型的目标函数,提到了这种 ...
- EM相关两个算法 k-mean算法和混合高斯模型
转自http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html http://www.cnblogs.com/jerrylead/ ...
- 从决策树学习谈到贝叶斯分类算法、EM、HMM --别人的,拷来看看
从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 最近在面试中,除了基础 & 算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全 ...
- 从决策树学习谈到贝叶斯分类算法、EM、HMM
从决策树学习谈到贝叶斯分类算法.EM.HMM (Machine Learning & Recommend Search交流新群:172114338) 引言 log ...
- Python实现机器学习算法:EM算法
''' 数据集:伪造数据集(两个高斯分布混合) 数据集长度:1000 ------------------------------ 运行结果: ---------------------------- ...
- MM 算法与 EM算法概述
1.MM 算法: MM算法是一种迭代优化方法,利用函数的凸性来寻找它们的最大值或最小值. MM表示 “majorize-minimize MM 算法” 或“minorize maximize MM 算 ...
- 机器学习经典算法之EM
一.简介 EM 的英文是 Expectation Maximization,所以 EM 算法也叫最大期望算法. 我们先看一个简单的场景:假设你炒了一份菜,想要把它平均分到两个碟子里,该怎么分? 很少有 ...
- 机器学习优化算法之EM算法
EM算法简介 EM算法其实是一类算法的总称.EM算法分为E-Step和M-Step两步.EM算法的应用范围很广,基本机器学习需要迭代优化参数的模型在优化时都可以使用EM算法. EM算法的思想和过程 E ...
随机推荐
- CentOS中的常用命令
1. 网络 1.1 查看所有端口 netstat -ntlp 1.2 查看被打开的端口 netstat -anp 1.3 查看端口占用情况 lsof -i: 或 lsof -i tcp: 2. 硬盘 ...
- [转]C#程序无法在64位系统上运行之.NET编译的目标平台
今天将编译的C#的exe拷贝到测试机上(Win7_64bit),一运行就挂了,提示“stop working”,一开始怀疑测试机上没有安装.net framework框架,追究半天原来是编译的目标平台 ...
- spring事务传播机制与隔离级别、通知类别
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为, 它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播: 事务传播行为类型 说明 PROPAGATIO ...
- Python多线程、进程入门1
进程是资源的一个集合, 1.一个应用程序,可以有多进程和多线程 2.默认一个程序是单进程单线程 IO操作使用多线程提高并发 计算操作使用多进程提高并发 进程与线程区别 1.线程共享内存空间,进程的内存 ...
- GPU硬件加速相关
从android3.0开始,2D渲染开始支持硬件加速,即在view的Canvas上的绘图操作可以用GPU来加速. 硬件加速会使app消耗更多的内存. 如果配置文件中,Target API level ...
- 通过宏判断VS编译版本以及系统平台
MSC_VER 定义编译器的版本.下面是一些编译器版本的_MSC_VER值(参见扩展阅读中的参考文献2的链接) MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio ...
- CORBA IOR学习
Interoperable Object References: IOR IOR用于表示一个对象引用,我们知道,当我们在客户端一个CORBA对象的时候,接触的并不是真正的对象,而是这个对象的代理(Pr ...
- oracle and 和 or
源地址:https://zhidao.baidu.com/question/350891282.html (FirstName='Thomas' OR FirstName='William') AND ...
- python中的thread
转载自: http://blog.sina.com.cn/s/blog_9f488855010198vn.html 正确与否未验证 python中得thread的一些机制和C/C++不同:在C/C++ ...
- Swift版的SQLiteHelper
SQLiteHelper 创建SQLiteHelper类 /// SQLite数据库处理帮助类 /// /// 此类中封装了关于SQLite数据库处理的业务函数 class SQLiteHelper ...