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

摘要:
第9章EM算法及其扩展EM算法是一种迭代算法,用于具有隐藏变量的概率模型参数的最大似然估计或最大后验估计。然而,应当注意,EM算法对初始值敏感。从图中可以推断,EM算法不能保证找到全局最优值。用于高斯混合模型参数估计的EM算法假设观测数据由高斯混合模型生成。1.清除隐藏变量。

第9章 EM算法及其推广

EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望(expectation);M步,求极大( maximization ),所以这一算法称为期望极大算法(expectation maximizationalgorithm),简称EM算法

9.1 EM算法的引入

一般地,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z连在一起称为完全数据( complete-data ),观测数据Y又称为不完全数据(incomplete-data)。假设给定观测数据Y,其概率分布是P(Y | theta),其中theta是需要估计的模型参数,那么不完全数据Y的似然函数是P(Y | theta),对数似然函数L(theta)=logP(Y | theta);假设Y和Z的联合概率分布是P(Y, Z }句,那么完全数据的对数似然函数是log P(Y, Z| theta)。
观测数据的似然函数为
统计学习方法 李航---第9章 EM算法及其推广第1张
EM算法通过迭代求L(theta)=logP(Y | theta)的极大似然估计。每次迭代包含两步E步,求期望;M步,求极大化。
统计学习方法 李航---第9章 EM算法及其推广第2张
定义9.1 ( Q函数)完全数据的对数似然函数log P(Y, Z| theta)关于在给定观测数据Y和当前参数theta(i)下对未观测数据Z的条件概率分布P(Z | Y,theta(i))的期望称为Q函数,即
统计学习方法 李航---第9章 EM算法及其推广第3张
EM算法说明:
步骤(1)参数的初值可以任意选择。但需注意EM算法对初值是敏感的。
步骤(2) E步求Q(theta,theta(i))。Q函数式中Z是未观测数据,Y是观测数据。注意,Q(theta,theta(i))的第1个变量theta表示要极大化的参数,第2个变量theta(i)表示参数的当前估计值。每次迭代实际在求Q函数及其极大。
(3) M步求Q(theta,theta(i))的极大化,得到theta(i+1),完成一次迭代theta(i)-->theta(i+1)后面将证明每次迭代使似然函数增大或达到局部极值。
步骤(4)给出停止迭代的条件,一般是对较小的正数,若满足
统计学习方法 李航---第9章 EM算法及其推广第4张
则停止迭代.

EM算法的导出

通过近似求解观测数据的对数似然函数的极大化问题来导出EM算法,由此可以清楚地看出EM算法的作用。面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据)Y关于参数theta
的对数似然函数,即极大化
统计学习方法 李航---第9章 EM算法及其推广第5张
这一极大化的主要困难是式中有未观测数据并有包含和(或积分)的对数。
EM算法是通过迭代逐步近似极大化L(theta)的。
每次迭代需要满足:新估计值theta能使L(theta)增加,并逐步达到极大值。i次迭代前后的差值为:
统计学习方法 李航---第9章 EM算法及其推广第6张
利用jensen不等式可以得出下界
统计学习方法 李航---第9章 EM算法及其推广第7张统计学习方法 李航---第9章 EM算法及其推广第8张
统计学习方法 李航---第9章 EM算法及其推广第9张
为使L(theta)极大,选择theta(i+1)使B极大,可得,
统计学习方法 李航---第9章 EM算法及其推广第10张
等价于EM算法的一次迭代,即求Q函数及其极大化。EM算法是通过不断求解下界的极大化逼近求解对数似然函数极大化的算法。
统计学习方法 李航---第9章 EM算法及其推广第11张
EM算法的直观解释:图中上方曲线为L(theta),下方曲线为B(theta,theta(i)),为对数似然函数L(theta)的下界,且在theta=theta(i)处相等。EM算法找到下一个点theta(i+1)使函数B(theta,theta(i))极大化,也使函数Q(theta,theta(i))极大化。函数B的增加,保证对数似然函数L在每次迭代中也是增加的。EM算法在点theta(i+1)重新计算Q函数值,进行下一次迭代。在这个过程中,对数似然函数L不断增大。从图可以推断出EM算法不能保证找到全局最优值。

EM算法在非监督学习中的应用

训练数据只有输入没有对应的输出(X,?),从这样的数据学习模型称为非监督学习问题。EM算法可以用于生成模型的非监督学习,生成模型由联合概率分布P(X, Y)表示,可以认为非监督学习训练数据是联合概率分布产生的数据。X为观测数据,Y为未观测数据。

