EM算法
本文中,若无特殊说明,使用 Y,y 表示观测变量,使用 Z,z 表示隐藏变量, θ 表示模型参数。
EM算法
为什么使用EM?
概率模型有时既包含观测变量,也包含隐变量(或潜在变量)。
如果模型只包含观测变量,则我们可以通过最大化对数似然
l(θ)
来得到
θ
:
如果模型包含隐变量,则(1)式变化为:
这里,因为极大似然概率是隐变量和观测变量联合概率求和的对数,很难求解,那怎么办?
下面就是EM的解决方案,EM不是直接求解,而是使用一个迭代过程来不断的逼近
l(θ)
的局部最大值(EM算法的解和初值选择是有关系的),从而得到
θ
的近似解。
两个事实
在说EM算法之前,我们需要知道以下两个事实:
- 对于
P(Y,Z|θ)
,如果观测变量
Y
和隐变量
Z 已知,即只有一个未知变量 θ ,那么我们可以通过极大似然概率的最大化来得到 θ 的解。 - 对于
P(Z|Y,θ)
,如果观测变量
Y
和模型参数
θ 已知,那么这个概率值也是可以计算出来的,即我们会得到 p(z1),p(z2),...,p(zn),(zi∈Z) 。
EM算法过程
下面是EM算法迭代求解 θ 的过程:
- 选择模型参数的初值 θ(0) ,开始迭代。
- E步:记
θ(i)
为第
i
次迭代参数
θ 的估计值,则第 i+1 次迭代的E步(求解期望值),计算:Q(θ,θ(i))=EZ[log P(Y,Z|θ)|Y,θ(i)](3)上式是在已知观测变量 Y 和模型的估计参数θ(i) 条件下求解 log P(Y,Z|θ) 的期望,我们根据事实2可以得到隐变量 Z 的概率分布,所以(3)式可以进一步转化为:细心的读者发现了,这个式子不就是一个加权平均吗?我们再将(4)式的含义屡一下:首先在第 i 次求得观测变量Q(θ,θ(i))=EZ[log P(Y,Z|θ)P(Z|Y,θ(i))](4) Y 和模型参数 θ(i) 的条件下,我们得到了隐变量 Z 的概率分布,现在我们可以当做Z 是已知的了,这个表达式现在只有一个未知变量 θ ,然后我们是不是可以根据事实1来得到 θ 的解? - M步:在算法第2步中,我们可以使用事实1来得到
θ
的解,这个解就是第
i+1
次的模型参数
θ(i+1)
的估计值:
θ(i+1)=argmaxθQ(θ,θ(i))(5)我们将这个过程重新屡一下:我们利用第 i 次迭代的模型参数估计值得到了第
i+1 次模型参数的估计值。 - 接下来就是不断重复算法的第2步和第3步,直到 θ 的估计值收敛。
三个问题
到现在,我们可能都会有三个问题:
- 为什么我们求解的是(2)式,我们却用(3)式进行迭代?(3)式是经过一系列的数学推导得到的,即这个迭代是有效的,具体请见本文EM算法的导出部分。
- 我们怎么能够保证在迭代的过程中 θ 会不断接近真实解?我们怎么能够保证迭代的过程收敛?我们也是通过一系列的数学推导得到的,具体请见本文EM算法收敛性证明部分。
- EM算法怎么使用?一些概率我们写着可以得到,但是具体是怎么得到的?为了加深熟练EM算法,可以笔者的其他文章如EM算法在高斯混合模型中的应用,隐马尔科夫链等。
EM算法的导出
对包含隐变量的概率模型,我们的目标是极大化观测变量
Y
对模型参数
由于EM算法是通过迭代逐步近似极大化 l(θ) 的,假设第 i 次迭代后
(8)式到(9)式使用Jensen不等式得到。
Jensen不等式:
log∑jλjyj⩾∑jλjlog yj其中 λj⩾0,∑jλj=1.
令:
则:
即 B(θ,θ(i)) 是 l(θ) 的一个下界,由式(10)可以得到:
因此,任何使 B(θ,θ(i)) 增大的 θ ,也可以使 l(θ) 增大。为了使 l(θ) 有尽可能大的增长,选择 θ(i+1) 使 B(θ,θ(i)) 达到最大,即:
现在求 θ(i+1) 的表达式,省略对 θ 的极大化而言是常数的项:
现在是不是得到了E步中的迭代表达式?即:
到此我们的推导已经结束。
EM算法收敛性证明
定理1:设 P(Y|θ) 为观测数据的似然函数, θ(i)(i=1,2,...) 为EM算法得到的参数估计序列, P(Y|θ(i))(i=1,2,...) 为对数似然函数序列,则 P(Y|θ(i)) 是单调递增的,即:
参考
[1]: 李航 《统计学习方法》
[2]: Kevin P. Murphy 《Machine Learning: A Probabilistic Perspective》