Expectation-Maximization(EM) 算法
Expectation-Maximization 算法是统计学中用来给带隐含变量的模型做最大似然(和最大后验概率)的一种方法。EM 的应用特别广泛,经典的比如做概率密度估计用的 Gaussian Mixture Model。这两天我或许还会写 p 的笔记放上来,也是 EM 应用的例子。
下面我会先解释 EM 算法要解决的问题,然后直接给出算法的过程,最后再说明算法的正确性。
问题
首先我们定义要解决的问题。给定一个训练集 X={x(1),…,x(m)},我们希望拟合包含隐含变量 z 的模型 P(x,z;θ) 中的参数 θ。根据模型的假设,每个我们观察到的 x(i) 还对应着一个我们观察不到的隐含变量 z(i),我们记 Z={z(1),…,z(m)}。做最大对数似然就是要求 θ 的“最优值”:
其中
想用这个 log 套 ∑ 的形式直接求解 θ 往往非常困难。而如果能观察到隐含变量 z ,求下面的似然函数的极大值会容易许多:
问题是实际上我们没法观察到 z 的值,只能在给定 θ 时求 z 的后验概率 P(z|x;θ) 。 [1] EM 算法就可以帮我们打破这样的困境。
算法
下面给出 EM 算法的过程。其中 θt 是第 t-1 次迭代时算出的 θ 值;θ0 为任意初值。
Repeat until converge {
(E-step) 计算 P(Z|X;θt) 以得到
EZ|X;θt[L(θ;X,Z)]:=EZ|X;θt[logP(X,Z;θ)]=∑ZP(Z|X;θt)logP(X,Z;θ)(M-step)
θt+1:=argmaxθEZ|X;θt[logP(X,Z;θ)]}
对,就这么短。所以我总觉得称之为 algorithm 不如称之为 method 更恰当。上面的过程在收敛后就得到了我们需要的 θ=argmaxθL(θ;X) [2]。
先简单说说这短短两步都做了些啥。EM 算法每次迭代都建立在上轮迭代对 θ 的最优值的估计 θt 上,利用它可以求出 Z 的后验概率 P(Z|X;θt) ,进而求出 L(θ;X,Z) 在分布 Z∼P(Z|X;θ) 上的期望 EZ|X;θt[L(θ;X,Z)]。在第一节中我们提到 argmaxθL(θ;X,Z) 在未知 Z 的情况下难以直接计算,于是 EM 算法就转而通过最大化它的期望 EZ|X;θt[L(θ;X,Z)] 来逼近 θ 的最优值,得到 θt+1 。注意由于 L(θ;X,Z) 的这个期望是在 Z 的一个分布上求的,这样得到的表达式就只剩下 θ 一个未知量,因而绕过了 z 未知的问题。而 θt+1 又可以作为下轮迭代的基础,继续向最优逼近。算法中 E-step 就是在利用 θt 求期望 EZ|X;θt[L(θ;X,Z)],这就是所谓“Expectation”;M-step 就是通过寻找 θt+1 最大化这个期望来逼近 θ 的最优值,这就叫“Maximization”。EM 算法因此得名。
另外,如果数据满足独立同分布的条件,分别枚举 z(i) 的值可能要比枚举整个 Z 方便些,可把 EZ|X;θt[L(θ;X,Z)] 替换成:
原理
为什么这样 E一步,M一步,一步E,一步M,就能逼近极大似然?具体而言,为什么通过迭代计算 argmaxθEZ|X;θt[L(θ;X,Z)] 可以逼近 θ 的最优值 argmaxθL(θ;X,Z)?我们稍后会看到,这是因为每次迭代得到的 θt+1 一定比 θt 更优,即算法是在对 θ 的最优值做单调逼近。
不过首先让我们先抛开最大似然,考虑一个更一般的问题。假设有一个凹函数 F(θ) ,我们想求 argmaxθF(θ) ,但直接求很困难。不过对于任意给定的 θt,假设我们都能找到 F(θ) 的一个下界函数 Gθt(θ),满足 F(θ)≥Gθt(θ) 且 F(θt)=Gθt(θt) ——我管 Gθt(θ) 这样的函数叫 F 的“在 θt 处相等的下界函数”。现在考虑 θt+1:=argmaxθGθt(θ),它一定会满足:
也就是说, θt+1 一定比 θt 更优。而接下来我们又可以用 θt+1 找到一个 Gθt+1(θ),再据此算出比 θt+1 还优的 θt+2:=argmaxθGθt+1(θ) 。如此不断迭代,就能不断步步逼近 θ 的最优值了。由此可见,如果对任意 θt都能找到 F 的“在 θt 处相等的下界函数” Gθt(θ),我们就得到了一个能单调逼近 θ 的最优值的算法:
Repeat until converge {
找到函数 F(θ) 的“在 θt 处相等的下界函数” Gθt(θ)
更新参数
θt+1:=argmaxθGθt(θ)}
上面的算法看起来和 EM 算法的每步都分别对应——事实上也正如此。下面是从 PRML 中偷的一张图改的,展示了上述逼近的过程:
现在我们回到最大似然问题 θ=argmaxθL(θ;X) 。如果我们想套用上面的算法来逼近 θ 的这个最优解,就需要找到对于每个 θt,函数 L(θ;X) 的“在 θt 处相等的下界函数”。该怎么找呢?让我们从 L(θ) 的初始形式开始推导:
又卡在这个 log 套 ∑ 的形式上了……我们说过麻烦在于观察不到 Z 的值,那不妨给它任意引入一个概率分布 Q(Z) [3],利用分子分母同乘 Q(Z) 的小 trick,得到:
根据 Jensen 不等式 [4],对于任意分布 Q 都有:
且上面的不等式在 P(X,Z;θ)Q(Z) 为常数时取等号。
于是我们就得到了 L(θ;X) 的一个下界函数。我们要想套用上面的算法,还要让这个不等式在 θt 处取等号,这就这要求在 θ=θt 时 P(X,Z;θ)Q(Z) 为常数,即 Q(Z)∝P(X,Z;θt)。由于 Q(Z) 是一个概率分布,必须满足 ∑zQi(z)=1,所以这样的 Q(Z) 只能是 Q(Z)=P(X,Z;θt)∑ZP(X,Z;θt)=P(Z|X;θt)。那我们就把 Q(Z)=P(Z|X;θt) 代入上式,得到:
且该不等式在 θ=θt 时取到等号。那么…… EZ|X;θt[logP(X,Z;θ)P(Z|X;θt)] 就是 L(θ;X) 的“在 θt 处相等的下界函数”——这不就是我们要找的么!于是把它塞进本节开始得到的算法里替换“ Gθt(θ) ”就可以用啦。也就是说,迭代计算 argmaxθEZ|X;θt[logP(X,Z;θ)P(Z|X;θt)]就可以逼近 θ 的最优值了。而由于利用 Jensen 不等式的那一步搞掉了log套∑的形式,它算起来往往要比直接算 argmaxθL(θ;X) 容易不少。
我们还可以再做几步推导,得到一个更简单的形式:
其中倒数第二步是因为 −P(Z|X;θt)logP(Z|X;θt)] 这一项与 θ 无关,所以就直接扔掉了。这样就得到了本文第二节 EM 算法中的形式——它就是这么来的。
以上就是 EM 了。至于独立同分布的情况推导也类似。
顺带一提,argmaxθEZ|X;θt[logP(X,Z;θ)] 有时也比较难算。这时我们其实可以退而求其次,不要求这个期望最大化了,只要它在 θt+1 处的值大于在 θt 处的值就行了。根据上面的推导,这样也能逼近 θ 的最优值,只是收敛速度较慢。这就是所谓 GEM (Generalized EM) 算法了。
p.s. MathJax 很神嘛。
p.p.s. 这篇笔记竟然断断续续写写改改了两天多,我对 EM 的认识也越来越清晰。“‘教’是最好的‘学’”真是一点没错。
[1] |
一般可以利用贝叶斯定理: P(z|x;θ)=P(x|z;θ)P(z;θ)∑zP(x|z;θ)P(z;θ)
而 P(x|z;θ) 和 P(z;θ) 往往是模型假设的一部分。 |
[2] | 实际上在某些特殊情况下,θ 还可能收敛在局部最优点或鞍点上。这时可以多跑几次算法,每次随机不同的 θ0,最后取最好的结果。为简明起见,本文忽略这种情况。 |
[3] | Q(Z) 为概率分布,意即需满足 ∑ZQ(Z)=1 且 Q(Z)≥0 |
[4] |
Jensen 不等式: f 为凸函数,X 为随机变量。则 E[f(X)]≥f(E[X])
若 f 是严格凸的,则上式取等号当前仅当 X 为常数。 在这里 log 函数是严格凹的,所以要把上面的不等号方向调转。 |
Expectation-Maximization(EM) 算法的更多相关文章
- Expectation maximization - EM算法学习总结
原创博客,转载请注明出处 Leavingseason http://www.cnblogs.com/sylvanas2012/p/5053798.html EM框架是一种求解最大似然概率估计的方法.往 ...
- EM(Expectation Maximization)算法
EM(Expectation Maximization)算法 参考资料: [1]. 从最大似然到EM算法浅解 [2]. 简单的EM算法例子 [3]. EM算法)The EM Algorithm(详尽 ...
- EM算法(Expectation Maximization)
1 极大似然估计 假设有如图1的X所示的抽取的n个学生某门课程的成绩,又知学生的成绩符合高斯分布f(x|μ,σ2),求学生的成绩最符合哪种高斯分布,即μ和σ2最优值是什么? 图1 学生成绩的分 ...
- Expectation Maximization and GMM
Jensen不等式 Jensen不等式给出了积分的凸函数值必定大于凸函数(convex)的积分值的定理.在凸函数曲线上的任意两点间连接一条线段,那么线段会位于曲线之上,这就是将Jensen不等式应用到 ...
- EM算法详解
EM算法详解 1 极大似然估计 假设有如图1的X所示的抽取的n个学生某门课程的成绩,又知学生的成绩符合高斯分布f(x|μ,σ2),求学生的成绩最符合哪种高斯分布,即μ和σ2最优值是什么? 图1 学生成 ...
- 机器学习五 EM 算法
目录 引言 经典示例 EM算法 GMM 推导 参考文献: 引言 Expectation maximization (EM) 算法是一种非常神奇而强大的算法. EM算法于 1977年 由Dempster ...
- 最大期望算法 Expectation Maximization概念
在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Lat ...
- 数据挖掘十大经典算法(5) 最大期望(EM)算法
在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Lat ...
- NLP —— 图模型(零):EM算法简述及简单示例(三硬币模型)
最近接触了pLSA模型,该模型需要使用期望最大化(Expectation Maximization)算法求解. 本文简述了以下内容: 为什么需要EM算法 EM算法的推导与流程 EM算法的收敛性定理 使 ...
- EM算法及其推广
概述 EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计. EM算法的每次迭代由两步组成:E步,求期望(expectation): ...
随机推荐
- Start Xamarin——与Microsoft 的sales development manager的闲谈
由于在Xamarin属于微软之前,就已经有Xamarin的账号,试用过破解版的.所以4月1号微软set Xamarin free之后.就收到了Xamarin的邀请试用邮件. 试用完了之后第二天.收到邮 ...
- NYOJ 298-点的变换(经典矩阵解决点平移、缩放、翻转和旋转)
题目地址:NYOJ 298 思路:该题假设用对每一个点模拟的操作.时间复杂度为O(n+m),结果肯定超时.然而利用矩阵乘法能够在O(m)的时间内把全部的操作合并为一个矩阵,然后每一个点与该矩阵相乘能够 ...
- WindowFromPoint -- 获得包括指定点的窗体的句柄
WindowFromPoint 函数功能: 该函数获得包括指定点的窗体的句柄. 函数原型: HWND WindowFromPoint(POINT Point): 參数: Point:指定一个被检 ...
- POJ 1651 Multiplication Puzzle 区间dp(水
题目链接:id=1651">点击打开链 题意: 给定一个数组,每次能够选择内部的一个数 i 消除,获得的价值就是 a[i-1] * a[i] * a[i+1] 问最小价值 思路: dp ...
- [办公自动化]计算机突然死机后asd自动恢复文档未能恢复,如何打开使用
今天计算机突然死机,但是word未能提示自动恢复窗格.所以无法自动恢复word文档.但是在文档所在的文件夹看到了一个“自动恢复”开头的asd恢复文档. 该如何使用这个文档呢? 按照以前的惯例,尝试了如 ...
- javascript下的json 序列化及反序列化
1.序列化 将json对象转为字符串: JSON.stringify(jsonObj) 2.反序列化 var jsonObj = eval("(" + jsonstring + & ...
- C#下JSON字符串的反序列化
C#下JSON字符串的反序列化,一般都是用newtonsoft.json,比较方便..net当然也有提供相应功能,但觉得比较复杂. 所谓反序列化,就是将一个包含JSON内容的字符串,转换回指定对象(不 ...
- Spring 之AOP 面向切面编程
AOP相关术语: Joinpoint (连接点):所谓连接点是指那些被拦截到的点,在spring中,这些点指的是方法,因为spring 只支持方法类型的连接点. Pointcut(切入点):所谓切入点 ...
- Java游戏之碰撞检测
在进行Java游戏开发时,我们经常会遇到碰撞检测的问题.如坦克大战中,炮弹与坦克相遇发生爆炸:守卫者游戏中,守卫者发射的箭与怪物相遇使怪物失血:打飞机游戏中,飞机发送的子弹与敌机相遇干掉敌机.这些都需 ...
- IOS各种调试
IOS各种调试技巧豪华套餐 目录 前言逼优鸡知己知彼 百战不殆抽刀断Bug 普通操作 全局断点(Global BreakPoint) 条件断点(Condational Breakpoints)打印 ...