EM算法推导及其收敛性证明

EM算法简介

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

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

EM算法

观测数据表示为 Y = ( Y 1 , Y 2 Y n ) T Y=(Y_1, Y_2\dots Y_n)^T ,未观测数据表示为 Z = ( Z 1 , Z 2 Z n ) T Z=(Z_1, Z_2\dots Z_n)^T ,则观测数据的似然函数为
(1) P ( Y θ ) = Z P ( Z θ ) P ( Y Z , θ ) P(Y|\theta) = \sum_ZP(Z|\theta)P(Y|Z,\theta)\tag{1}
考虑求模型参数 θ \theta 的对数极大似然估计,即
(2) θ ^ = a r g max θ log P ( Y θ ) \hat{\theta} = arg \max_{\theta} \log P(Y|\theta)\tag{2}
该问题没有解析解,只有通过迭代的方法求解。

EM算法首先选取参数的初值,记作 θ ( 0 ) \theta^{(0)} ,然后通过如下步骤迭代计算参数的估计值,直至收敛。第 i i 次迭代参数的估计值为 θ ( i ) \theta^{(i)} 。EM算法的第 i + 1 i+1 次迭代如下:

E步: 计算在模型参数 θ ( i ) \theta^{(i)} 下观测数据 y j y_j 的概率。

M步: 计算模型参数的新估计值。

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

EM算法通过迭代求 L ( θ ) = log P ( Y θ ) L(\theta)=\log P(Y|\theta) 的极大似然估计,每次迭代包含两步:E步,求期望;M步,求极大化。

算法1:(EM算法)

输入:观测变量数据 Y Y ,隐变量数据 Z Z ,联合分布 P ( Y , Z θ ) P(Y,Z|\theta) ,条件分布 P ( Z Y , θ ) P(Z|Y,\theta)

输出:模型参数 θ \theta

(1)选择参数的初值 θ ( 0 ) \theta^{(0)} ,开始迭代;

(2)E步:记 θ ( i ) \theta^{(i)} 为第 i i 次迭代参数 θ \theta 的估计值,在第 i + 1 i+1 次迭代的E步,计算
(3) Q ( θ , θ ( i ) ) = E Z [ log P ( Y , Z θ ) Y , θ ( i ) ] = Z ( log P ( Y , Z θ ) ) P ( Z Y , θ ( i ) ) Q(\theta, \theta^{(i)}) = E_Z[\log P(Y,Z|\theta)|Y,\theta^{(i)}] = \sum_Z\Big(\log P(Y,Z|\theta)\Big)P(Z|Y,\theta^{(i)}) \tag{3}
这里的 P ( Z Y , θ ( i ) ) P(Z|Y,\theta^{(i)}) 是在给定观测数据 Y Y 和当前的参数估计 θ ( i ) \theta^{(i)} 下隐变量数据 Z Z 的条件概率分布;

(3)M步:求使 Q ( θ , θ ( i ) ) Q(\theta, \theta^{(i)}) 极大化的 θ \theta ,确定第 i + 1 i+1 次迭代的参数估计值为 θ ( i + 1 ) \theta^{(i+1)}
(4) θ ( i + 1 ) = a r g max θ Q ( θ , θ ( i ) ) \theta^{(i+1)} = arg \max_{\theta} Q(\theta, \theta^{(i)}) \tag{4}

(4)重复第(2)步和第(3)步,直至收敛。

定义 Q函数

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

注意:

  • 参数的初值是可以任意选择的,但EM算法对初值是敏感的。
  • Q Q 中的第一个变元表示要极大化的参数,第二个变元表示参数的当前估计值。
  • 给出停止迭代的条件,一般是对较小的正数 ϵ 1 \epsilon_1 ϵ 2 \epsilon_2 ,若满足下述则停止迭代。
    θ ( i + 1 ) θ ( i ) < ϵ 1     Q ( θ ( i + 1 ) , θ ( i ) ) Q ( θ ( i ) , θ ( i ) ) < ϵ 2 ||\theta^{(i+1)} - \theta^{(i)}||<\epsilon_1\ 或\ ||Q(\theta^{(i+1)}, \theta^{(i)}) - Q(\theta^{(i)}, \theta^{(i)})||<\epsilon_2

EM算法的推导

我们面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据) Y Y 关于参数 θ \theta 的对数似然函数,即极大化
(5) L ( θ ) = log P ( Y θ ) = log Z P ( Y , Z θ ) = log ( Z P ( Y Z , θ ) P ( Z θ ) ) L(\theta) = \log P(Y|\theta) = \log \sum_Z P(Y,Z|\theta)=\log\Big(\sum_Z P(Y|Z,\theta)P(Z|\theta)\Big)\tag{5}
这一极大化的主要困难是式(5)中有未观测数据且有包含和(或积分)的对数。

