相关文章:
本文大部分内容搬运自李航老师的《统计学习方法》[1],以给出 EM 算法较为完整的定义。
EM 算法
EM 算法
是一种迭代算法,1977 年由 Dempster 等人总结提出,用于含有隐变量
(hidden variable)的概率模型参数的极大似然估计
,或极大后验估计。
EM 算法的每次迭代由两步组成:E 步:求期望(expectation);M 步:求极大(maximization)。所以这一算法称为期望极大算法
(expectation maximization algorithm, EM)。
1. EM 算法的引入
概率模型有时即含有观测数据
(observable varible,已知),又含有隐变量
或潜在变量
(latent varible,未知),如果概率模型的变量都是观测变量,那么给定数据,可以直接使用极大似然估计,或贝叶斯估计法估计模型参数。但是,当模型含有隐变量时,就不能简单地使用这些估计方法。EM 算法就是含有隐变量的概率模型参数的极大似然估计。
三硬币模型
假设有三枚硬币,分别记作 A,B,C。这些硬币正面出现的概率分别是 π \pi π, p p p 和 q q q。进行如下掷硬币试验:
先掷硬币 A ,若为正面则选硬币 B ,若为反面则选硬币 C ;然后掷 A 选出的硬币( B 或 C ),若为正面则记作 1,若为反面则记作 0,试验结束。
独立重复试验 n n n 次(这里 n = 10 n=10 n=10),观测结果如下:
1 , 1 , 0 , 1 , 0 , 0 , 1 , 0 , 1 , 1 1,1,0,1,0,0,1,0,1,1 1,1,0,1,0,0,1,0,1,1
假设只能观测到掷硬币的结果,不能观测掷硬币的过程,问如何估计三硬币正面出现的概率,即三硬币模型的参数。
解 三硬币模型可以写作:
P ( y ∣ θ ) = ∑ z P ( y , z ∣ θ ) = ∑ z P ( z ∣ θ ) P ( y ∣ z , θ ) = π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y (1) \begin{aligned} P(y | \theta) &=\sum_{z} P(y, z | \theta)=\sum_{z} P(z | \theta) P(y | z, \theta) \\ &=\pi p^{y}(1-p)^{1-y}+(1-\pi) q^{y}(1-q)^{1-y} \end{aligned} \tag{1} P(y∣θ)=z∑P(y,z∣θ)=z∑P(z∣θ)P(y∣z,θ)=πpy(1−p)1−y+(1−π)qy(1−q)1−y(1)
这里,随机变量 y y y 是观测变量,表示一次试验观测的结果是 1 或 0;随机变量 z z z 是隐变量,表示未观测到的掷硬币 A 的结果; θ = ( π , p , q ) \theta=(\pi,p,q) θ=(π,p,q) 是模型参数。这一模型是以上数据的生成模型。注意,随机变量 y y y 的数据可以观测,随机变量 z z z 的数据不可观测。
将观测数据表示为 Y = ( Y 1 , Y 2 , . . . , Y n ) T Y=(Y_1,Y_2,...,Y_n)^T Y=(Y1,Y2,...,Yn)T ,未观测数据表示为 Z = ( Z 1 , Z 2 , . . . , Z n ) T Z=(Z_1,Z_2,...,Z_n)^T Z=(Z1,Z2,...,Zn)T,则观测数据的似然函数为:
P ( Y ∣ θ ) = ∑ Z P ( Z ∣ θ ) P ( Y ∣ Z , θ ) (2) P(Y|\theta)=\sum_Z P(Z|\theta)P(Y|Z,\theta) \tag{2} P(Y∣θ)=Z∑P(Z∣θ)P(Y∣Z,θ)(2)
即
P ( Y ∣ θ ) = ∏ j = 1 n [ π p y j ( 1 − p ) 1 − y j + ( 1 − π ) q y j ( 1 − q ) 1 − y j ] (3) P(Y | \theta)=\prod_{j=1}^{n}\left[\pi p^{y_{j}}(1-p)^{1-y_{j}}+(1-\pi) q^{y_{j}}(1-q)^{1-y_{j}}\right] \tag{3} P(Y∣θ)=j=1∏n[πpyj(1−p)1−yj+(1−π)qyj(1−q)1−y