9.2 EM算法的收敛性

定理9.1P(Y | theta)为观测数据的似然函数,theta(i)(i=1, 2,...)为EM算法得到的参数估计序列,P(Y |theta(i))(i=1, 2,...))为对应的似然函数序列,P(Y |theta(i))是单调递增的,即
统计学习方法 李航---第9章 EM算法及其推广第12张
定理9.2
P(Y | theta)为观测数据的似然函数,theta(i)(i=1, 2,...)为EM算法得到的参数估计序列,L(theta(i))=P(Y |theta(i))(i=1, 2,...))为对应的似然函数序列,
(1)如果P(Y | theta)有上界,则L(theta(i))收敛到某一值L*;
(2)在函数Q与L满足一定条件下,由EM算法得到的参数估计序theta(i)的收敛值theta*是L(theta)的稳定点。
EM算法的收敛性包含关于对数似然函数序列L的收敛性和关于参数估计序列theta的收敛性两层意思,前者并不蕴涵后者。此外,定理只能保证参数估计序列收敛到对数似然函数序列的稳定点,不能保证收敛到极大值点。所以在应用中,初值的选择变得非常重要,常用的办法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。

9.3 EM算法在高斯混合模型学习中的应用

定义9.2 (高斯混合模型) 高斯混合模型是指具有如下形式的概率分布模型:
统计学习方法 李航---第9章 EM算法及其推广第13张
统计学习方法 李航---第9章 EM算法及其推广第14张
统计学习方法 李航---第9章 EM算法及其推广第15张
称为第k个分模型。

高斯混合模型参数估计的EM算法

假设观测数据由高斯混合模型生成,
统计学习方法 李航---第9章 EM算法及其推广第16张统计学习方法 李航---第9章 EM算法及其推广第17张
1. 明确隐变量。写出完全数据的对数似然函数
可以设想观测数据yj是这样产生的:首先依概率ak选择第k个高斯分布分模型;然后依第k个分模型的概率分布生成观侧
数据yj时观测数据yj是已知的;反映观测数据yj来自第k个分模型的数据是未知的,k=1,2,... ,K,为隐变量定义如下:
统计学习方法 李航---第9章 EM算法及其推广第18张
是0-1随机变量。
那么完全数据是
统计学习方法 李航---第9章 EM算法及其推广第19张
完全数据的似然函数为:
统计学习方法 李航---第9章 EM算法及其推广第20张统计学习方法 李航---第9章 EM算法及其推广第21张
对数然函数为:
统计学习方法 李航---第9章 EM算法及其推广第22张
2. EM算法的E步:确定Q函数
统计学习方法 李航---第9章 EM算法及其推广第23张
其中。
统计学习方法 李航---第9章 EM算法及其推广第24张
是在当前模型参数下第j个观测数据来自第k个分模型的概率,称为分模型k对观测数据yj的响应度。
统计学习方法 李航---第9章 EM算法及其推广第25张统计学习方法 李航---第9章 EM算法及其推广第26张
3. 确定EM算法的M步
迭代的M步是求函数Q对theta的极大值,即求新一轮迭代的模型参数
统计学习方法 李航---第9章 EM算法及其推广第27张
通过求偏导并令其为0和约束条件统计学习方法 李航---第9章 EM算法及其推广第28张可得,
统计学习方法 李航---第9章 EM算法及其推广第29张统计学习方法 李航---第9章 EM算法及其推广第30张统计学习方法 李航---第9章 EM算法及其推广第31张统计学习方法 李航---第9章 EM算法及其推广第32张
统计学习方法 李航---第9章 EM算法及其推广第33张

9.4 EM算法的推广

EM算法还可以解释为F函数(F function)的极大-极大算法(maximization-maximizationalgorithm),基于这个解释有若干变形与推广,如广义期望极大(generalized expectation maximization, GEM)算法。

F函数的极大-极大算法