EM算法是通过迭代逐步近似极大化 L ( θ ) L(\theta) 。假设在第 i i 次迭代后 θ \theta 的估计值是 θ ( i ) \theta^{(i)} 。我们希望新估计值 θ \theta 能使 L ( θ ) L(\theta) 增加,即 L ( θ ) > L ( θ ( i ) ) L(\theta)>L(\theta^{(i)}) ,并逐步达到极大值。因此我们考虑两者之差:
L ( θ ) L ( θ ( i ) ) = log ( Z P ( Y Z , θ ) P ( Z θ ) ) log P ( Y θ ( i ) ) L(\theta)-L(\theta^{(i)}) = \log \Big(\sum_Z P(Y|Z,\theta)P(Z|\theta)\Big) - \log P(Y|\theta^{(i)})
根据Jensen不等式得到其下界:(log函数显然为凹函数)
L ( θ ) L ( θ ( i ) ) = log ( Z P ( Z Y , θ ( i ) ) P ( Y Z , θ ) P ( Z θ ) P ( Z Y , θ ( i ) ) ) log P ( Y θ ( i ) ) Z P ( Z Y , θ ( i ) ) log P ( Y Z , θ ) P ( Z θ ) P ( Z Y , θ ( i ) ) log P ( Y θ ( i ) ) = Z P ( Z Y , θ ( i ) ) log P ( Y Z , θ ) P ( Z θ ) P ( Z Y , θ ( i ) ) P ( Y θ ( i ) ) \begin{aligned} L(\theta)-L(\theta^{(i)}) &= \log \Big(\sum_Z P(Z|Y,\theta^{(i)}) \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}\Big) - \log P(Y|\theta^{(i)})\\ &\geq \sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})} - \log P(Y|\theta^{(i)})\\ &=\sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)}) P(Y|\theta^{(i)})} \end{aligned}

(6) B ( θ , θ ( i ) ) = ^ L ( θ ( i ) ) + Z P ( Z Y , θ ( i ) ) log P ( Y Z , θ ) P ( Z θ ) P ( Z Y , θ ( i ) ) P ( Y θ ( i ) ) B(\theta, \theta^{(i)}) \hat{=} L(\theta^{(i)}) + \sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\tag{6}
则有
(7) L ( θ ) B ( θ , θ ( i ) ) L(\theta)\geq B(\theta, \theta^{(i)})\tag{7}
即函数 B ( θ , θ ( i ) ) B(\theta, \theta^{(i)}) 使 L ( θ ) L(\theta) 的一个下界,而且由式(6)可知
(8) L ( θ ( i ) ) = B ( θ ( i ) , θ ( i ) ) L(\theta^{(i)})= B(\theta^{(i)}, \theta^{(i)})\tag{8}
因此,任何可以使 B ( θ , θ ( i ) ) B(\theta, \theta^{(i)}) 增大的 θ \theta ,也可以使 L ( θ ) L(\theta) 增大,为 了使 L ( θ ) L(\theta) 有尽可能大的增长,选择 θ ( i + 1 ) \theta^{(i+1)} 使 B ( θ , θ ( i ) ) B(\theta, \theta^{(i)}) 达到极大值,即
(9) θ ( i + 1 ) = a r g max θ B ( θ , θ ( i ) ) \theta^{(i+1)} = arg \max_{\theta} B(\theta, \theta^{(i)}) \tag{9}
现求 θ ( i + 1 ) \theta^{(i+1)} 的表达式,省去对 θ \theta 极大化而言是常数的项,
θ ( i + 1 ) = a r g max θ ( L ( θ ( i ) ) + Z P ( Z Y , θ ( i ) ) log P ( Y Z , θ ) P ( Z θ ) P ( Z Y , θ ( i ) ) P ( Y θ ( i ) ) ) = a r g max θ ( Z P ( Z Y , θ ( i ) ) log P ( Y Z , θ ) P ( Z θ ) ) = a r g max θ ( Z P ( Z Y , θ ( i ) ) log P ( Y , Z θ ) ) = a r g max θ Q ( θ , θ ( i ) ) \begin{aligned} \theta^{(i+1)} &= arg \max_{\theta}\Big(L(\theta^{(i)}) + \sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\Big)\\ &= arg \max_{\theta}\Big(\sum_Z P(Z|Y,\theta^{(i)}) \log P(Y|Z,\theta)P(Z|\theta)\Big)\\ &=arg \max_{\theta}\Big(\sum_Z P(Z|Y,\theta^{(i)}) \log P(Y,Z|\theta)\Big)\\ &= arg \max_{\theta} Q(\theta, \theta^{(i)}) \end{aligned}
式(10)等价于EM算法的一次迭代,即求 Q Q 函数及其极大化,EM算不断求解下界的极大化逼近求解对数似然函数极大化的算法。
EM推导.jpg

EM算法的收敛性

定理

P ( Y θ ) P(Y|\theta) 为观测数据的似然函数, θ ( i ) \theta^{(i)} 为EM算法得到的参数估计序列, P ( Y θ ( i ) ) P(Y|\theta^{(i)}) 为对应的似然函数序列,则 P ( Y θ ( i ) ) P(Y|\theta^{(i)}) 是单调递增的,即
(11) P ( Y θ ( i + 1 ) ) P ( Y θ ( i ) ) P(Y|\theta^{(i+1)})\geq P(Y|\theta^{(i)}) \tag{11}

