学习李航《统计学习方法》时关于 EM 算法的笔记
概率模型中有时候同时包含观测变量(observable variable)和隐变量(潜在变量,latent variable)。
首先给出一个抛硬币的例子,之后算法的解释会更形象一些。
例(三硬币模型):假设有三枚硬币,分别记为 A、B 和 C,其抛一次出现正面的概率分别为 π \pi π 、 p p p 和 q q q 。进行如下抛硬币实验:
独立地重复 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
假设只能观测到实验结果(即观测变量),而不能观测抛硬币的过程(这里硬币 A 的结果就是隐变量),问如何估计三硬币正面出现的概率 π \pi π 、 p p p 和 q q q (即模型的参数)
解:三硬币模型可以写作:
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 \begin{aligned} P(y|\theta)=&\,\sum\limits_{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} P(y∣θ)==z∑P(y,z∣θ)=z∑P(z∣θ)P(y∣z,θ)πpy(1−p)1−y+(1−π)qy(1−q)1−y
以向量形式表示 n n n 次实验结果,观测数据 Y = ( Y 1 , Y 2 , ⋯ , Y n ) T Y=(Y_1,\,Y_2,\,\cdots,\,Y_n)^T Y=(Y1,Y2,⋯,Yn)T ,隐变量 Z = ( Z 1 , Z 2 , ⋯ , Z n ) T Z=(Z_1,\,Z_2,\,\cdots,\,Z_n)^T Z=(Z1,Z2,⋯,Zn)T ;
则观测数据的似然函数为:
P ( Y ∣ θ ) = ∑ Z P ( Z ∣ θ ) P ( Y ∣ Z , θ ) P(Y|\theta)=\sum_{Z}P(Z|\theta)P(Y|Z,\,\theta) \\ P(Y∣θ)=Z∑P(Z∣θ)P(Y∣Z,θ)
这里 Y = ( 1 , 1 , 0 , 1 , 0 , 0 , 1 , 0 , 1 , 1 ) T Y=(1,\,1,\,0,\,1,\,0,\,0,\,1,\,0,\,1,\,1)^T Y=(1,1,0,1,0,0,1,0,1,1)T ,每个 Z i Z_i Zi 都可能为 0 或 1,对 Z Z Z 求和就相当于遍历 Z Z Z 的排列组合的所有可能的情况,一共有 2 n 2^n 2n 种。但这个向量形式的式子其实不好列,我们还是对向量的每一项列出式子来,或者说按照乘法原理对每一次实验列式子出来,即:
P ( Y ∣ θ ) = ∏ i = 1 n ( ∑ z i P ( z i ∣ θ ) P ( y i ∣ z i , θ ) ) P(Y|\theta)=\prod_{i=1}^{n}\left(\sum_{z_{i}}P(z_i|\theta)P(y_i|z_i,\,\theta)\right) P(Y∣θ)=i=1∏n(zi∑P(zi∣θ)P(yi∣zi,θ))
这相当于将得到每个 y i y_i yi 的概率乘在一起,得到:
P ( Y ∣ θ ) = ∏ i = 1 n ( π p y i ( 1 − p ) 1 − y i + ( 1 − π ) q y i ( 1 − q ) 1 − y i ) P(Y|\theta)=\prod_{i=1}^{n}\left(\pi p^{y_i}(1-p)^{1-y_i} + (1-\pi) q^{y_i}(1-q)^{1-y_i}\right) P(Y∣θ)=i=1∏n(πpyi(1−p)1−yi+(1−π)qyi(1−q)1−yi)
我们考虑求模型参数 θ = ( π , p , q ) \theta=(\pi,\,p,\,q) θ=(π,p,q) 的极大似然估计,即:
θ ^ = arg max θ log P ( Y ∣ θ ) \hat{\theta}=\arg \max_{\theta} \log P(Y|\theta) θ^=argθmaxlogP(Y∣θ)
书上说这个问题没有解析解(咱也不知道为啥),只能通过迭代的方式求解。这里给出这个问题的 EM 算法,具体推导在后边有:
首先选取参数的初始值, θ ( 0 ) = ( π ( 0 ) , p ( 0 ) , q ( 0 ) ) \theta^{(0)}=(\pi^{(0)},\,p^{(0)},\,q^{(0)}) θ(0)=(π(0),p(0),q(0)) ,然后反复执行以下两步,直到参数收敛;设第 i i i 次迭代得到的参数为 θ ( i ) = ( π ( i ) , p ( i ) , q ( i ) ) \theta^{(i)}=(\pi^{(i)},\,p^{(i)},\,q^{(i)}) θ(i)=(π(i),p(i),q(i)) ,第 i + 1 i+1 i+1 次迭代为:
μ j ( i + 1 ) = π ( i ) ( p ( i ) ) y j ( 1 − p ( i ) ) 1 − y j π ( i ) ( p ( i ) ) y j ( 1 − p ( i ) ) 1 − y j + ( 1 − π ( i ) ) ( q ( i ) ) y j ( 1 − q ( i ) ) 1 − y j \mu_j^{(i+1)}= \frac{\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j}} {\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j} + (1-\pi^{(i)}) (q^{(i)})^{y_j}(1-q^{(i)})^{1-y_j}} μj(i+1)=π(i)(p(i))yj(1−p(i))1−yj+(1−π(i))(q(i))yj(1−q(i))1−yjπ(i)(p(i))yj(1−p(i))1−yj
π ( i + 1 ) = 1 n ∑ j = 1 n μ j ( i + 1 ) p ( i + 1 ) = ∑ j = 1 n μ j ( i + 1 ) y j ∑ j = 1 n μ j ( i + 1 ) q ( i + 1 ) = ∑ j = 1 n ( 1 − μ j ) ( i + 1 ) y j ∑ j = 1 n ( 1 − μ j ) ( i + 1 ) \begin{aligned} \pi^{(i+1)}=&\,\frac{1}{n}\sum\limits_{j=1}^{n}\mu_j^{(i+1)} \\ p^{(i+1)}=&\,\frac{\sum\limits_{j=1}^{n}\mu_j^{(i+1)}y_j}{\sum\limits_{j=1}^{n}\mu_j^{(i+1)}} \\ q^{(i+1)}=&\,\frac{\sum\limits_{j=1}^{n}(1-\mu_j)^{(i+1)}y_j}{\sum\limits_{j=1}^{n}(1-\mu_j)^{(i+1)}} \\ \end{aligned} π(i+1)=p(i+1)=q(i+1)=n1j=1∑nμj(i+1)j=1∑nμj(i+1)j=1∑nμj(i+1)yjj=1∑n(1−μj)(i+1)j=1∑n(1−μj)(i+1)yj
例如:
已经收敛了。但是,如果初值是 π ( 0 ) = 0.4 \pi^{(0)}=0.4 π(0)=0.4 , p ( 0 ) = 0.6 p^{(0)}=0.6 p(0)=0.6 , q ( 0 ) = 0.7 q^{(0)}=0.7 q(0)=0.7 ,则最终估计值为 π ^ = 0.4064 \hat\pi=0.4064 π^=0.4064 , p ^ = 0.5368 \hat p=0.5368 p^=0.5368 , q ^ = 0.6432 \hat q=0.6432 q^=0.6432 ,说明 EM 算法的与初值的选择有关。
EM 算法:通过迭代求 L ( θ ) = log P ( Y ∣ θ ) L(\theta)=\log P(Y|\theta) L(θ)=logP(Y∣θ) 的极大似然估计;由于每次迭代包含两步:E 步求期望,M 步求极大化,因此称为 EM 算法。
输入:观测变量数据 Y Y Y ,隐变量数据 Z Z Z ,联合分布 P ( Y , Z ∣ θ ) P(Y,\,Z|\theta) P(Y,Z∣θ) ,条件分布 P ( Z ∣ Y , θ ) P(Z|Y,\,\theta) P(Z∣Y,θ) ;
输出:模型参数 θ \theta θ ;
① 选择模型参数的初始值 θ ( 0 ) \theta^{(0)} θ(0) ;
② E 步:记 θ ( i ) \theta^{(i)} θ(i) 为第 i i i 次迭代时参数 θ \theta θ 的估计值,则第 i + 1 i+1 i+1 次迭代时,计算:
Q ( θ , θ ( i ) ) = E Z [ log P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ Z log P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) \begin{aligned} Q(\theta,\,\theta^{(i)})=&\,E_Z[\log P(Y,\,Z|\theta)|Y,\,\theta^{(i)}] \\ =&\, \sum_Z\log P(Y,\,Z|\theta)P(Z|Y,\,\theta^{(i)}) \end{aligned} Q(θ,θ(i))==EZ[logP(Y,Z∣θ)∣Y,θ(i)]Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))
这里 Y Y Y 和 θ ( i ) \theta^{(i)} θ(i) 是已知的, Q Q Q 函数是关于 θ \theta θ 的函数,相当于在 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\,\theta^{(i)}) P(Z∣Y,θ(i)) 的概率测度下,计算以 θ \theta θ 为参数的模型中 log P ( Y , Z ∣ θ ) \log P(Y,\,Z|\theta) logP(Y,Z∣θ) 的期望(有一点点绕)。
③ M 步:求使得 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i)) 极大化的 θ \theta θ ,作为本次迭代的估计值 θ ( i + 1 ) \theta^{(i+1)} θ(i+1) ,即:
θ ( i + 1 ) = arg max θ Q ( θ , θ ( i + 1 ) ) \theta^{(i+1)}=\arg \max_{\theta} Q(\theta,\,\theta^{(i+1)}) θ(i+1)=argθmaxQ(θ,θ(i+1))
④ 重复迭代 ② 和 ③ ,直到参数收敛,可以是取较小的正数 ε 1 \varepsilon_1 ε1 和 ε 2 \varepsilon_2 ε2 ,使得:
∣ ∣ θ ( i + 1 ) − θ ( i ) ∣ ∣ < ε 1 或 ∣ ∣ Q ( θ ( i + 1 ) , Q ( i ) ) − Q ( θ ( i ) , Q ( i ) ) ∣ ∣ < ε 2 ||\theta^{(i+1)}-\theta^{(i)}||\lt \varepsilon_1 \quad\text{或}\quad ||Q(\theta^{(i+1)},\,Q^{(i)})-Q(\theta^{(i)},\,Q^{(i)})||<\varepsilon_2 ∣∣θ(i+1)−θ(i)∣∣<ε1或∣∣Q(θ(i+1),Q(i))−Q(θ(i),Q(i))∣∣<ε2
Q Q Q 函数:是 EM 算法的核心,是完全数据的对数似然函数 log P ( Y , Z ∣ θ ) \log P(Y,\,Z|\theta) logP(Y,Z∣θ) 关于在给定观测数据 Y Y Y 和当前参数 θ ( i ) \theta^{(i)} θ(i) 下对为观测数据 Z Z Z 的条件概率分布 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\,\theta^{(i)}) P(Z∣Y,θ(i)) 的期望称为 Q 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)}] Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]
如果直接理解 Q Q Q 函数的意义有点困难的话,我们可以先来看这个式子:
E Z [ Z ∣ Y , θ ( i ) ] E_Z[Z|Y,\,\theta^{(i)}] EZ[Z∣Y,θ(i)]
这个式子相当于给定观测结果 Y Y Y 和模型当前的参数 θ ( i ) \theta^{(i)} θ(i) ,对于某一种隐变量的情况 Z = z Z=z Z=z ,我们可以算出它的概率 P ( Z = z ∣ Y , θ ( i ) ) P(Z=z|Y,\,\theta^{(i)}) P(Z=z∣Y,θ(i)) (比如说已知抛硬币的最终结果和三种硬币得到正面的概率,我们可以算出中间过程究竟是选择硬币 B 还是硬币 C 的概率;可能会用到贝叶斯公式)。既然存在这样的概率,那我们就可以算出 Z Z Z 的期望,即上面的式子:
E Z [ Z ∣ Y , θ ( i ) ] = ∑ z z P ( Z = z ∣ Y , θ ( i ) ) (假设是离散的情况) E_Z[Z|Y,\,\theta^{(i)}] = \sum_{z} zP(Z=z|Y,\,\theta^{(i)}) \quad\text{(假设是离散的情况)} EZ[Z∣Y,θ(i)]=z∑zP(Z=z∣Y,θ(i))(假设是离散的情况)
接着, log P ( Y , Z ∣ θ ) \log P(Y,\,Z|\theta) logP(Y,Z∣θ) 相当于是已知观测数据 Y Y Y 和把模型参数 θ \theta θ 当作已知( θ \theta θ 是个变量,实际上未知)的情况下,得到完全数据 Y Y Y 和 Z Z Z 的结果的概率。即对于某一种隐变量的情况 Z = z Z=z Z=z , log P ( Y , Z ∣ θ ) \log P(Y,\,Z|\theta) logP(Y,Z∣θ) 是一个关于 θ \theta θ 的函数。同时,我们这里把模型参数 θ \theta θ 当作已知,则 log P ( Y , Z ∣ θ ) \log P(Y,\,Z|\theta) logP(Y,Z∣θ) 也可以看成是变量 Z Z Z 的函数。我们对这个 Z Z Z 的函数求期望,就得到了:
Q ( θ , θ ( i ) ) = E Z [ log P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ z log P ( Y , Z = z ∣ θ ) P ( Z = z ∣ Y , θ ( i ) ) (对这个 Z 的函数求期望) = ∑ Z log P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) (等价于这种写法) \begin{aligned} Q(\theta,\,\theta^{(i)})=&\,E_Z[\log P(Y,\,Z|\theta)|Y,\,\theta^{(i)}] \\ =&\,\sum_z\log P(Y,\,Z=z|\theta)P(Z=z|Y,\,\theta^{(i)}) \quad\text{(对这个$Z$的函数求期望)}\\ =&\,\sum_Z\log P(Y,\,Z|\theta)P(Z|Y,\,\theta^{(i)}) \quad\text{(等价于这种写法)} \end{aligned} Q(θ,θ(i))===EZ[logP(Y,Z∣θ)∣Y,θ(i)]z∑logP(Y,Z=z∣θ)P(Z=z∣Y,θ(i))(对这个Z的函数求期望)Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))(等价于这种写法)
这与上面关于 EM 算法的描述中,对 Q Q Q 函数的定义是等价的。
面对一个含有隐变量的概率模型,我们的目标是找到一个参数 θ \theta θ (当然, θ \theta θ 是一个向量,可能包含多个参数),使得从该模型得到观测数据 Y Y Y 的概率极大化,等同于极大化观测数据 Y Y Y 关于参数 θ \theta θ 的对数似然函数:
L ( θ ) = log P ( Y ∣ θ ) = log ∑ Z P ( Y , Z ∣ θ ) = log ( ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) \begin{aligned} L(\theta)=&\,\log P(Y|\theta)=\log \sum_ZP(Y,\,Z|\theta) \\ =&\,\log \left( \sum_Z P(Y|Z,\,\theta)P(Z|\theta) \right) \end{aligned} L(θ)==logP(Y∣θ)=logZ∑P(Y,Z∣θ)log(Z∑P(Y∣Z,θ)P(Z∣θ))
这个函数相当于要遍历 Z Z Z 的各种情况,然后求和,所以比较困难。EM 算法则是通过迭代逐步近似最大化 L ( θ ) L(\theta) L(θ) 的。假设第 i i i 次迭代后得到的估计值是 θ ( i ) \theta^{(i)} θ(i) ,我们希望重新估计一个 θ \theta θ 使得 L ( θ ) L(\theta) L(θ) 比前一个估计值更大,即 L ( θ ) > L ( θ ( i ) ) L(\theta) \gt L(\theta^{(i)}) L(θ)>L(θ(i)) ,因此,考虑二者的差:
L ( θ ) − L ( θ ( i ) ) = log ( ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) − log P ( Y ∣ θ ( i ) ) L(\theta)-L(\theta^{(i)})=\log \left( \sum_Z P(Y|Z,\,\theta)P(Z|\theta) \right)-\log P(Y|\theta^{(i)}) L(θ)−L(θ(i))=log(Z∑P(Y∣Z,θ)P(Z∣θ))−logP(Y∣θ(i))
根据 Jensen 不等式,因为 log \log log 是个 concave function,因此有:
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 ) ) − ∑ Z P ( Z ∣ Y , θ ( i ) ) log P ( Y ∣ θ ( i ) ) = ∑ Z P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) \begin{aligned} L(\theta)-L(\theta^{(i)}) =&\,\log \left( \sum_Z P(Z|Y,\,\theta^{(i)}) \frac{P(Y|Z,\,\theta)P(Z|\theta)}{P(Z|Y,\,\theta^{(i)})} \right)-\log P(Y|\theta^{(i)}) \\ \ge &\, \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)})} - \sum_Z P(Z|Y,\,\theta^{(i)})\log P(Y|\theta^{(i)}) \\ =&\,\sum_Z P(Z|Y,\,\theta^{(i)})\frac{P(Y|Z,\,\theta)P(Z|\theta)}{P(Z|Y,\,\theta^{(i)})P(Y|\theta^{(i)})} \end{aligned} L(θ)−L(θ(i))=≥==log(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ))−logP(Y∣θ(i))Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)−Z∑P(Z∣Y,θ(i))logP(Y∣θ(i))Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)
log ∑ j λ j y j ≥ ∑ j λ j log y i 其中 λ j ≥ 0 , ∑ j λ j = 1 \log\sum_{j}\lambda_jy_j\geq \sum_j \lambda_j\log y_i \quad\text{其中 }\lambda_j\geq0,\,\sum_j\lambda_j=1 logj∑λjyj≥j∑λjlogyi其中 λj≥0,j∑λj=1
记一个新的函数为:
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)})=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)})} B(θ,θ(i))=L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)
则:
L ( θ ) ≥ B ( θ , θ ( i ) ) L(\theta) \ge B(\theta,\,\theta^{(i)}) L(θ)≥B(θ,θ(i))
即 B ( θ , θ ( i ) ) B(\theta,\,\theta^{(i)}) B(θ,θ(i)) 是 L ( θ ) L(\theta) L(θ) 的一个下界。并且对于 B ( θ ( i ) , θ ( i ) ) B(\theta^{(i)},\,\theta^{(i)}) B(θ(i),θ(i)) ,有:(这是条件概率的公式)
{ P ( Y ∣ Z , θ ( i ) ) P ( Z ∣ θ ( i ) ) = P ( Y , Z ∣ θ ( i ) ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) = P ( Y , Z ∣ θ ( i ) ) \left\{ \begin{array}{l} P(Y|Z,\,\theta^{(i)})P(Z|\theta^{(i)})=P(Y,\,Z|\theta^{(i)}) \\ P(Z|Y,\,\theta^{(i)})P(Y|\theta^{(i)})=P(Y,\,Z|\theta^{(i)}) \end{array} \right. {P(Y∣Z,θ(i))P(Z∣θ(i))=P(Y,Z∣θ(i))P(Z∣Y,θ(i))P(Y∣θ(i))=P(Y,Z∣θ(i))
故 B ( θ ( i ) , θ ( i ) ) = L ( θ ( i ) ) B(\theta^{(i)},\,\theta^{(i)})=L(\theta^{(i)}) B(θ(i),θ(i))=L(θ(i)) 。因此,任何可以使得 B ( θ , θ ( i ) ) B(\theta,\,\theta^{(i)}) B(θ,θ(i)) 增大的 θ \theta θ ,都可以使得 L ( θ ) L(\theta) L(θ) 增大,我们选择 θ \theta θ 使得 B ( θ , θ ( i ) ) B(\theta,\,\theta^{(i)}) B(θ,θ(i)) 达到极大,即:
θ ( i + 1 ) = arg max θ B ( θ , θ ( i ) ) \theta^{(i+1)}=\arg\max_{\theta}B(\theta,\,\theta^{(i)}) θ(i+1)=argθmaxB(θ,θ(i))
有:
θ ( i + 1 ) = arg max θ B ( θ , θ ( i ) ) = arg max θ ( L ( θ ( i ) ) + ∑ Z P ( Z ∣ Y , θ ( i ) ) log P ( Y ∣ Z , θ ) P ( Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) P ( Y ∣ θ ( i ) ) ) = arg max θ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) log P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ) = arg max θ ( ∑ Z P ( Z ∣ Y , θ ( i ) ) log P ( Y , Z ∣ θ ) ) = arg max θ Q ( θ , θ ( i ) ) \begin{aligned} \theta^{(i+1)} =&\, \arg\max_{\theta}B(\theta,\,\theta^{(i)}) \\ =&\, \arg\max_{\theta} \left( 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)})} \right) \\ =&\, \arg\max_{\theta} \left( \sum_Z P(Z|Y,\,\theta^{(i)})\log P(Y|Z,\,\theta)P(Z|\theta) \right) \\ =&\, \arg\max_{\theta} \left( \sum_Z P(Z|Y,\,\theta^{(i)})\log P(Y,\,Z|\theta) \right) \\ =&\, \arg\max_{\theta} Q(\theta,\,\theta^{(i)}) \end{aligned} θ(i+1)=====argθmaxB(θ,θ(i))argθmax(L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ))argθmax(Z∑P(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ))argθmax(Z∑P(Z∣Y,θ(i))logP(Y,Z∣θ))argθmaxQ(θ,θ(i))
用图形进行直观解释:上方的曲线为 L ( θ ) L(\theta) L(θ) ,下方的曲线为 B ( θ , θ ( i ) ) B(\theta,\,\theta^{(i)}) B(θ,θ(i)) ,二者在点 θ = θ ( i ) \theta=\theta^{(i)} θ=θ(i) 处相等。当选择下一个点 θ ( i + 1 ) \theta^{(i+1)} θ(i+1) 使得 B ( θ , θ ( i ) ) B(\theta,\,\theta^{(i)}) B(θ,θ(i)) 极大化(也是使 Q ( θ , θ ( i ) ) Q(\theta,\,\theta^{(i)}) Q(θ,θ(i)) 极大化),这时由于 L ( θ ) ≥ B ( θ , θ ( i ) ) L(\theta) \ge B(\theta,\,\theta^{(i)}) L(θ)≥B(θ,θ(i)) ,因此 L ( θ ) L(\theta) L(θ) 在每次迭代中也是增加的(只要 B ( θ , θ ( i ) ) B(\theta,\,\theta^{(i)}) B(θ,θ(i)) 增加, L ( θ ) L(\theta) L(θ) 一定增加,因为二者在点 θ = θ ( i ) \theta=\theta^{(i)} θ=θ(i) 处相等)。
当然也可以看出,EM 算法不能保证找到全局最优值。
这里有关于 EM 算法收敛性的两个定理。
定理 9.1:设 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ) 为观测数据的似然函数, θ ( i ) ( i = 1 , 2 , ⋯ ) \theta^{(i)}\,(i=1,\,2,\,\cdots) θ(i)(i=1,2,⋯) 为 EM 算法得到的参数估计序列,而 P ( Y ∣ θ ( i ) ) ( i = 1 , 2 , ⋯ ) P(Y|\theta^{(i)})\,(i=1,\,2,\,\cdots) P(Y∣θ(i))(i=1,2,⋯) 为对应的似然函数序列,则 P ( Y ∣ θ ( i ) ) P(Y|\theta^{(i)}) P(Y∣θ(i)) 是单调递增的,即:
P ( Y ∣ θ ( i + 1 ) ) ≥ P ( Y ∣ θ ( i ) ) P(Y|\theta^{(i+1)}) \ge P(Y|\theta^{(i)}) P(Y∣θ(i+1))≥P(Y∣θ(i))
证明:根据条件概率的公式有:
P ( Y ∣ θ ) = P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ) P(Y|\theta)=\frac{P(Y,\,Z|\theta)}{P(Z|Y,\,\theta)} P(Y∣θ)=P(Z∣Y,θ)P(Y,Z∣θ)
取对数有:
log P ( Y ∣ θ ) = log P ( Y , Z ∣ θ ) − log P ( Z ∣ Y , θ ) \log P(Y|\theta) = \log P(Y,\,Z|\theta) - \log P(Z|Y,\,\theta) logP(Y∣θ)=logP(Y,Z∣θ)−logP(Z∣Y,θ)
注意这里 Z Z Z 是一个具体的值,所以不需要对所有 Z Z Z 的取值情况求和;如果理解不了,可以写成以下形式:
P ( Y = y ∣ θ ) = P ( Y = y , Z = z ∣ θ ) P ( Z = z ∣ Y = y , θ ) P(Y=y|\theta)=\frac{P(Y=y,\,Z=z|\theta)}{P(Z=z|Y=y,\,\theta)} P(Y=y∣θ)=P(Z=z∣Y=y,θ)P(Y=y,Z=z∣θ)
Q Q Q 函数的定义为:
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\log P(Y,\,Z|\theta)P(Z|Y,\,\theta^{(i)}) Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]=Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))
再定义另一个函数:
H ( θ , θ ( i ) ) = ∑ Z log P ( Z ∣ Y , θ ) P ( Z ∣ Y , θ ( i ) ) H(\theta,\,\theta^{(i)})=\sum_Z\log P(Z|Y,\,\theta)P(Z|Y,\,\theta^{(i)}) H(θ,θ(i))=Z∑logP(Z∣Y,θ)P(Z∣Y,θ(i))
则对数似然函数可以写成:
log P ( Y ∣ θ ) = Q ( θ , θ ( i ) ) − H ( θ , θ ( i ) ) \log P(Y|\theta) = Q(\theta,\,\theta^{(i)})-H(\theta,\,\theta^{(i)}) logP(Y∣θ)=Q(θ,θ(i))−H(θ,θ(i))
是不是很神奇,跟 i i i 一点关系没有。这个式子可以这样理解:
Q ( θ , θ ( i ) ) − H ( θ , θ ( i ) ) = ∑ Z log P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) − ∑ Z log P ( Z ∣ Y , θ ) P ( Z ∣ Y , θ ( i ) ) = ∑ Z ( log P ( Y , Z ∣ θ ) − log P ( Z ∣ Y , θ ) ) P ( Z ∣ Y , θ ( i ) ) \begin{aligned} &\, Q(\theta,\,\theta^{(i)})-H(\theta,\,\theta^{(i)}) \\ =&\, \sum_Z\log P(Y,\,Z|\theta)P(Z|Y,\,\theta^{(i)})-\sum_Z\log P(Z|Y,\,\theta)P(Z|Y,\,\theta^{(i)}) \\ =&\, \sum_Z(\log P(Y,\,Z|\theta)-\log P(Z|Y,\,\theta))P(Z|Y,\,\theta^{(i)}) \end{aligned} ==Q(θ,θ(i))−H(θ,θ(i))Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))−Z∑logP(Z∣Y,θ)P(Z∣Y,θ(i))Z∑(logP(Y,Z∣θ)−logP(Z∣Y,θ))P(Z∣Y,θ(i))
前面说了,对于前面的取了对数的条件概率公式, Z Z Z 是可以任意取的,因此:
∑ Z ( log P ( Y , Z ∣ θ ) − log P ( Z ∣ Y , θ ) ) P ( Z ∣ Y , θ ( i ) ) = ∑ Z log P ( Y ∣ θ ) P ( Z ∣ Y , θ ( i ) ) = log P ( Y ∣ θ ) ∑ Z P ( Z ∣ Y , θ ( i ) ) = log P ( Y ∣ θ ) \begin{aligned} &\, \sum_Z(\log P(Y,\,Z|\theta)-\log P(Z|Y,\,\theta))P(Z|Y,\,\theta^{(i)}) \\ =&\, \sum_Z\log P(Y|\theta)P(Z|Y,\,\theta^{(i)}) \\ =&\, \log P(Y|\theta)\sum_ZP(Z|Y,\,\theta^{(i)}) \\ =&\, \log P(Y|\theta) \end{aligned} ===Z∑(logP(Y,Z∣θ)−logP(Z∣Y,θ))P(Z∣Y,θ(i))Z∑logP(Y∣θ)P(Z∣Y,θ(i))logP(Y∣θ)Z∑P(Z∣Y,θ(i))logP(Y∣θ)
接着我们要证明 log P ( Y ∣ θ ( i ) ) \log P(Y|\theta^{(i)}) logP(Y∣θ(i)) 是单调递增的,有:
log P ( Y ∣ θ ( i + 1 ) ) − log P ( Y ∣ θ ( i ) ) = [ Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ] − [ H ( θ ( i + 1 ) , θ ( i ) ) − H ( θ ( i ) , θ ( i ) ) ] \begin{aligned} &\, \log P(Y|\theta^{(i+1)})-\log P(Y|\theta^{(i)}) \\ =&\, [Q(\theta^{(i+1)},\,\theta^{(i)})-Q(\theta^{(i)},\,\theta^{(i)})]-[H(\theta^{(i+1)},\,\theta^{(i)})-H(\theta^{(i)},\,\theta^{(i)})] \end{aligned} =logP(Y∣θ(i+1))−logP(Y∣θ(i))[Q(θ(i+1),θ(i))−Q(θ(i),θ(i))]−[H(θ(i+1),θ(i))−H(θ(i),θ(i))]
前面证明了, θ ( i + 1 ) \theta^{(i+1)} θ(i+1) 使得 Q ( θ , θ ( i ) ) Q(\theta,\,\theta^{(i)}) Q(θ,θ(i)) 达到极大,因此右边第一项:
Q ( θ ( i + 1 ) , θ ( i ) ) − Q ( θ ( i ) , θ ( i ) ) ≥ 0 Q(\theta^{(i+1)},\,\theta^{(i)})-Q(\theta^{(i)},\,\theta^{(i)}) \geq 0 Q(θ(i+1),θ(i))−Q(θ(i),θ(i))≥0
右边第二项:
H ( θ ( i + 1 ) , θ ( i ) ) − H ( θ ( i ) , θ ( i ) ) = ∑ Z log P ( Z ∣ Y , θ ( i + 1 ) ) P ( Z ∣ Y , θ ( i ) ) − ∑ Z log P ( Z ∣ Y , θ ( i ) ) P ( Z ∣ Y , θ ( i ) ) = ∑ Z ( log P ( Z ∣ Y , θ ( i + 1 ) ) P ( Z ∣ Y , θ ( i ) ) ) P ( Z ∣ Y , θ ( i ) ) ≤ log ( ∑ Z P ( Z ∣ Y , θ ( i + 1 ) ) P ( Z ∣ Y , θ ( i ) ) P ( Z ∣ Y , θ ( i ) ) ) = 0 \begin{aligned} &\, H(\theta^{(i+1)},\,\theta^{(i)})-H(\theta^{(i)},\,\theta^{(i)}) \\ =&\, \sum_Z\log P(Z|Y,\,\theta^{(i+1)})P(Z|Y,\,\theta^{(i)}) - \sum_Z\log P(Z|Y,\,\theta^{(i)})P(Z|Y,\,\theta^{(i)}) \\ =&\, \sum_Z \left( \log\frac{P(Z|Y,\,\theta^{(i+1)})}{P(Z|Y,\,\theta^{(i)})} \right)P(Z|Y,\,\theta^{(i)}) \\ \leq&\, \log \left( \sum_Z \frac{P(Z|Y,\,\theta^{(i+1)})}{P(Z|Y,\,\theta^{(i)})}P(Z|Y,\,\theta^{(i)}) \right)=0 \end{aligned} ==≤H(θ(i+1),θ(i))−H(θ(i),θ(i))Z∑logP(Z∣Y,θ(i+1))P(Z∣Y,θ(i))−Z∑logP(Z∣Y,θ(i))P(Z∣Y,θ(i))Z∑(logP(Z∣Y,θ(i))P(Z∣Y,θ(i+1)))P(Z∣Y,θ(i))log(Z∑P(Z∣Y,θ(i))P(Z∣Y,θ(i+1))P(Z∣Y,θ(i)))=0
所以 log P ( Y ∣ θ ( i ) ) \log P(Y|\theta^{(i)}) logP(Y∣θ(i)) 是单调递增的。
定理 9.2:设 L ( θ ) = log P ( Y ∣ θ ) L(\theta)=\log P(Y|\theta) L(θ)=logP(Y∣θ) 为观测数据的对数似然函数,, θ ( i ) ( i = 1 , 2 , ⋯ ) \theta^{(i)}\,(i=1,\,2,\,\cdots) θ(i)(i=1,2,⋯) 为 EM 算法得到的参数估计序列,而 L ( θ ( i ) ) ( i = 1 , 2 , ⋯ ) L(\theta^{(i)})\,(i=1,\,2,\,\cdots) L(θ(i))(i=1,2,⋯) 为对应的似然函数序列:
第一点由定理 9.1 得到的 L ( θ ) L(\theta) L(θ) 的单调性和有界性可以得到;第二点参考茆的高级数理统计(
现在重新来看三硬币模型,这个模型的隐变量是硬币 A 的结果 Z = ( z 1 , z 2 , ⋯ , z n ) Z=(z_1,\,z_2,\,\cdots,\,z_n) Z=(z1,z2,⋯,zn) 。
其先求其对数似然函数:
log P ( Y , Z ∣ θ ) = log [ P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ] \log P(Y,\,Z|\theta)=\log [P(Y|Z,\,\theta)P(Z|\theta) ] logP(Y,Z∣θ)=log[P(Y∣Z,θ)P(Z∣θ)]
按照条件概率的公式,其实也可以写成:
log P ( Y , Z ∣ θ ) = log [ P ( Z ∣ Y , θ ) P ( Y ∣ θ ) ] \log P(Y,\,Z|\theta)=\log [P(Z|Y,\,\theta)P(Y|\theta) ] logP(Y,Z∣θ)=log[P(Z∣Y,θ)P(Y∣θ)]
但是你想想抛硬币的过程,显然第一种是顺着抛硬币的过程写的,这样比较好算;有:
P ( Z ∣ θ ) = ∏ j = 1 n π z j ( 1 − π ) ( 1 − z j ) P(Z|\theta)=\prod_{j=1}^{n}\pi^{z_j}(1-\pi)^{(1-z_j)} P(Z∣θ)=j=1∏nπzj(1−π)(1−zj)
下面这个式子可能比较难理解,也是让我想了很久,可以按照 z i z_i zi 为 0 或者为 1 来分类讨论:
P ( Y ∣ Z , θ ) = ( p y j ( 1 − p ) ( 1 − y j ) ) z j ( q y j ( 1 − q ) ( 1 − y j ) ) ( 1 − z j ) P(Y|Z,\,\theta)=\left( p^{y_j}(1-p)^{(1-y_j)} \right)^{z_j}\left( q^{y_j}(1-q)^{(1-y_j)} \right)^{(1-z_j)} P(Y∣Z,θ)=(pyj(1−p)(1−yj))zj(qyj(1−q)(1−yj))(1−zj)
则整理得到:
P ( Y , Z ∣ θ ) = ∏ j = 1 n ( π p y j ( 1 − p ) ( 1 − y j ) ) z j ( ( 1 − π ) q y j ( 1 − q ) ( 1 − y j ) ) ( 1 − z j ) P(Y,\,Z|\theta)=\prod_{j=1}^{n}\left( \pi p^{y_j}(1-p)^{(1-y_j)} \right)^{z_j}\left( (1-\pi)q^{y_j}(1-q)^{(1-y_j)} \right)^{(1-z_j)} P(Y,Z∣θ)=j=1∏n(πpyj(1−p)(1−yj))zj((1−π)qyj(1−q)(1−yj))(1−zj)
其实可以发现:
P ( Y = y j , Z = z j ∣ θ ) = ( π p y j ( 1 − p ) ( 1 − y j ) ) z j ( ( 1 − π ) q y j ( 1 − q ) ( 1 − y j ) ) ( 1 − z j ) P(Y=y_j,\,Z=z_j|\theta)=\left( \pi p^{y_j}(1-p)^{(1-y_j)} \right)^{z_j}\left( (1-\pi)q^{y_j}(1-q)^{(1-y_j)} \right)^{(1-z_j)} P(Y=yj,Z=zj∣θ)=(πpyj(1−p)(1−yj))zj((1−π)qyj(1−q)(1−yj))(1−zj)
有了似然函数,我们还需要求出 P ( Z ∣ Y , θ ) P(Z|Y,\,\theta) P(Z∣Y,θ) (因为需要 P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\,\theta^{(i)}) P(Z∣Y,θ(i)) 来算期望),按照条件概率的公式有:
P ( Z ∣ Y , θ ) = P ( Y , Z ∣ θ ) P ( Y ∣ θ ) P(Z|Y,\,\theta)=\frac{P(Y,\,Z|\theta)}{P(Y|\theta)} P(Z∣Y,θ)=P(Y∣θ)P(Y,Z∣θ)
我们现在有 P ( Y , Z ∣ θ ) P(Y,\,Z|\theta) P(Y,Z∣θ) 了,可以求一下 P ( Y ∣ θ ) P(Y|\theta) P(Y∣θ) ,有:
P ( Y ∣ θ ) = ∏ j = 1 n ( π p y j ( 1 − p ) 1 − y j + ( 1 − π ) q y j ( 1 − q ) 1 − y j ) 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) P(Y∣θ)=j=1∏n(πpyj(1−p)1−yj+(1−π)qyj(1−q)1−yj)
这个式子可以直接按照含义列出来,但其实也可以通过对 P ( Y , Z ∣ θ ) P(Y,\,Z|\theta) P(Y,Z∣θ) 求和得到。比较难理解,有一点像二项式展开,对每个 z j z_j zj 取 0 和 1 的情况遍历, ( π p y i ( 1 − p ) ( 1 − y i ) ) z i ( ( 1 − π ) q y i ( 1 − q ) ( 1 − y i ) ) ( 1 − z i ) \left( \pi p^{y_i}(1-p)^{(1-y_i)} \right)^{z_i}\left( (1-\pi)q^{y_i}(1-q)^{(1-y_i)} \right)^{(1-z_i)} (πpyi(1−p)(1−yi))zi((1−π)qyi(1−q)(1−yi))(1−zi) 就像是从每一个括号中选出其中一个来乘:
P ( Y ∣ θ ) = ∑ Z P ( Y , Z ∣ θ ) = ∏ j = 1 n ( π p y j ( 1 − p ) 1 − y j + ( 1 − π ) q y j ( 1 − q ) 1 − y j ) P(Y|\theta)=\sum_Z P(Y,\,Z|\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) P(Y∣θ)=Z∑P(Y,Z∣θ)=j=1∏n(πpyj(1−p)1−yj+(1−π)qyj(1−q)1−yj)
那我们就可以得到 P ( Z ∣ Y , θ ) P(Z|Y,\,\theta) P(Z∣Y,θ) 了:
P ( Z ∣ Y , θ ) = P ( Y , Z ∣ θ ) P ( Y ∣ θ ) = ∏ j = 1 n ( π p y j ( 1 − p ) ( 1 − y j ) ) z j ( ( 1 − π ) q y j ( 1 − q ) ( 1 − y j ) ) ( 1 − z j ) π p y j ( 1 − p ) 1 − y j + ( 1 − π ) q y j ( 1 − q ) 1 − y j P(Z|Y,\,\theta)=\frac{P(Y,\,Z|\theta)}{P(Y|\theta)}=\prod_{j=1}^{n} \frac {\left( \pi p^{y_j}(1-p)^{(1-y_j)} \right)^{z_j}\left( (1-\pi)q^{y_j}(1-q)^{(1-y_j)} \right)^{(1-z_j)}} {\pi p^{y_j}(1-p)^{1-y_j} + (1-\pi) q^{y_j}(1-q)^{1-y_j}} P(Z∣Y,θ)=P(Y∣θ)P(Y,Z∣θ)=j=1∏nπpyj(1−p)1−yj+(1−π)qyj(1−q)1−yj(πpyj(1−p)(1−yj))zj((1−π)qyj(1−q)(1−yj))(1−zj)
我们引入记号,在模型参数 θ ( i ) \theta^{(i)} θ(i) 下,观测数据 y j y_j yj 来自 B 的概率为:(有点像贝叶斯公式)
μ j ( i + 1 ) = π ( i ) ( p ( i ) ) y j ( 1 − p ( i ) ) 1 − y j π ( i ) ( p ( i ) ) y j ( 1 − p ( i ) ) 1 − y j + ( 1 − π ( i ) ) ( q ( i ) ) y j ( 1 − q ( i ) ) 1 − y j \mu_j^{(i+1)}= \frac{\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j}} {\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j} + (1-\pi^{(i)}) (q^{(i)})^{y_j}(1-q^{(i)})^{1-y_j}} μj(i+1)=π(i)(p(i))yj(1−p(i))1−yj+(1−π(i))(q(i))yj(1−q(i))1−yjπ(i)(p(i))yj(1−p(i))1−yj
则:
P ( Z ∣ Y , θ ( i ) ) = ∏ j = 1 n ( μ j ( i + 1 ) ) z j ( 1 − μ j ( i + 1 ) ) ( 1 − z j ) P(Z|Y,\,\theta^{(i)})=\prod_{j=1}^{n}(\mu_j^{(i+1)})^{z_j}(1-\mu_j^{(i+1)})^{(1-z_j)} P(Z∣Y,θ(i))=j=1∏n(μj(i+1))zj(1−μj(i+1))(1−zj)
其实也可以发现:
P ( Z = z j ∣ Y = y j , θ ( i ) ) = ( μ j ( i + 1 ) ) z j ( 1 − μ j ( i + 1 ) ) ( 1 − z j ) P(Z=z_j|Y=y_j,\,\theta^{(i)})=(\mu_j^{(i+1)})^{z_j}(1-\mu_j^{(i+1)})^{(1-z_j)} P(Z=zj∣Y=yj,θ(i))=(μj(i+1))zj(1−μj(i+1))(1−zj)
现在有了似然函数,也有了已知 Y Y Y 和 θ ( i ) \theta^{(i)} θ(i) 下出现 Z Z Z 的概率,我们现在可以求 Q Q Q 函数了:
Q ( θ , θ ( i ) ) = E Z [ log P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ Z log P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) = ∑ Z ∑ j = 1 n log P ( y j , z j ∣ θ ) P ( Z ∣ Y , θ ( i ) ) = ∑ Z ∑ j = 1 n [ log P ( y j , z j ∣ θ ) P ( Z ∣ Y , θ ( i ) ) ] = ∑ j = 1 n ∑ Z [ log P ( y j , z j ∣ θ ) P ( Z ∣ Y , θ ( i ) ) ] (可以交换求和顺序) = ∑ j = 1 n ∑ z j ∑ z k , k ≠ j [ log P ( y j , z j ∣ θ ) P ( Z ∣ Y , θ ( i ) ) ] \begin{aligned} &\, Q(\theta,\,\theta^{(i)}) \\ =&\, E_Z[\log P(Y,\,Z|\theta)|Y,\,\theta^{(i)}] \\ =&\, \sum_Z\log P(Y,\,Z|\theta)P(Z|Y,\,\theta^{(i)}) \\ =&\, \sum_Z \sum_{j=1}^{n}\log P(y_j,z_j|\theta) P(Z|Y,\,\theta^{(i)}) \\ =&\, \sum_Z \sum_{j=1}^{n} \left[ \log P(y_j,z_j|\theta) P(Z|Y,\,\theta^{(i)}) \right]\\ =&\, \sum_{j=1}^{n} \sum_Z \left[ \log P(y_j,z_j|\theta) P(Z|Y,\,\theta^{(i)}) \right] \quad\text{(可以交换求和顺序)}\\ =&\, \sum_{j=1}^{n} \sum_{z_j} \sum_{z_k,\,k\not=j} \left[ \log P(y_j,z_j|\theta) P(Z|Y,\,\theta^{(i)}) \right]\\ \end{aligned} ======Q(θ,θ(i))EZ[logP(Y,Z∣θ)∣Y,θ(i)]Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))Z∑j=1∑nlogP(yj,zj∣θ)P(Z∣Y,θ(i))Z∑j=1∑n[logP(yj,zj∣θ)P(Z∣Y,θ(i))]j=1∑nZ∑[logP(yj,zj∣θ)P(Z∣Y,θ(i))](可以交换求和顺序)j=1∑nzj∑zk,k=j∑[logP(yj,zj∣θ)P(Z∣Y,θ(i))]
发现当 z j z_j zj 的值固定时,有 ∑ z k , k ≠ j P ( Z ∣ Y , θ ( i ) ) = P ( z j ∣ y j , θ ( i ) ) \sum_{z_k,\,k\not=j} P(Z|Y,\,\theta^{(i)})=P(z_j|y_j,\,\theta^{(i)}) ∑zk,k=jP(Z∣Y,θ(i))=P(zj∣yj,θ(i)) :
∑ z k , k ≠ j log P ( y j , z j ∣ θ ) P ( Z ∣ Y , θ ( i ) ) = log P ( y j , z j ∣ θ ) ∑ z k , k ≠ j P ( Z ∣ Y , θ ( i ) ) = P ( z j ∣ y j , θ ( i ) ) log P ( y j , z j ∣ θ ) \begin{aligned} &\, \sum_{z_k,\,k\not=j} \log P(y_j,z_j|\theta) P(Z|Y,\,\theta^{(i)}) \\ =&\, \log P(y_j,z_j|\theta) \sum_{z_k,\,k\not=j} P(Z|Y,\,\theta^{(i)}) \\ =&\, P(z_j|y_j,\,\theta^{(i)})\log P(y_j,z_j|\theta) \end{aligned} ==zk,k=j∑logP(yj,zj∣θ)P(Z∣Y,θ(i))logP(yj,zj∣θ)zk,k=j∑P(Z∣Y,θ(i))P(zj∣yj,θ(i))logP(yj,zj∣θ)
因此:
Q ( θ , θ ( i ) ) = ∑ j = 1 n ∑ z j P ( z j ∣ y j , θ ( i ) ) log P ( y j , z j ∣ θ ) = ∑ j = 1 n ( μ j ( i + 1 ) log π p y j ( 1 − p ) ( 1 − y j ) + ( 1 − μ j ( i + 1 ) ) log ( 1 − π ) q y j ( 1 − q ) ( 1 − y j ) ) \begin{aligned} &\, Q(\theta,\,\theta^{(i)}) \\ =&\, \sum_{j=1}^{n} \sum_{z_j}P(z_j|y_j,\,\theta^{(i)})\log P(y_j,z_j|\theta) \\ =&\, \sum_{j=1}^{n} \left( \mu_j^{(i+1)}\log \pi p^{y_j}(1-p)^{(1-y_j)} + (1-\mu_j^{(i+1)})\log (1-\pi)q^{y_j}(1-q)^{(1-y_j)} \right) \end{aligned} ==Q(θ,θ(i))j=1∑nzj∑P(zj∣yj,θ(i))logP(yj,zj∣θ)j=1∑n(μj(i+1)logπpyj(1−p)(1−yj)+(1−μj(i+1))log(1−π)qyj(1−q)(1−yj))
接下来是 M 步,即求得 θ = ( π , p , q ) \theta=(\pi,\,p,\,q) θ=(π,p,q) 使得 Q ( θ , θ ( i ) ) Q(\theta,\,\theta^{(i)}) Q(θ,θ(i)) 极大化:
Q Q Q 对 π \pi π 求导:
∂ Q ∂ π = 1 π ∑ j = 1 n μ j ( i + 1 ) − 1 1 − π ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) = 0 ⇒ π ( i + 1 ) = 1 n ∑ j = 1 n μ j ( i + 1 ) \begin{aligned} \frac{\partial Q}{\partial \pi} =&\,\frac{1}{\pi}\sum_{j=1}^n\mu_{j}^{(i+1)}-\frac{1}{1-\pi}\sum_{j=1}^n(1-\mu_{j}^{(i+1)})=0 \\ \Rightarrow&\, \pi^{(i+1)}=\frac{1}{n}\sum_{j=1}^{n}\mu_j^{(i+1)} \end{aligned} ∂π∂Q=⇒π1j=1∑nμj(i+1)−1−π1j=1∑n(1−μj(i+1))=0π(i+1)=n1j=1∑nμj(i+1)
Q Q Q 对 p p p 求导:
∂ Q ∂ p = ∑ j = 1 n μ j ( i + 1 ) ( y j p − 1 − y j 1 − p ) = 0 ⇒ p ( i + 1 ) = ∑ j = 1 n μ j ( i + 1 ) y j ∑ j = 1 n μ j ( i + 1 ) \begin{aligned} \frac{\partial Q}{\partial p} =&\, \sum_{j=1}^{n}\mu_{j}^{(i+1)}\left( \frac{y_j}{p}-\frac{1-y_j}{1-p} \right) =0\\ \Rightarrow &\, p^{(i+1)}=\frac{\sum\limits_{j=1}^{n}\mu_j^{(i+1)}y_j}{\sum\limits_{j=1}^{n}\mu_j^{(i+1)}} \end{aligned} ∂p∂Q=⇒j=1∑nμj(i+1)(pyj−1−p1−yj)=0p(i+1)=j=1∑nμj(i+1)j=1∑nμj(i+1)yj
Q Q Q 对 q q q 求导:
∂ Q ∂ q = ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) ( y j q − 1 − y j 1 − q ) = 0 ⇒ q ( i + 1 ) = ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) y j ∑ j = 1 n ( 1 − μ j ( i + 1 ) ) \begin{aligned} \frac{\partial Q}{\partial q} =&\, \sum_{j=1}^{n}(1-\mu_{j}^{(i+1)})\left( \frac{y_j}{q}-\frac{1-y_j}{1-q} \right) =0\\ \Rightarrow &\, q^{(i+1)}=\frac{\sum\limits_{j=1}^{n}(1-\mu_j^{(i+1)})y_j}{\sum\limits_{j=1}^{n}(1-\mu_j^{(i+1)})} \end{aligned} ∂q∂Q=⇒j=1∑n(1−μj(i+1))(qyj−1−q1−yj)=0q(i+1)=j=1∑n(1−μj(i+1))j=1∑n(1−μj(i+1))yj