定义9.3 (F函数)假设隐变量数据Z的概率分布为 P~(Z),定义分布P~参数theta的函数F(P~,theta如下
统计学习方法 李航---第9章 EM算法及其推广第34张
成为F函数,其中H是分布P~(Z)的熵。
引理9.1 对于固定的theta,存在唯一的分布P~(theta)极大化F,这时P~(theta)由下式给出:
统计学习方法 李航---第9章 EM算法及其推广第35张
并且P~(theta)theta连续变化.
统计学习方法 李航---第9章 EM算法及其推广第36张
统计学习方法 李航---第9章 EM算法及其推广第37张
定理9.3设L(theta)=P(Y |theta)为观测数据的对数似然函数,theta(i),i=1,2,...为EM算法得到的参数估计序列,如果函数
F(P~,theta)在户P~*theta*有局部极大值,那么L(theta)也在theta*有局部极大值。类似地,如果F在P~*theta*达到全局最大值,那么L也在theta*达到全局最大值。
定理9.4 EM算法的一次迭代可由F函数的极大-极大算法实现。
theta(i)为第i次迭代参数theta的估计,P~(i)为第i次迭代函数P~的估计。在第i+1次迭代的两步为
(1) 对固定的theta(i),求P~(i+1)使F(P~,theta(i))极大化
(2) 对固定的P~(i+1)theta(i+1)使F(P~(i+1),theta)极大化
通过以上两步完成了EM算法的一次迭代。由此可知,由EM算法与F函数的极大-极大算法得到的参数估计序列是一致的。

EM算法的推广--GEM算法

统计学习方法 李航---第9章 EM算法及其推广第38张
在GEM算法1中,有时求Q(thetatheta(i))的极大化是很困难的。
GEM算法2和GEM算法3并不是直接求theta(i+1)使Q达到极大的theta,而是找一个theta(i+1)使得Q(theta(i+1), theta(i)) >Q(theta(i), theta(i))
统计学习方法 李航---第9章 EM算法及其推广第39张
当参数theta的维数为d(d>=2)时,可采用一种特殊的GEM算法,它将EM算法的M步分解为d次条件极大化,每次只改变参数向量的一个分量,其余分量不改变。
统计学习方法 李航---第9章 EM算法及其推广第40张
GEM算法的特点是每次迭代增加F函数值(并不一定是极大化F函数),从而增加似然函数值。
来自为知笔记(Wiz)

免责声明:文章转载自《统计学习方法 李航---第9章 EM算法及其推广》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Activiti如何替换已部署流程图NodeJS笔记(六)-Express HTTP服务器启动后如何关闭下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

GJK碰撞检测算法

https://blog.lufei.so/#/collisionDetection/GJK/1 https://blog.lufei.so/#/collisionDetection/GJK/2 现实世界里我们对于是否碰撞的判断可以说极其容易而且准确,比如下图。在二进制的世界里,一切就没这么直观了。 GJK(Gilbert-Johnson-Keerthi...

传统磁盘I/O调度算法

目前来说,传统的磁盘仍然是主流的存储设备,从传统的硬盘上读取数据分为以下3个步骤。 将磁头移动到磁盘表面的正确位置,花费的时间叫寻道时间。 等待磁盘旋转,需要的数据会移动到磁头下面,花费的时间取决于磁盘的转速,转速越高的磁盘需要的时间越短。 磁盘继续旋转,直到所有需要的数据都经过磁头。 磁盘在做这样动作的时候的快慢可以归结为两个因素:访问时间(步骤1和...

TCP 的那些事儿(下)

本文转载自TCP 的那些事儿(下) 导语 这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准...

Python里的迭代器

迭代器(iterator)协议 · 在Python中,支持迭代器协议就是实现对象的__iter__()和__next__()方法。   1.__iter__()方法:返回迭代器对象本身;         2.__next__()方法:返回容器中的下一个元素,在结尾时引发Stoplteration异常终止迭代器。 可迭代对象(iterable)·  实现了迭...

ffmpeg中的sws_scale算法性能测试

经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理。以前一直很懒,懒得测试和甄 别应该使用哪种算法,最近的工作时间,很多时候需要等待别人。忙里偷闲,对ffmpeg的这一组函数进行了一下封装,顺便测试了一下各种算法。 简单说一下测试环境,我使用的是Dell的品牌机,i5的CPU。ffmpeg是201...

基于无锁的C#并发队列实现

最近开始学习无锁编程,和传统的基于Lock的算法相比,无锁编程具有其独特的优点,Angel Lucifer的关于无锁编程一文对此有详细的描述。 无锁编程的目标是在不使用Lock的前提下保证并发过程中共享数据的一致性,其主要的实现基础是CAS操作,也就是compare_and_swap,通过处理器提供的指令,可以原子地更新共享数据,并同时监测其他线程的干...