证明:
由于
P ( Y θ ) = P ( Y , Z θ ) P ( Z Y , θ ) P(Y|\theta) = \frac{P(Y,Z|\theta)}{P(Z|Y,\theta)}
取对数有
log P ( Y θ ) = log P ( Y , Z θ ) P ( Z Y , θ ) = log P ( Y , Z θ ) log P ( Z Y , θ ) \log P(Y|\theta) = \log \frac{P(Y,Z|\theta)}{P(Z|Y,\theta)} = \log P(Y,Z|\theta) - \log P(Z|Y,\theta)
Q Q 函数定义可知
Q ( θ , θ ( i ) ) = Z P ( Z Y , θ ( i ) ) log P ( Y , Z θ ) Q(\theta, \theta^{(i)}) = \sum_Z P(Z|Y,\theta^{(i)}) \log P(Y,Z|\theta)

H ( θ , θ ( i ) ) = Z P ( Z Y , θ ( i ) ) log P ( Z Y , θ ) H(\theta, \theta^{(i)}) = \sum_Z P(Z|Y,\theta^{(i)}) \log P(Z|Y,\theta)
所以
(12) log P ( Y θ ) = ( Z P ( Z Y , θ ( i ) ) ) ( log P ( Y , Z θ ) log P ( Z Y , θ ) ( ) ) = Z P ( Z Y , θ ( i ) ) log P ( Y , Z θ ) Z P ( Z Y , θ ( i ) ) log P ( Z Y , θ ) ) = Q ( θ , θ ( i ) ) H ( θ , θ ( i ) ) \begin{aligned} \log P(Y|\theta) &= \Big(\sum_Z P(Z|Y, \theta^{(i)})\Big) \Big(\log P(Y,Z|\theta) - \log P(Z|Y,\theta)\Big())\\ &= \sum_Z P(Z|Y, \theta^{(i)}) \log P(Y,Z|\theta) - \sum_Z P(Z|Y, \theta^{(i)}) \log P(Z|Y,\theta)\Big) \\ &= Q(\theta, \theta^{(i)}) - H(\theta, \theta^{(i)}) \tag{12} \end{aligned}
在式(2)中选取 θ \theta θ ( i ) \theta^{(i)} 相减得:
(13) log P ( Y θ ) log P ( Y θ ( i ) ) = ( Q ( θ , θ ( i ) ) Q ( θ ( i ) , θ ( i ) ) ) ( H ( θ , θ ( i ) ) H ( θ ( i ) , θ ( i ) ) ) \log P(Y|\theta) - \log P(Y|\theta^{(i)}) = \Big(Q(\theta, \theta^{(i)}) - Q(\theta^{(i)}, \theta^{(i)})\Big) - \Big(H(\theta, \theta^{(i)}) - H(\theta^{(i)}, \theta^{(i)})\Big) \tag{13}
在EM算法中,我们要极大化 Q Q 函数,所以式(3)右边得第一项 Q ( θ , θ ( i ) ) Q ( θ ( i ) ) 0 Q(\theta, \theta^{(i)}) - Q(\theta^{(i)}) \geq 0 ,欲证 log ( Y θ ) log ( Y θ ( i ) ) \log (Y|\theta) \geq \log (Y|\theta^{(i)}) ,只需证式(3)右边非负。

H ( θ , θ ( i ) ) H ( θ ( i ) , θ ( i ) ) = Z P ( Z Y , θ ( i ) ) log P ( Z Y , θ ) Z P ( Z Y , θ ( i ) ) log P ( Z Y , θ ( θ ) ) = Z P ( Z Y , θ ( i ) ) log P ( Z Y , θ ) P ( Z Y , θ ( i ) ) log ( Z P ( Z Y , θ ( i ) ) P ( Z Y , θ ) P ( Z Y , θ ( i ) ) ) = log Z P ( Z Y , θ ) = 0 \begin{aligned} H(\theta, \theta^{(i)}) - H(\theta^{(i)}, \theta^{(i)}) &= \sum_Z P(Z|Y,\theta^{(i)}) \log P(Z|Y,\theta) - \sum_Z P(Z|Y,\theta^{(i)}) \log P(Z|Y,\theta^{(\theta)}) \\ &= \sum_Z P(Z|Y,\theta^{(i)}) \log \frac{P(Z|Y,\theta)}{P(Z|Y,\theta^{(i)})}\\ &\leq \log \Big(\sum_Z P(Z|Y,\theta^{(i)})\frac{P(Z|Y,\theta)}{P(Z|Y,\theta^{(i)})}\Big)\\ &=\log \sum_Z P(Z|Y,\theta) = 0 \end{aligned}

所以
log P ( Y θ ) log P ( Y θ ( i ) ) \log P(Y|\theta) \geq \log P(Y|\theta^{(i)})
#证毕.
98d48363143b843b3815e7f6a019af0.jpg

猜你喜欢

转载自blog.csdn.net/JN_rainbow/article/details/84337504