第9章 EM算法及其推广
EM算法是一种迭代算法,用于含有隐
变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计。
EM算法的每次迭代由两步组成:E步,求期望(expectation);M步,求极大
( maximization ),所以这一算法称为期望极大算法(expectation maximization
algorithm),简称EM算法
。
9.1 EM算法的引入
一般地,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z
连在一起称为完全数据( complete-data ),观测数据Y又称为不完全数据
(incomplete-data)。假设给定观测数据Y,其概率分布是P(Y | theta),其中
theta
是需要
估计的模型参数,那么不完全数据Y的似然函数是
P(Y | theta)
,对数似然函数
L(theta)=log
P(Y | theta);
假设Y和Z的联合概率分布是P(Y, Z }句,那么完全数据的对
数似然函数是log P(Y, Z
| theta
)。
观测数据的似然函数为
![](https://i-blog.csdnimg.cn/blog_migrate/674c36ffb9fc0fd4d6ad1b74a3e661d7.png)
EM算法通过迭代求
L(theta)=log
P(Y | theta)
的极大似然估计。每次迭代包含两步
E步,求期望;M步,求极大化。
![](https://i-blog.csdnimg.cn/blog_migrate/b2f1644ef6b7e23ec585ad263b9774fc.png)
定义9.1 ( Q函数) 完全数据的对数似然函数
log P(Y, Z
| theta
)
关于在给定观测
数据Y和当前参数
theta(i)
下对未观测数据Z的条件概率分布P(Z | Y,
theta
(i)
)的期望称
为Q函数,即
![](https://i-blog.csdnimg.cn/blog_migrate/daf3fb3e26b78a495661328d164f26af.png)
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)给出停止迭代的条件,一般是对较小的正数,若满足
![](https://i-blog.csdnimg.cn/blog_migrate/78232b0e8efa4a1b8ad1096a0cc2b0df.png)
则停止迭代.
EM算法的导出
通过近似求解观测数据的对数似然函数的极大化问题来导出EM算
法,由此可以清楚地看出EM算法的作用。
面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据)
Y关于参数
theta
的对数似然函数,即极大化
![](https://i-blog.csdnimg.cn/blog_migrate/213d6c18021bf1a4240729ee479d3846.png)
这一极大化的主要困难是式中有未观测数据并有包含和(或积分)
的对数。
EM算法是通过迭代逐步近似极大化
L(theta)
的。
每次迭代需要满足:新估计值
theta能使
L(theta)增加,
并逐步
达到极大值。i次迭代前后的差值为:
![](https://i-blog.csdnimg.cn/blog_migrate/f3fd99a1b6213853fa09515eef79059b.png)
利用jensen不等式可以得出下界
![](https://i-blog.csdnimg.cn/blog_migrate/c6fc7e1a1e39a988e20ae8bd25119e40.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1b15d0be3cdad817ad5033d64d5efe3e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b22d12dda1ea2d70f8f4fdcb8d4334aa.png)
为使
L(theta)极大,选择
theta
(i+1)使B极大,可得,
![](https://i-blog.csdnimg.cn/blog_migrate/090a8e81358fac7b621c35e9e735c292.png)
等价于EM算法的一次迭代,即求Q函数及其极大化。EM算法是通过
不断求解下界的极大化逼近求解对数似然函数极大化的算法。
![](https://i-blog.csdnimg.cn/blog_migrate/379dcc90610bfb4b6b21cba3ea0af388.png)
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.1 设
P(Y | theta)
为观测数据的似然函数,
theta
(i)
(i=1, 2,...
)为EM算法得到
的参数估计序列,
P(Y |
theta
(i)
)
(i=1, 2,...
)
)
为对应的似然函数序列,
则
P(Y |
theta
(i)
)
是单
调递增的,即
![](https://i-blog.csdnimg.cn/blog_migrate/b8248261bf975397e1257f01df2b5898.png)
定理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 (高斯混合模型) 高斯混合模型是指具有如下形式的概率分布模型:
![](https://i-blog.csdnimg.cn/blog_migrate/78867603beb92bc72c707fa7a51c39e9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bbb14a12537da3fd46c1e8925099b1d9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f22a859cd108b45c7e8752ef76ca910a.png)
称为第k个分模型。
高斯混合模型参数估计的EM算法
假设观测数据由高斯混合模型生成,
![](https://i-blog.csdnimg.cn/blog_migrate/2035ca28dde623c661a9eb806d0a55bf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1c2d573408a67e40a156571dca84a7d7.png)
1. 明确隐变量。写出完全数据的对数似然函数
可以设想观测数据y
j是这样产生的:首先依概率a
k选择第
k个高斯分布分模型;然后依第k个分模型的概率分布生成观侧
数据
y
j
。
这
时观测数据
y
j
是已知的;反映观测数据
y
j
来自第k
个分模型的数据是未知的,k=1,2,... ,K,为隐变量定义如下:
![](https://i-blog.csdnimg.cn/blog_migrate/ce6400ed58f5b7b617ebdc7dc756ce2d.png)
是0-1随机变量。
那么完全数据是
![](https://i-blog.csdnimg.cn/blog_migrate/b50813ffc2a7cf9399c235156a216c26.png)
完全数据的似然函数
为:
![](https://i-blog.csdnimg.cn/blog_migrate/2945167001d0b7a5c76443c64589f3a0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f71558fa0073a624a58f2fa241475dba.png)
对数
似
然函数为:
![](https://i-blog.csdnimg.cn/blog_migrate/89d5ab02a970f489760d1508ef05dde4.png)
2. EM算法的E步:确定Q函数
![](https://i-blog.csdnimg.cn/blog_migrate/b6836980b270f917d07ebe4eee457a72.png)
其中。
![](https://i-blog.csdnimg.cn/blog_migrate/8d0747a2b37ab757ba9920447963b6b6.png)
是在当前模型参数下第j个观测数据来自第k个分模型的概率,称为分模型k
对观测数据
y
j
的响应度。
![](https://i-blog.csdnimg.cn/blog_migrate/4ab3bdb63df0aed38a769af486328eaf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/07bf65764437241cdd7edd7259aac563.png)
3. 确定EM算法的M步
迭代的M步是求函数Q对theta的极大值,即求新一轮迭代的模型参数
![](https://i-blog.csdnimg.cn/blog_migrate/6ff35348f7dae8c0addf72be27688117.png)
通过求偏导并令其为0和约束条件
可得,
![](https://i-blog.csdnimg.cn/blog_migrate/86df79a0db139d3b3e16e7efbcd8aa80.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1f1090d4211ddbb45f48167bf617d5ca.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9017283b28b77ddb7b7a51a45136c285.png)
![](https://i-blog.csdnimg.cn/blog_migrate/762ec1d111daa0ec3b411548d837fdbf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c9f2e81f8a3137e25563d92459f2dbe2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bd23c2abcda4a0a7dc34f4fb496662ff.png)
9.4 EM算法的推广
EM算法还可以解释为F函数(F function)的极大-极大算法(maximization-
maximization
algorithm),基于这个解释有若干变形与推广,如广义期望极大
(generalized expectation maximization, GEM)算法。
F函数的极大-极大算法
定义9.3 (F函数) 假设隐变量数据Z的概率分布为 P
~(Z),定义分布
P
~
与
参数theta
的函数F(
P
~
,theta
)
如下
![](https://i-blog.csdnimg.cn/blog_migrate/8cfe3f91209f63482649023c8b3ea158.png)
成为F函数,其中H是分布
P
~
(Z)
的熵。
引理9.1 对于固定的
theta
,存在唯一的分布
P
~
(theta)
极大化F,这时
P
~
(theta)
由下式
给出:
![](https://i-blog.csdnimg.cn/blog_migrate/a0b9cf7a47d191b6d08f2305759d4594.png)
并且
P
~
(theta)
随
theta
连续变化.
![](https://i-blog.csdnimg.cn/blog_migrate/59be2737e53c0e131e256b119d52c4a1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/441ee4a80f189967001e6834a50d060b.png)
定理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算法
![](https://i-blog.csdnimg.cn/blog_migrate/0a45528aebd6b90eb26cd61fbdbef1d5.png)
在GEM算法1中,有时求Q(
theta
,
theta
(i)
)的极大化是很困难的。
GEM
算法2和GEM算法3并不是直接求
theta
(i+1)
使Q达到极大的
theta
,而是找一个
theta
(i+1)
使得Q(
theta
(i+1)
, theta
(i)
) >
Q(
theta
(i)
, theta
(i)
)
![](https://i-blog.csdnimg.cn/blog_migrate/0caec0ba24117b5c5429dac043fc09e3.png)
当参数
theta
的维数为d(d>=2)时,可采用一种特殊的GEM算法,它将EM
算法的M步分解为d次条件极大化,每次只改变参数向量的一个分量,其余分
量不改变。
![](https://i-blog.csdnimg.cn/blog_migrate/96b81a034a0c2ba3d05dd695b543bc88.png)
GEM算法的特点是每次迭代增加F函数值(并不一定是极大化F
函数),从而增加似然函数值。