Expectation maximization (EM) 算法学习总结

原创博客,转载请注明出处 Leavingseason http://www.cnblogs.com/sylvanas2012/p/5053798.html

EM框架是一种求解最大似然概率估计的方法。往往用在存在隐藏变量的问题上。我这里特意用"框架"来称呼它,是因为EM算法不像一些常见的机器学习算法例如logistic regression, decision tree,只要把数据的输入输出格式固定了,直接调用工具包就可以使用。可以概括为一个两步骤的框架:

E-step:估计隐藏变量的概率分布期望函数(往往称之为Q函数,它的定义在下面会详细给出);

M-step:求出使得Q函数最大的一组参数

实际使用过程中,我们先要根据不同的问题先推导出Q函数,再套用E-M两步骤的框架。

下面来具体介绍为什么要引入EM算法?

不妨把问题的全部变量集(complete data)标记为X,可观测的变量集为Y,隐藏变量集为Z,其中X = (Y , Z) . 例如下图的HMM例子:

又例如,在GMM模型中(下文有实例) ,Y是所有观测到的点,z_i 表示 y_i 来自哪一个高斯分量,这是未知的。

问题要求解的是一组参数, 使得最大。在求最大似然时,往往求的是对数最大:  (1)

对上式中的隐变量做积分(求和):

(2)式往往很难直接求解。于是产生了EM方法,此时我们想要最大化全变量(complete data)X的对数似然概率:假设我们已经有了一个模型参数的估计(第0时刻可以随机取一份初始值),基于这组模型参数我们可以求出一个此时刻X的概率分布函数。有了X的概率分布函数就可以写出的期望函数,然后解出使得期望函数最大的值,作为更新的参数。基于这个更新的再重复计算X的概率分布,以此迭代。流程如下:

Step 1: 随机选取初始值

Step 2:给定和观测变量Y, 计算条件概率分布

Step 3:在step4中我们想要最大化,但是我们并不完全知道X(因为有一些隐变量),所以我们只好最大化的期望值, 而X的概率分布也在step 2 中计算出来了。所以现在要做的就是求期望,也称为Q函数:

其中,表示给定观测值y时所有可能的x取值范围,即

Step 4 求解

Step 5 回到step 2, 重复迭代下去。

为什么要通过引入Q函数来更新theta的值呢?因为它和我们的最大化终极目标(公式(1))有很微妙的关系:

定理1:

证明:在step4中,既然求解的是arg max, 那么必然有 。于是:

其中,(3)到(4)是因为X=(Y , Z), y=T(x), T是某种确定函数,所以当x确定了,y也就确定了(但反之不成立);即:  而(4)中的log里面项因为不包含被积分变量x,所以可以直接提到积分外面。

所以E-M算法的每一次迭代,都不会使目标值变得更差。但是EM的结果并不能保证是全局最优的,有可能收敛到局部最优解。所以实际使用中还需要多取几种初始值试验。

实例:高斯混合模型GMM

假设从一个包含k个分量的高斯混合模型中随机独立采样了n个点 , 现在要估计所有高斯分量的参数。 例如图(a)就是一个k=3的一维GMM。

高斯分布函数为:

为第m次迭代时,第i个点来自第j个高斯分量的概率,那么:

     并且 

因为每个点是独立的,不难证明有:

于是首先写出每个

忽略常数项,求和,完成E-step:

为简化表达,再令

Q函数变为:

现在到了M-step了,我们要解出使得Q函数最大化的参数。最简单地做法是求导数为0的值。

首先求w。 因为w有一个约束:

可以使用拉格朗日乘子方法。 除去和w无关的项,写出新的目标函数:

求导:

很容易解出w:

同理解出其他参数:

总结:个人觉得,EM算法里面最难懂的是Q函数。初次看教程的时候,很能迷惑人,要弄清楚是变量,是需要求解的;是已知量,是从上一轮迭代推导出的值。

时间: 2024-12-11 11:31:19

Expectation maximization (EM) 算法学习总结的相关文章

EM算法学习笔记2:深入理解

