EM算法

EM算法是一种迭代算法,由Dempster等人于1977年总结提出,主要用于解决含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。

EM算法的每次迭代主要由两步组成:E步,求期望;M步,求极大。所以这一算法称为期望极大算法,简称EM算法。

1.EM算法的引入

概率模型有时既含有观测变量,又含有隐变量或潜在变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数。但是,当模型含有隐变量时,就不能简单地使用这些方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。

三硬币模型

假设有三枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别是\pipq。进行如下掷硬币试验:先掷硬币A,根据其结果选出硬币B或硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,掷硬币的结果,出现正面记作1,出现反面记作0;独立重复n 次试验(这里,n=10),观测结果如下:

                                        1,1,0,1,0,0,1,0,1,1

假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率,即三硬币模型的参数。

三硬币模型可以写作:

这里随机变量y 是观测变量,表示一次试验观测的结果是1或0;随机变量z 是隐变量,表示未观测到的掷硬币A的结果;\theta =(\pi ,p,q)是模型参数。

注意:随机变量y 的数据是可以观测的,随机变量z 的数据不可观测。

将观测数据表示为Y=(Y_{1},Y_{2},\cdots ,Y_{n})^{T},未观测数据表示为Z=(Z_{1},Z_{2},\cdots,Z_{n})^{T},则观测数据的似然函数为

EM算法_第1张图片

所以当y=1时,其概率为\pi p+(1-\pi)q;当y=0时,其概率为\pi(1-p)+(1-\pi)(1-q)

又因P(y|\theta) = P(z=1|\theta)P(y|z=1,\theta)+P(z=0|\theta)P(y|z=0,\theta)

所以P(y|\theta) = \pi p^{y}(1-p)^{1-y} +(1-\pi)q^{y}(1-q)^{1-y},因此:

考虑求模型参数\theta =(\pi ,p,q)的极大似然估计,即

这个问题没有解析解,只有通过迭代的方法求解,EM算法就是可以用于求解这个问题的一种迭代算法。

 

2.EM算法的导出

Jensen不等式:

f 是凸函数,则:

                                                                f(tx_{1}+(1-t)x_{2})\leq tf(x_{1}) + (1-t)f(x_{2})

其中,t\in [0,1]。同理,若f 为凹函数,则只需将上式中的 \leq 换成\geq 即可。

将上式中的t 推广到n 个同样成立,也即:

                                                 f(t_{1}x_{1}+t_{2}x_{2}+\cdots+t_{n}x_{n})\leq t_{1}f(x_{1})+t_{2}f(x_{2})+\cdots+t_{n}f(x_{n})

其中,t_{1},t_{2},\cdots,t_{n} \in [0,1]t_{1}+t_{2}+\cdots+t_{n} = 1。在概率论中常以以下形式出现:

                                                                                 \varphi (E[X])\leq E[\varphi (X)]

其中,X是随机变量,\varphi是凸函数,E[X]表示X的期望。

我们面对一个含有隐变量的概率模型,目标是极大化观测数据Y关于参数\theta 的对数似然函数,即极大化

                                   L(\theta) = lnP(Y|\theta) = ln \sum_{Z} P(Y,Z|\theta) =ln(\sum_{Z}P(Y|Z,\theta)P(Z|\theta))

注意这一极大化的主要困难是上式中未观测数据Z 并有包含和(Z为离散型时)或积分(Z为连续型时)的对数。EM算法采用的是通过迭代逐步近似极大化L(\theta):假设在第i 次迭代后\theta 的估计值是\theta^{i},我们希望新的估计值\theta 能使L(\theta)增加,即L(\theta)>L(\theta^{i}),并逐步达到极大值。为此,我们考虑两者的差:

利用Jensen不等式得到其下界:(红色框写错了,应该写为蓝色框的内容)

令 

EM算法_第2张图片

即函数B(\theta,\theta^{(i)})L(\theta)的一个下界,此时若设\theta^{(i+1)}使得B(\theta,\theta^{(i)})达到极大,也即B(\theta^{(i+1)},\theta^{(i)})\geq B(\theta^{(i)},\theta^{(i)})

由于B(\theta^{(i)},\theta^{(i)}) = L(\theta^{(i)}),所以可以进一步推得:

                                                          L(\theta^{(i+1)})\geq B(\theta^{(i+1)},\theta^{(i)})\geq B(\theta^{(i)},\theta^{(i)}) =L(\theta^{(i)})

因此,任何可以使B(\theta,\theta^{(i)})增大的\theta,也可以使L(\theta)增大,于是问题就转化为了求解能使得B(\theta,\theta^{(i)})达到极大的\theta^{(i+1)},即

EM算法_第3张图片

到此即完成了EM算法的一次迭代,求出的\theta^{(i+1)}作为下一次迭代的初始\theta^{(i)}

一般地,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。YZ连在一起称为完全数据,观测数据Y又称为不完全数据。假设给定观测数据Y。其概率分布是P(Y|\theta),其中\theta是需要估计的模型参数,那么不完全数据Y的似然函数是P(Y|\theta),对数似然函数L(\theta) = logP(Y|\theta);假设YZ的联合概率分布是P(Y,Z|\theta),那么完全数据对数似然函数是logP(Y,Z|\theta)

EM算法通过迭代L(\theta) = logP(Y|\theta)的极大似然估计。每次迭代包含两步:E步:求期望(用给定参数的条件下,用z_{i}z_{i}的期望去代替每个z_{i}的值,得到用期望替代后的对数似然函数;

M步:求极大(求替代后的对数似然函数Q函数的极大化)。

Q函数:完全数据的对数似然函数logP(Y,Z|\theta)关于在给定观测数据Y和当前参数\theta^{i}下对未观测数据Z的条件概率分布P(Y,Z|\theta^{i})的期望称为Q函数,即

EM算法注意点:

1.参数的初值可以任意选择,但需注意EM算法对初值是敏感的。

 

EM算法求解例子(三硬币模型)

E步:导出Q函数

EM算法_第4张图片

EM算法_第5张图片

EM算法_第6张图片

EM算法_第7张图片

EM算法_第8张图片

EM算法_第9张图片

EM算法_第10张图片

EM算法_第11张图片

EM算法_第12张图片

EM算法_第13张图片

EM算法_第14张图片

EM算法_第15张图片

EM算法_第16张图片

EM算法_第17张图片

EM算法_第18张图片

EM算法_第19张图片

EM算法_第20张图片

综上:

EM算法_第21张图片

你可能感兴趣的:(西瓜书-机器学习,机器学习)