机器学习之 EM算法

算法概述

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

数学表示

我们用Y表示观测随机变量(不完全随机变量)的数据,Z表示隐随机变量的数据。YZ一起称为完全数据。假设给定观测数据Y,其概率分布是P(Y|θ),其中θ是需要估计的模型参数,那么不完全数据Y的似然函数是P(Y|θ),对数似然函数是L(θ)=logP(Y|θ);假设YZ的联合概率分布是P(Y,Z|θ),那么完全数据的对数似然函数是logP(Y,Z|θ)。EM算法通过迭代求L(θ)=logP(Y|θ)的极大似然估计。为降低算法表述的抽象性,我们引入下面的实例。

例1. 假设有3枚硬币A,B,C。他们正面出现的概率分别为π,pq。进行如下实验:先掷硬币A,根据其结果选出硬币B或硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,出现正面记做1,出现反面记做0;独立地重复n(n=10)次实验,观测结果如下:

1,1,0,1,0,0,1,0,1,1
假设只能观测到最后掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率。

问题表述:观测数据(硬币B或C的结果)表示为Y=(Y1,Y2,,Yn),未观测数据(硬币A的结果)表示为Z=(Z1,Z2,,Zn),则观测数据的似然函数为

P(Y|θ)=ZP(Z|θ)P(Y|Z,θ)
P(Y|θ)=j=1n[πpyj(1p)1yj+(1π)qyj(1q)1yj]
这里θ=(π,p,q)为模型参数。考虑求模型参数θ的极大似然估计,即
θ=argmaxθlogP(Y|θ)
由于上式没有解析解,故不能用常规的极大似然估计法来求解,而EM提供了一种求解该问题的迭代算法。

EM算法

输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|θ),条件分布P(Z|Y,θ);
输出:输出参数θ.
(1)选择参数的初值θ(0),开始迭代;
(2)E步:记θ(i)为第i次迭代参数θ的估计值,在第i+1次迭代的E步,计算

Q(θ,θ(i))=EZ[logP(Y,Z|θ)|Y,θ(i)]=ZlogP(Y,Z|θ)P(Z|Y,θ(i))
这里,P(Z|Y,θ(i))是在给定观测数据Y和当前的参数估计θ(i)下隐变量数据Z的条件概率分布;
(3)M步:求使Q(θ,θ(i))极大化的θ,确定第i+1次迭代的参数的估计值θ(i+1)
θ(i+1)=argmaxθQ(θ,θ(i))

(4)重复第(2)步和第(3)步,直到收敛.

注:第二步函数Q(θ,θ(i))是EM算法的核心,称为Q函数,即完全数据的对数似然函数logP(Y,Z|θ)关于在给定观测数据Y和当前参数θ(i)下对未观测数据Z的条件概率分布P(Y,Z|θ(i))的期望称为Q函数.

算法说明

(1)迭代时参数的初值可以任意选择,但EM算法对初值敏感
(2)M步求Q函数的极大化,每次迭代使似然函数增大或达到局部极值,即EM不能保证全局最优
(3)算法停止迭代的条件是对较小的ϵ1,ϵ2,满足

||θ(i+1)θ(i)||<ϵ1

||Q(θ(i+1),θ(i))Q(θ(i),θ(i))||<ϵ2

(4)算法的数学推导可通过迭代逐步近似极大化观测数据Y关于参数θ的对数似然函数得到。假设第i次迭代后θ的估计值是θ(i),若要新估计值θ使L(θ)增加,则有L(θ)>L(θ(i))。则对L(θ)L(θ(i))运用Jensen不等式容易得到。详细推导可参考《统计学习方法》。

算法推广

广义期望极大(GEM)算法.


博文参考自李航老师的《统计学习方法》,未完待续。

展开阅读全文

没有更多推荐了,返回首页