文章<EM算法学习笔记1:简介>中介绍了EM算法的主要思路和流程,我们知道EM算法通过迭代的方法,最后得到最大似然问题的一个局部最优解.本文介绍标准EM算法背后的原理. 我们有样本集X,隐变量Z,模型参数θ,注意他们3个都是向量,要求解的log似然函数是lnp(X|θ),而这个log似然函数难以求解,我们假设隐变量Z已知,发现lnp(X,Z|θ) 的最大似然容易求解. 有一天,人们发现引入任意一个关于隐变量的分布q(Z),对于这个log似然函数,存在这样一个分解: lnp(X|θ)=L(q,θ

EM算法学习资料汇总

将学习EM算法过程中看到的好的资料汇总在这里,供以后查询,也供大家参考. 1. 这是我学习EM算法最先看的优秀的入门文章,讲的比较通俗易懂,而且举了例子来说明其中的原理,不错! http://blog.csdn.net/zouxy09/article/details/8537620

EM算法学习笔记

最近学习整理相关算法,发现EM算法和MLE估计都是十分优秀的算法. 首先最大似然估计是一种已知结果,通过改变参数theta使得这种结果出现的可能性最大. 而EM算法则是可以解决含有隐藏变量的问题.举个大家都用的例子,就是我们要统计某学校男女同学的身高,如果我们可以区分男女同学,那么用最大似然估计即可,但是现在我们无法知道某个同学的性别,那么怎么来推断男女同学的身高分布呢? 假设我们想估计知道A和B两个参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到

最大期望算法 Expectation Maximization概念

在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variabl).最大期望经常用在机器学习和计算机视觉的数据集聚(Data Clustering)领域. 可以有一些比较形象的比喻说法把这个算法讲清楚.比如说食堂的大师傅炒了一份菜,要等分成两份给两个人吃,显然没有必要拿来天平一点一点的精确的去称分量,最简单的办法是先随意的把菜分到两个碗中,

漫谈 Clustering (番外篇): Expectation Maximization

Expectation Maximization (EM) 是一种以迭代的方式来解决一类特殊最大似然 (Maximum Likelihood) 问题的方法,这类问题通常是无法直接求得最优解,但是如果引入隐含变量,在已知隐含变量的值的情况下,就可以转化为简单的情况,直接求得最大似然解. 我们会看到,上一次说到的 Gaussian Mixture Model 的迭代求解方法可以算是 EM 算法最典型的应用,而最开始说的 K-means 其实也可以看作是 Gaussian Mixture Model

EM算法概念

EM算法是一种非常经典的alternative optimizing算法.alternative optimizing的思想就是对于一个最优化问题,可以计算分为两步或者参数分为两个,就可以随机任意的选择一个起始值或位置,固定一个参数A,以另一个参数B进行优化,然后固定参数B,以参数A进行优化,直到收敛未知.前面博文中所讲述的K-means也就这样的一个过程,或者meanshift均值漂移也是这样的一个思想.今天学习的一个算法也是这样一个概念.这里依然做一个入门级的概念理解指导,不做原理性的深入,

统计学习方法 李航---第9章 EM算法及其推广

第9章 EM算法及其推广 EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(expectation):M步,求极大( maximization ),所以这一算法称为期望极大算法(expectation maximization algorithm),简称EM算法. 9.1  EM算法的引入 一般地,用Y表示观测随机变量的数据,Z表示隐随机变量的数据.Y和Z连在一起称为完全数据( c

机器学习中的EM算法详解及R语言实例(1)

最大期望算法(EM) K均值算法非常简单(可参见之前发布的博文),详细读者都可以轻松地理解它.但下面将要介绍的EM算法就要困难许多了,它与极大似然估计密切相关. 1 算法原理 不妨从一个例子开始我们的讨论,假设现在有100个人的身高数据,而且这100条数据是随机抽取的.一个常识性的看法是,男性身高满足一定的分布(例如正态分布),女性身高也满足一定的分布,但这两个分布的参数不同.我们现在不仅不知道男女身高分布的参数,甚至不知道这100条数据哪些是来自男性,哪些是来自女性.这正符合聚类问题的假设,除

简单理解EM算法Expectation Maximization

1.EM算法概念 EM 算法,全称 Expectation Maximization Algorithm.期望最大算法是一种迭代算法,用于含有隐变量(Hidden Variable)的概率参数模型的最大似然估计或极大后验概率估计. 1.1 问题描述 我们假设学校男生和女生分别服从两种不同的正态分布,即男生  ,女生  ,(注意:EM算法和极大似然估计的前提是一样的,都要假设数据总体的分布,如果不知道数据分布,是无法使用EM算法的).那么该怎样评估学生的身高分布呢? 简单啊,我们可以随便抽 100