当前位置:   article > 正文

EM算法原理推导+案例讲解_em-map算法推导

em-map算法推导

前言

EM算法是针对有隐变量的求解极大似然或者最大后验的有效方法。因为我也是正在学习的缘故,所以我将从一个初学者的角度,复现学习过程中遇到的种种问题,本文将从案例出发,对算法原理进行推导证明。

推导

案例引入

以下案例来自李航老师的《机器学习》

​ 假如,我们现在有三枚硬币,A、B、C,它们正面朝上的概率的为 π 、 q 、 p \pi、q、p πqp。现在,我们要做的事情是,先抛硬币A,如果硬币A是正面,我们选择硬币B;否则如果硬币A是反面,我们选择硬币C。随后,抛选择到的硬币(B或C),如果正面朝上,则记作y=1,反面朝上,则记为y=0。

​ 现在,我们假设,我们最终实验10次的结果得到的是

10111
11000

​ 现在,有一个问题。如果我们抛硬币的时候,无法知道从抛硬币A得到了B还是C,仅仅只知道了最终的结果,我们没有没办法求出参数 θ = { π , q , p } \theta=\{\pi,q,p\} θ={π,q,p}呢?

​ 一般遇到这种问题,我们最初的思路是咋样的?是要我们做的实现足够多,就可以使用极大似然估计,求出对应的参数,所以
θ ^ = max ⁡ θ P ( Y ∣ θ ) \hat\theta=\max\limits_{\theta}P(Y|\theta) θ^=θmaxP(Yθ)
​ 其中, Y = ( y 1 , y 2 , ⋯   , y n ) T Y=(y_1,y_2,\cdots,y_n)^T Y=(y1,y2,,yn)T,代表·n个观测数据,y作为随机变量

​ 对于 P ( Y ∣ θ ) P(Y|\theta) P(Yθ),最大的问题是什么?是我们压根不晓得它是什么概率分布,如果我们知道了他的概率分布,也就知道了这个似然函数是什么。那么就可以计算了。

​ 仔细看这个东西,Y是从哪里得出来的?依题目,其是从B、C的出来的。那么我们是否可以将B、C引入进似然函数中来呢?答案是可以的,我们将他们记作z,称为隐变量,那么似然函数
P ( Y ∣ θ ) = ∑ Z P ( Y , Z ∣ θ ) = ∑ Z P ( Y ∣ Z , θ ) P ( Z ∣ θ )

P(Y|θ)=ZP(Y,Z|θ)=ZP(Y|Z,θ)P(Z|θ)
P(Yθ)=ZP(Y,Zθ)=ZP(YZ,θ)P(Zθ)
​ 其中 Z = ( z 1 , z 2 , ⋯   , z n ) T Z=(z_1,z_2,\cdots,z_n)^T Z=(z1,z2,,zn)T,代表n个隐藏数据,z作为随机变量。

​ 通过简单的变化,我们就可以表达出来了

​ 首先来看 P ( Z ∣ θ ) P(Z|\theta) P(Zθ),这是什么?注意了,此处我们始终认为 θ \theta θ是一个参数,而不是随机变量,所以严谨一些,其还可以写作 P θ ( Z ) P_{\theta}(Z) Pθ(Z),所以其并不是条件概率,而是一个普通的概率,前面我们说到,Z就是选择B或者C的隐变量,那决定隐变量的取值的概率不就是 π \pi π吗?

​ 所以对于正面朝上的概率为 P ( z i ∣ θ ) = π P(z_i|\theta)=\pi P(ziθ)=π,反面则为 P ( z i ∣ θ ) = 1 − π P(z_i|\theta)=1-\pi P(ziθ)=1π

​ 那再看 P ( y i ∣ z i , θ ) P(y_i|z_i,\theta) P(yizi,θ),这不就是给定隐变量Z,求出 Y i Y_i Yi的概率吗?所以
P ( Y ∣ θ ) = ∏ i = 1 n P ( y i ∣ θ ) = ∏ i = 1 n ∑ z i P ( y i , z i ∣ θ ) = ∏ i = 1 n [ π q y i ( 1 − q ) 1 − y i + ( 1 − π ) p y i ( 1 − p ) 1 − y i ]

P(Y|θ)=i=1nP(yi|θ)=i=1nziP(yi,zi|θ)=i=1n[πqyi(1q)1yi+(1π)pyi(1p)1yi]
===P(Yθ)i=1nP(yiθ)i=1nziP(yi,ziθ)i=1n[πqyi(1q)1yi+(1π)pyi(1p)1yi]
​ 所以
max ⁡ θ P ( Y ∣ θ ) = max ⁡ θ ∏ i = 1 n [ π q y i ( 1 − q ) 1 − y i + ( 1 − π ) p y i ( 1 − p ) 1 − y i ] \max\limits_{\theta}P(Y|\theta)=\max\limits_{\theta}\prod\limits_{i=1}^n \left[ \pi{q}^{y_i}(1-q)^{1-y_i}+(1-\pi)p^{y_i}(1-p)^{1-y_i} \right] θmaxP(Yθ)=θmaxi=1n[πqyi(1q)1yi+(1π)pyi(1p)1yi]
​ 再说一次, θ = { π , q , p } \theta=\{\pi,q,p\} θ={π,q,p}

​ 要求极大似然,第一眼看上去,想当燃取log求导。但是我们会发现并没有解析解。

​ 那么该如何解决这个问题呢?这就要提到我们的EM算法了。

狭义EM

​ 所谓EM算法,实际上是一种迭代收敛算法。其名字EM拆开,E代表均值,M代表极大值,因此其也叫均值极大算法。

EM算法分为两步。

①给定 P ( Z ∣ Y , θ t ) → E P ( Z ∣ Y , θ t ) [ l o g P ( Z , Y ∣ θ ) ] P(Z|Y,\theta^{t})\rightarrow{E_{P(Z|Y,\theta^{t})}\left[logP(Z,Y|\theta)\right]} P(ZY,θt)EP(ZY,θt)[logP(Z,Yθ)]

θ t + 1 = max ⁡ θ E P ( Z ∣ Y , θ t ) [ l o g P ( Z , Y ∣ θ ) ] {\theta^{t+1}}=\max\limits_{\theta}{E_{P(Z|Y,\theta^{t})}\left[logP(Z,Y|\theta)\right]} θt+1=θmaxEP(ZY,θt)[logP(Z,Yθ)]

​ 注意了,这里的 E P ( Z ∣ Y , ∣ θ t ) [ l o g P ( Z , Y ∣ θ ) ] {E_{P(Z|Y,|\theta^{t})}\left[logP(Z,Y|\theta)\right]} EP(ZY,θt)[logP(Z,Yθ)]意为 l o g P ( Z , Y ∣ θ ) logP(Z,Y|\theta) logP(Z,Yθ) P ( Z ∣ Y , θ t ) P(Z|Y,\theta^{t}) P(ZY,θt)求均值。可以变化为(注意了,式子中, P ( Z ∣ Y , θ t ) P(Z|Y,\theta^{t}) P(ZY,θt)是不在log里面的,仅仅是为了写作的简便,并且假设Z是连续变量,望知悉。下文亦如此)
E P ( Z ∣ Y , θ t ) [ l o g P ( Z , Y ∣ θ ) ] = ∫ Z l o g P ( Z . Y ∣ θ ) P ( Z ∣ Y , θ t ) d Z E_{P(Z|Y,\theta^{t})}\left[logP(Z,Y|\theta)\right]=\int_ZlogP(Z.Y|\theta)P(Z|Y,\theta^{t})dZ EP(ZY,θt)[logP(Z,Yθ)]=ZlogP(Z.Yθ)P(ZY,θt)dZ
​ EM算法就是酱紫,只要不断地循环①、②步,最后就可以收敛。接下来的问题就是,这玩意儿是怎么来的?又为什么这样可以收敛?

问题一:怎么来的?

​ 下面先给出其具体推导
因为: P ( Y ) = P ( Z , Y ) P ( Z ∣ Y ) 所以 : P ( Y ∣ θ ) = P ( Z , Y ∣ θ ) P ( Z ∣ Y , θ ) 所以 : l o g P ( Y ∣ θ ) = l o g P ( Z , Y ∣ θ ) − l o g P ( Z ∣ Y , θ ) 引入关于隐变量的分布 q ( Z ) ,并在等式右边 l o g 里面除以 q ( Z ) 得: l o g P ( Y ∣ θ ) = l o g P ( Z , Y ∣ θ ) q ( Z ) − l o g P ( Z ∣ Y , θ ) q ( Z )

P(Y)=P(Z,Y)P(Z|Y):P(Y|θ)=P(Z,Y|θ)P(Z|Y,θ):logP(Y|θ)=logP(Z,Y|θ)logP(Z|Y,θ)q(Z)logq(Z)logP(Y|θ)=logP(Z,Y|θ)q(Z)logP(Z|Y,θ)q(Z)
因为:所以:所以:得:P(Y)=P(ZY)P(Z,Y)P(Yθ)=P(ZY,θ)P(Z,Yθ)logP(Yθ)=logP(Z,Yθ)logP(ZY,θ)引入关于隐变量的分布q(Z),并在等式右边log里面除以q(Z)logP(Yθ)=logq(Z)P(Z,Yθ)logq(Z)P(ZY,θ)
​ 对等式左右两边同时对 q ( Z ) q(Z) q(Z)积分

​ 左边得
∫ Z l o g P ( Y ∣ θ ) q ( Z ) d Z = l o g P ( Y ∣ θ ) ∫ Z q ( Z ) d Z = l o g P ( Y ∣ θ ) \int_Z{logP(Y|\theta)}q(Z)dZ=logP(Y|\theta)\int_Z{q(Z)}dZ=logP(Y|\theta) ZlogP(Yθ)q(Z)dZ=logP(Yθ)Zq(Z)dZ=logP(Yθ)
​ 所以最终等式为
l o g P ( Y ∣ θ ) = ∫ Z l o g P ( Z , Y ∣ θ ) q ( Z ) q ( Z ) d Z − ∫ Z l o g P ( Z ∣ Y , θ ) q ( Z ) q ( Z ) d Z = ∫ Z l o g P ( Z , Y ∣ θ ) q ( Z ) q ( Z ) d Z + ∫ Z l o g q ( Z ) P ( Z ∣ Y , θ ) q ( Z ) d Z

logP(Y|θ)=ZlogP(Z,Y|θ)q(Z)q(Z)dZZlogP(Z|Y,θ)q(Z)q(Z)dZ=ZlogP(Z,Y|θ)q(Z)q(Z)dZ+Zlogq(Z)P(Z|Y,θ)q(Z)dZ
logP(Yθ)==Zlogq(Z)P(Z,Yθ)q(Z)dZZlogq(Z)P(ZY,θ)q(Z)dZZlogq(Z)P(Z,Yθ)q(Z)dZ+ZlogP(ZY,θ)q(Z)q(Z)dZ
​ 仔细看,对于 ∫ Z l o g q ( Z ) P ( Z ∣ Y , θ ) q ( Z ) d Z \int_Zlog\frac{q(Z)}{P(Z|Y,\theta)}q(Z)dZ ZlogP(ZY,θ)q(Z)q(Z)dZ,这个形式我一般称为两个概率分布的KL散度,意思可以简单理解为是两个概率分布的相似程度,所以
K L ( q ( Z ) ∣ ∣ P ( Z ∣ Y , θ ) ) = ∫ Z l o g q ( Z ) P ( Z ∣ Y , θ ) q ( Z ) d KL(q(Z)||P(Z|Y,\theta))=\int_Zlog\frac{q(Z)}{P(Z|Y,\theta)}q(Z)d KL(q(Z)∣∣P(ZY,θ))=ZlogP(ZY,θ)q(Z)q(Z)d
​ 他表示概率概率分布 q ( Z ) q(Z) q(Z) P ( Z ∣ Y . θ ) P(Z|Y.\theta) P(ZY.θ)的相似程度。它有个特性,KL散度是大于等于0,即 K L ( q ( Z ) ∣ ∣ P ( Z ∣ Y , θ ) ) ≥ 0 KL(q(Z)||P(Z|Y,\theta))\ge0 KL(q(Z)∣∣P(ZY,θ))0,当且仅当 q ( Z ) = P ( Z ∣ Y , θ ) q(Z)=P(Z|Y,\theta) q(Z)=P(ZY,θ)等号成立。

​ 所以
l o g P ( Y ∣ θ ) ≥ ∫ Z l o g P ( Z , Y ∣ θ ) q ( Z ) q ( Z ) d z logP(Y|\theta)\ge\int_Zlog\frac{P(Z,Y|\theta)}{q(Z)}q(Z)dz logP(Yθ)Zlogq(Z)P(Z,Yθ)q(Z)dz
​ 当 K L ( q ( Z ) ∣ ∣ P ( Z ∣ Y , θ ) ) = 0 KL(q(Z)||P(Z|Y,\theta))=0 KL(q(Z)∣∣P(ZY,θ))=0时等号成立。

​ 所以,要 max ⁡ θ l o g P ( Y ∣ θ ) \max\limits_{\theta}logP(Y|\theta) θmaxlogP(Yθ),当 q ( Z ) = P ( Z ∣ Y , θ t ) q(Z)=P(Z|Y,\theta^{t}) q(Z)=P(ZY,θt) K L ( q ( Z ) ∣ ∣ P ( Z ∣ Y , θ t ) ) = 0 KL(q(Z)||P(Z|Y,\theta^{t}))=0 KL(q(Z)∣∣P(ZY,θt))=0,注意了,此时的 P ( Z ∣ Y , θ ) P(Z|Y,\theta) P(ZY,θ)里面的 θ t \theta^t θt是上一轮的 θ \theta θ,为啥我要用上一轮的?因为EM是一个迭代式算法。并且这样后面可以进行收敛性证明
max ⁡ θ l o g P ( Y ∣ θ ) = max ⁡ θ ∫ Z l o g P ( Z , Y ∣ θ ) P ( Z ∣ Y , θ t ) P ( Z ∣ Y , θ t ) d Z = max ⁡ θ ∫ Z [ l o g P ( Z , Y ∣ θ ) − l o g P ( Z ∣ Y , θ t ) ] P ( Z ∣ Y , θ t ) d Z = max ⁡ θ ∫ Z l o g P ( Z , Y ∣ θ ) P ( Z ∣ Y , θ t ) d Z − ∫ Z l o g P ( Z ∣ Y , θ t ) P ( Z ∣ Y , θ t ) d Z 因为后面一部分的 θ t 是确定的,所以 = max ⁡ θ ∫ Z l o g P ( Z , Y ∣ θ ) P ( Z ∣ Y , θ t ) d Z = θ t + 1

maxθlogP(Y|θ)=maxθZlogP(Z,Y|θ)P(Z|Y,θt)P(Z|Y,θt)dZ=maxθZ[logP(Z,Y|θ)logP(Z|Y,θt)]P(Z|Y,θt)dZ=maxθZlogP(Z,Y|θ)P(Z|Y,θt)dZZlogP(Z|Y,θt)P(Z|Y,θt)dZθt=maxθZlogP(Z,Y|θ)P(Z|Y,θt)dZ=θt+1
θmaxlogP(Yθ)=θmaxZlogP(ZY,θt)P(Z,Yθ)P(ZY,θt)dZ=θmaxZ[logP(Z,Yθ)logP(ZY,θt)]P(ZY,θt)dZ=θmaxZlogP(Z,Yθ)P(ZY,θt)dZZlogP(ZY,θt)P(ZY,θt)dZ因为后面一部分的θt是确定的,所以=θmaxZlogP(Z,Yθ)P(ZY,θt)dZ=θt+1
​ 所以就推出来了。

问题二:收敛性证明

​ 对于我们的损失函数,我们只需要证明
l o g P ( Y ∣ θ t ) ≤ l o g P ( Y ∣ θ t + 1 )

logP(Y|θt)logP(Y|θt+1)
logP(Yθt)logP(Yθt+1)
​ 所以
l o g P ( Y ∣ θ ) = l o g P ( Y , Z ∣ θ ) − l o g P ( Z ∣ Y , θ ) logP(Y|\theta)=logP(Y,Z|\theta)-logP(Z|Y,\theta) logP(Yθ)=logP(Y,Zθ)logP(ZY,θ)
​ 等式左右两边对 P ( Z ∣ Y , θ t ) P(Z|Y,\theta^t) P(ZYθt)求积分。左边
∫ Z l o g P ( Y ∣ θ ) P ( Z ∣ Y , θ t ) d Z = l o g P ( Y ∣ θ ) ∫ Z P ( Z ∣ Y , θ t ) = l o g P ( Y ∣ θ ) \int_ZlogP(Y|\theta)P(Z|Y,\theta^t)dZ=logP(Y|\theta)\int_ZP(Z|Y,\theta^t)=logP(Y|\theta) ZlogP(Yθ)P(ZY,θt)dZ=logP(Yθ)ZP(ZY,θt)=logP(Yθ)
​ 所以
l o g P ( Y ∣ θ ) = ∫ Z P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ t ) d Z − ∫ Z l o g P ( Z ∣ Y , θ ) P ( Z ∣ Y , θ t ) d Z logP(Y|\theta)=\int_ZP(Y,Z|\theta)P(Z|Y,\theta^t)dZ-\int_Z{logP(Z|Y,\theta)}P(Z|Y,\theta^t)dZ logP(Yθ)=ZP(Y,Zθ)P(ZYθt)dZZlogP(ZY,θ)P(ZYθt)dZ
​ 定义Q函数和H函数
Q ( θ , θ t ) = ∫ Z P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ t ) d Z H ( θ , θ t ) = − ∫ Z l o g P ( Z ∣ Y , θ ) P ( Z ∣ Y , θ t ) d Z Q(\theta,\theta^t)=\int_ZP(Y,Z|\theta)P(Z|Y,\theta^t)dZ \\H(\theta,\theta^t)=-\int_Z{logP(Z|Y,\theta)}P(Z|Y,\theta^t)dZ Q(θ,θt)=ZP(Y,Zθ)P(ZYθt)dZH(θ,θt)=ZlogP(ZY,θ)P(ZYθt)dZ
​ 看这个Q函数,这不就是我们上面提到EM算法吗?我们上面是这样说到的
θ t + 1 = max ⁡ θ E P ( Z ∣ Y , ∣ θ t ) [ l o g P ( Z , Y ∣ θ ) ] = max ⁡ θ ∫ Z l o g P ( Z . Y ∣ θ ) P ( Z ∣ Y , θ t ) d Z \theta^{t+1}=\max\limits_{\theta}E_{P(Z|Y,|\theta^{t})}\left[logP(Z,Y|\theta)\right]=\max\limits_{\theta}\int_ZlogP(Z.Y|\theta)P(Z|Y,\theta^{t})dZ θt+1=θmaxEP(ZY,θt)[logP(Z,Yθ)]=θmaxZlogP(Z.Yθ)P(ZY,θt)dZ
​ 所以有
∫ Z l o g P ( Z . Y ∣ θ t + 1 ) P ( Z ∣ Y , θ t ) d Z ≥ ∫ Z l o g P ( Z . Y ∣ θ ) P ( Z ∣ Y , θ t ) d Z \int_ZlogP(Z.Y|\theta^{t+1})P(Z|Y,\theta^{t})dZ\ge\int_ZlogP(Z.Y|\theta)P(Z|Y,\theta^{t})dZ ZlogP(Z.Yθt+1)P(ZY,θt)dZZlogP(Z.Yθ)P(ZY,θt)dZ
​ 所以
Q ( θ t + 1 , θ t ) ≥ Q ( θ , θ t ) Q(\theta^{t+1},\theta^t)\ge{Q(\theta,\theta^t)} Q(θt+1,θt)Q(θ,θt)
​ 所以,不论 θ \theta θ取什么,始终成立,所以也有
Q ( θ t + 1 , θ t ) ≥ Q ( θ t , θ t ) Q(\theta^{t+1},\theta^t)\ge{Q(\theta^t,\theta^t)} Q(θt+1,θt)Q(θt,θt)
​ 对于 H ( θ , θ t ) H(\theta,\theta^t) H(θ,θt),只需要同样证明
H ( θ t + 1 , θ t ) ≥ H ( θ t , θ t ) H(\theta^{t+1},\theta^t)\ge{H(\theta^{t},\theta^t)} H(θt+1,θt)H(θt,θt)
​ 所以
H ( θ t + 1 , θ t ) − H ( θ t , θ t ) ≥ 0 = − ∫ Z l o g P ( Z ∣ Y , θ t + 1 ) P ( Z ∣ Y , θ t ) d Z + ∫ Z l o g P ( Z ∣ Y , θ t ) P ( Z ∣ Y , θ t ) d Z ≥ 0 = ∫ Z P ( Z ∣ Y , θ t ) [ l o g P ( Z ∣ Y , θ t ) P ( Z ∣ Y , θ t + 1 ) ] d Z = K L ( P ( Z ∣ Y , θ t ) ∣ ∣ P ( Z ∣ Y , θ t + 1 ) )
H(θt+1,θt)H(θt,θt)0=ZlogP(Z|Y,θt+1)P(Z|Yθt)dZ+ZlogP(Z|Y,θt)P(Z|Yθt)dZ0=ZP(Z|Y,θt)[logP(Z|Y,θt)P(Z|Y,θt+1)]dZ=KL(P(Z|Y,θt)||P(Z|Y,θt+1))
===H(θt+1,θt)H(θt,θt)0ZlogP(ZY,θt+1)P(ZYθt)dZ+ZlogP(ZY,θt)P(ZYθt)dZ0ZP(ZY,θt)[logP(ZY,θt+1)P(ZY,θt)]dZKL(P(ZY,θt)∣∣P(ZY,θt+1))

​ 同样的KL散度,根据性质恒大于等于0.

​ 因为
P ( Y ∣ θ t + 1 ) = Q ( θ t + 1 , θ t ) + H ( θ t + 1 , θ t ) ; P ( Y ∣ θ t ) = Q ( θ t , θ t ) + H ( θ t , θ t ) ; P(Y|\theta^{t+1})=Q(\theta^{t+1},\theta^t)+H(\theta^{t+1},\theta^t); \\P(Y|\theta^{t})=Q(\theta^{t},\theta^t)+H(\theta^{t},\theta^t); P(Yθt+1)=Q(θt+1,θt)+H(θt+1,θt);P(Yθt)=Q(θt,θt)+H(θt,θt);
​ 所以得证
P ( Y ∣ θ t + 1 ) ≥ P ( Y ∣ θ t ) P(Y|\theta^{t+1})\ge{P(Y|\theta^{t})} P(Yθt+1)P(Yθt)
​ 所以呢?既然算法本身可行,那直接用来解前面的问题就可以了嘛

案例求解

​ 在求解之前,为了防止出现误解,我们先对之前的所有的量都重定义一下,先先来定义一下观测变量y
Y = ( y 1 y 2 ⋮ y n ) Y=

(y1y2yn)
Y= y1y2yn
​ 这里的Y表示其包含了所有数据,前面提到过,而 y i y_i yi代表第i个数据。这些数据也被称为观测数据。也就是案例中我们观测到的数据(0或1)

​ 除此之外,还有一个隐变量z,这些隐变量,实际上就是上文中提到的每次选出一个观测变量y,都会有一个对应的隐数据Z,也就是投掷硬币A得出的结果。定义隐变量z
Z = ( z 1 z 2 ⋮ z n ) Z=

(z1z2zn)
Z= z1z2zn
z i z_i zi代表第i次实验得到的隐藏数据。

​ 而隐变量和观测变量的对应数据的结合也被称为完整数据
( Y , Z ) = ( ( y 1 , z 1 ) ( y 2 , z 2 ) ⋮ ( y n , z n ) ) (Y,Z)=

((y1,z1)(y2,z2)(yn,zn))
(Y,Z)= (y1,z1)(y2,z2)(yn,zn)
​ 而对于硬币A,B,C正面的概率,为了方便表达我们做出以下定义

A正( C 1 C1 C1)反( C 2 C2 C2)
P P P π 1 \pi_1 π1 π 2 \pi_2 π2

C 1 C1 C1用作标记,下文中记作 C k Ck Ck,方便后面写并且 π 1 + π 2 = 1 \pi_1+\pi_2=1 π1+π2=1,即 ∑ k = 1 2 = 1 \sum\limits_{k=1}^2=1 k=12=1

​ 而对于B,C

B&CB正( C 1 C1 C1)C正( C 2 C2 C2))
P P P p 1 p_1 p1 p 2 p_2 p2

​ 现在,我们回顾一下我们的目标
max ⁡ θ P ( Y ∣ θ ) \max\limits_{\theta}P(Y|\theta) θmaxP(Yθ)
​ 要使用EM对其求解,我们就要求出(Z是离散变量,故用 ∑ \sum
E P ( Z ∣ Y , θ t ) [ l o g P ( Z , Y ∣ θ ) ] = ∑ Z l o g P ( Z , Y ∣ θ ) P ( Z ∣ Y , θ t ) = ∑ Z l o g ∏ i = i n P ( z i , y i ∣ θ ) ∏ i = 1 P ( z i ∣ y i , θ t )

EP(Z|Y,θt)[logP(Z,Y|θ)]=ZlogP(Z,Y|θ)P(Z|Y,θt)=Zlogi=inP(zi,yi|θ)i=1P(zi|yi,θt)
==EP(ZY,θt)[logP(Z,Yθ)]ZlogP(Z,Yθ)P(ZY,θt)Zlogi=inP(zi,yiθ)i=1P(ziyi,θt)
​ 在一般的算法模型中,一般情况下我们都会消去连乘号,因为其计算量相对复杂,并且求导的难度也大。

所以
∑ Z l o g ∏ i = i n P ( z i , y i ∣ θ ) ∏ i = 1 P ( z i ∣ y i , θ t ) = ∑ Z ∑ i = 1 n l o g P ( z i , y i ∣ θ ) ∏ i = 1 P ( z i ∣ y i , θ t ) = ∑ Z [ l o g P ( z 1 , y 1 ∣ θ ) + l o g P ( z 2 , y 2 ∣ θ ) + ⋯ + l o g P ( z n , y n ∣ θ ) ] ∏ i = 1 P ( z i ∣ y i , θ t ) = ∑ z 1 , z 2 ⋯   , z n [ l o g P ( z 1 , y 1 ∣ θ ) + l o g P ( z 2 , y 2 ∣ θ ) + ⋯ + l o g P ( z n , y n ∣ θ ) ] ∏ i = 1 P ( z i ∣ y i , θ t ) = ∑ z 1 , z 2 ⋯   , z n l o g P ( z 1 , y 1 ∣ θ ) ∏ i = 1 P ( z i ∣ y i , θ t ) + ∑ z 1 , z 2 ⋯   , z n l o g P ( z 2 , y 2 ∣ θ ) ∏ i = 1 P ( z i ∣ y i , θ t ) + ⋯ + ∑ z 1 , z 2 ⋯   , z n l o g P ( z n , y n ∣ θ ) ∏ i = 1 P ( z i ∣ y i , θ t )

Zlogi=inP(zi,yi|θ)i=1P(zi|yi,θt)=Zi=1nlogP(zi,yi|θ)i=1P(zi|yi,θt)=Z[logP(z1,y1|θ)+logP(z2,y2|θ)++logP(zn,yn|θ)]i=1P(zi|yi,θt)=z1,z2,zn[logP(z1,y1|θ)+logP(z2,y2|θ)++logP(zn,yn|θ)]i=1P(zi|yi,θt)=z1,z2,znlogP(z1,y1|θ)i=1P(zi|yi,θt)+z1,z2,znlogP(z2,y2|θ)i=1P(zi|yi,θt)++z1,z2,znlogP(zn,yn|θ)i=1P(zi|yi,θt)
====Zlogi=inP(zi,yiθ)i=1P(ziyi,θt)Zi=1nlogP(zi,yiθ)i=1P(ziyi,θt)Z[logP(z1,y1θ)+logP(z2,y2θ)++logP(zn,ynθ)]i=1P(ziyi,θt)z1,z2,zn[logP(z1,y1θ)+logP(z2,y2θ)++logP(zn,ynθ)]i=1P(ziyi,θt)z1,z2,znlogP(z1,y1θ)i=1P(ziyi,θt)+z1,z2,znlogP(z2,y2θ)i=1P(ziyi,θt)++z1,z2,znlogP(zn,ynθ)i=1P(ziyi,θt)
​ 我们先看第一项
∑ z 1 , z 2 ⋯   , z n l o g P ( z 1 , y 1 ∣ θ ) ∏ i = 1 P ( z i ∣ y i , θ t ) = ∑ z 1 , z 2 ⋯   , z n l o g P ( z 1 , y 1 ∣ θ ) P ( z 1 ∣ y 1 , θ t ) ∏ i = 2 P ( z i ∣ y i , θ t ) = ∑ z 1 l o g P ( z 1 , y 1 ∣ θ ) P ( z 1 ∣ y 1 , θ t ) ∑ z 2 ⋯   , z n ∏ i = 2 P ( z i ∣ y i , θ t ) 因为 ∑ z 2 ⋯   , z n ∏ i = 2 P ( z i ∣ y i , θ t ) 积分为 1 = ∑ z 1 l o g P ( z 1 , y 1 ∣ θ ) P ( z 1 ∣ y 1 , θ t )
z1,z2,znlogP(z1,y1|θ)i=1P(zi|yi,θt)=z1,z2,znlogP(z1,y1|θ)P(z1|y1,θt)i=2P(zi|yi,θt)=z1logP(z1,y1|θ)P(z1|y1,θt)z2,zni=2P(zi|yi,θt)z2,zni=2P(zi|yi,θt)1=z1logP(z1,y1|θ)P(z1|y1,θt)
===z1,z2,znlogP(z1,y1θ)i=1P(ziyi,θt)z1,z2,znlogP(z1,y1θ)P(z1y1,θt)i=2P(ziyi,θt)z1logP(z1,y1θ)P(z1y1,θt)z2,zni=2P(ziyi,θt)因为z2,zni=2P(ziyi,θt)积分为1z1logP(z1,y1θ)P(z1y1,θt)

​ 所以所有项相加就得
E P ( Z ∣ Y , θ t ) [ l o g P ( Z , Y ∣ θ ) ] = ∑ i = 1 n ∑ z i l o g P ( z i , y i ∣ θ ) P ( z i ∣ y i , θ t ) = ∑ i = 1 n ∑ k = 1 2 l o g P ( z i = C k , y i ∣ θ ) P ( z i = C k ∣ y i , θ t ) = ∑ k = 1 2 ∑ i = 1 n l o g P ( z i = C k , y i ∣ θ ) P ( z i = C k ∣ y i , θ t )

EP(Z|Y,θt)[logP(Z,Y|θ)]=i=1nzilogP(zi,yi|θ)P(zi|yi,θt)=i=1nk=12logP(zi=Ck,yi|θ)P(zi=Ck|yi,θt)=k=12i=1nlogP(zi=Ck,yi|θ)P(zi=Ck|yi,θt)
===EP(ZY,θt)[logP(Z,Yθ)]i=1nzilogP(zi,yiθ)P(ziyi,θt)i=1nk=12logP(zi=Ck,yiθ)P(zi=Ckyi,θt)k=12i=1nlogP(zi=Ck,yiθ)P(zi=Ckyi,θt)
​ 因此,式子最终变成了连加,接下来只要求出对应的概率即可

​ 先看 P ( y ) P(y) P(y),省略掉 θ \theta θ,因为他是参数,不是随机变量,因此对任意一个 y i y_i yi,有
P ( y i ) = ∑ z i P ( y i , z i ) = ∑ z i P ( y i ∣ z i ) P ( z i ) = ∑ k = 1 K P ( y i ∣ z i = C k ) P ( z i = C k ) = ∑ k = 1 K p k y i ( 1 − p k ) 1 − y i π k

P(yi)=ziP(yi,zi)=ziP(yi|zi)P(zi)=k=1KP(yi|zi=Ck)P(zi=Ck)=k=1Kpkyi(1pk)1yiπk
P(yi)====ziP(yi,zi)ziP(yizi)P(zi)k=1KP(yizi=Ck)P(zi=Ck)k=1Kpkyi(1pk)1yiπk
​ 再看 P ( y , z ) P(y,z) P(y,z)
P ( y i , z i = C k ) = P ( y i ∣ z i = C k ) P ( z i = C k ) = p k y i ( 1 − p k ) 1 − y i π k
P(yi,zi=Ck)=P(yi|zi=Ck)P(zi=Ck)=pkyi(1pk)1yiπk
P(yi,zi=Ck)==P(yizi=Ck)P(zi=Ck)pkyi(1pk)1yiπk

​ 对于 P ( z ∣ y ) P(z|y) P(zy)
P ( z i = C k ∣ y i ) = P ( z i = C k , y i ) P ( y i ) = p k y i ( 1 − p k ) 1 − y i π k ∑ k = 1 K p k y i ( 1 − p k ) 1 − y i π k
P(zi=Ck|yi)=P(zi=Ck,yi)P(yi)=pkyi(1pk)1yiπkk=1Kpkyi(1pk)1yiπk
P(zi=Ckyi)==P(yi)P(zi=Ck,yi)k=1Kpkyi(1pk)1yiπkpkyi(1pk)1yiπk

​ 请注意分子和分母的 k k k,分子的 k k k是输入的值,而分母的 k k k是求和符滴。

​ 所以最终结果为
E P ( Z ∣ Y , θ t ) [ l o g P ( Z , Y ∣ θ ) ] = ∑ k = 1 2 ∑ i = 1 n l o g P ( z i = C k , y i ∣ θ ) P ( z i = C k ∣ y i , θ t ) = ∑ k = 1 2 ∑ i = 1 n l o g [ p k y i ( 1 − p k ) 1 − y i π k ] P ( z i = C k ∣ y i , θ t ) = ∑ k = 1 2 ∑ i = 1 n [ l o g π k + y i l o g p k + ( 1 − y k ) l o g ( 1 − p k ) ] P ( z i = C k ∣ y i , θ t )

EP(Z|Y,θt)[logP(Z,Y|θ)]=k=12i=1nlogP(zi=Ck,yi|θ)P(zi=Ck|yi,θt)=k=12i=1nlog[pkyi(1pk)1yiπk]P(zi=Ck|yi,θt)=k=12i=1n[logπk+yilogpk+(1yk)log(1pk)]P(zi=Ck|yi,θt)
===EP(ZY,θt)[logP(Z,Yθ)]k=12i=1nlogP(zi=Ck,yiθ)P(zi=Ckyi,θt)k=12i=1nlog[pkyi(1pk)1yiπk]P(zi=Ckyi,θt)k=12i=1n[logπk+yilogpk+(1yk)log(1pk)]P(zi=Ckyi,θt)
​ 要求 θ t + 1 = max ⁡ θ E P ( Z ∣ Y , θ t ) [ l o g P ( Z , Y ∣ θ ) ] {\theta^{t+1}}=\max\limits_{\theta}{E_{P(Z|Y,\theta^{t})}\left[logP(Z,Y|\theta)\right]} θt+1=θmaxEP(ZY,θt)[logP(Z,Yθ)]

​ 就要对其关于 θ \theta θ求导,因为 θ = { π , p } \theta=\left\{\pi,p\right\} θ={π,p},因为他们又分为几个分量,比如 π = { π 1 , π 2 } \pi=\left\{\pi_1,\pi_2\right\} π={π1,π2},式子中又仅存在 π k \pi_k πk,故对 π k \pi_k πk求导。但是还有一个约束条件,就是前面提到的 ∑ k = 1 2 π k = 1 \sum\limits_{k=1}^2\pi_k=1 k=12πk=1,因此这是一个带约束的优化问题。

​ 故构造拉格朗日函数
L ( θ , λ ) = ∑ k = 1 K ∑ i = 1 n [ l o g π k + y i l o g p k + ( 1 − y k ) l o g ( 1 − p k ) ] P ( z i = C k ∣ y i , θ t ) + λ [ ∑ k = 1 2 π k − 1 ] L(\theta,\lambda)=\sum\limits_{k=1}^K\sum\limits_{i=1}^n\left[log \pi_k+y_ilogp_k+(1-y_k)log(1-p_k) \right]P(z_i=Ck|y_i,\theta^t)+\lambda\left[\sum\limits_{k=1}^2\pi_k-1\right] L(θ,λ)=k=1Ki=1n[logπk+yilogpk+(1yk)log(1pk)]P(zi=Ckyi,θt)+λ[k=12πk1]
​ 对 π k \pi_k πk求导
∂ L ( θ , λ ) ∂ π k = ∑ i = 1 n 1 π k P ( z i = C k ∣ y i , θ t ) + λ = 0 等式左右乘以 π k 得 ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) + λ π k = 0

L(θ,λ)πk=i=1n1πkP(zi=Ck|yi,θt)+λ=0πki=1nP(zi=Ck|yi,θt)+λπk=0
=πkL(θ,λ)i=1nπk1P(zi=Ckyi,θt)+λ=0等式左右乘以πki=1nP(zi=Ckyi,θt)+λπk=0
​ 我们知道,对于 π k \pi_k πk里面的 k k k,在本文中可以取到 π 1 \pi_1 π1 π 2 \pi_2 π2,所以依据 ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) + λ π k = 0 \sum\limits_{i=1}^nP(z_i=Ck|y_i,\theta^t)+\lambda{\pi_k}=0 i=1nP(zi=Ckyi,θt)+λπk=0,有
∑ i = 1 n P ( z i = C 1 ∣ y i , θ t ) + λ π 1 = 0 ∑ i = 1 n P ( z i = C 2 ∣ y i , θ t ) + λ π 2 = 0 \sum\limits_{i=1}^nP(z_i=C1|y_i,\theta^t)+\lambda{\pi_1}=0 \\\sum\limits_{i=1}^nP(z_i=C2|y_i,\theta^t)+\lambda{\pi_2}=0 i=1nP(zi=C1∣yi,θt)+λπ1=0i=1nP(zi=C2∣yi,θt)+λπ2=0
​ 也即
∑ i = 1 n P ( z i = C 1 ∣ y i , θ t ) + λ π 1 + ∑ i = 1 n P ( z i = C 2 ∣ y i , θ t ) + λ π 2 = 0 \sum\limits_{i=1}^nP(z_i=C1|y_i,\theta^t)+\lambda{\pi_1}+\sum\limits_{i=1}^nP(z_i=C2|y_i,\theta^t)+\lambda{\pi_2}=0 i=1nP(zi=C1∣yi,θt)+λπ1+i=1nP(zi=C2∣yi,θt)+λπ2=0
​ 即
∑ k = 1 2 [ ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) + λ π k ] = 0 即 ∑ k = 1 2 ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) + ∑ k = 1 2 λ π k = 0 ∑ i = 1 n ∑ k = 1 2 P ( z i = C k ∣ y i , θ t ) + λ ∑ k = 1 2 π k = 0 因为 ∑ k = 1 2 P ( z i = C k ∣ y i , θ t ) = ∑ z i P ( z i ∣ y i , θ t ) = 1 所以 ∑ i = 1 n 1 + λ = 0 → n + λ = 0 → λ = − n
k=12[i=1nP(zi=Ck|yi,θt)+λπk]=0k=12i=1nP(zi=Ck|yi,θt)+k=12λπk=0i=1nk=12P(zi=Ck|yi,θt)+λk=12πk=0k=12P(zi=Ck|yi,θt)=ziP(zi|yi,θt)=1i=1n1+λ=0n+λ=0λ=n
k=12[i=1nP(zi=Ckyi,θt)+λπk]=0k=12i=1nP(zi=Ckyi,θt)+k=12λπk=0i=1nk=12P(zi=Ckyi,θt)+λk=12πk=0因为k=12P(zi=Ckyi,θt)=ziP(ziyi,θt)=1所以i=1n1+λ=0n+λ=0λ=n

​ 将所得结果回代 ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) + λ π k = 0 \sum\limits_{i=1}^nP(z_i=Ck|y_i,\theta^t)+\lambda{\pi_k}=0 i=1nP(zi=Ckyi,θt)+λπk=0
∑ i = 1 n P ( z i = C k ∣ y i , θ t ) − n π k = 0 \sum\limits_{i=1}^nP(z_i=Ck|y_i,\theta^t)-n{\pi_k}=0 i=1nP(zi=Ckyi,θt)nπk=0
​ 移向整理得
π k = 1 n ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) \pi_k=\frac{1}{n}\sum\limits_{i=1}^nP(z_i=Ck|y_i,\theta^t) πk=n1i=1nP(zi=Ckyi,θt)
​ 再让原来的拉格朗日函数对 p k p_k pk求导
∂ L ( θ , λ ) ∂ p k = ∑ i = 1 n [ ( y i p k − 1 − y i 1 − p k ) P ( z i = C k ∣ y i , θ t ) ] = 0 即 ∑ i = 1 n [ ( y i ( 1 − p k ) p k ( 1 − p k ) − ( 1 − y i ) p k ( 1 − p k ) p k ) P ( z i = C k ∣ y i , θ t ) ] = 0 ∑ i = 1 n [ y i − p k p k ( 1 − p k ) P ( z i = C k ∣ y i , θ t ) ] = 0 即 1 p k ( 1 − p k ) ∑ i = 1 n [ ( y i − p k ) P ( z i = C k ∣ y i , θ t ) ] = 0 ∑ i = 1 n [ ( y i − p k ) P ( z i = C k ∣ y i , θ t ) ] = 0 ∑ i = 1 n y i P ( z i = C k ∣ y i , θ t ) − ∑ i = 1 n p k P ( z i = C k ∣ y i , θ t ) = 0 即 ∑ i = 1 n y i P ( z i = C k ∣ y i , θ t ) − p k ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) = 0 移项得: p k = ∑ i = 1 n y i P ( z i = C k ∣ y i , θ t ) ∑ i = 1 n P ( z i = C k ∣ y i , θ t )
L(θ,λ)pk=i=1n[(yipk1yi1pk)P(zi=Ck|yi,θt)]=0i=1n[(yi(1pk)pk(1pk)(1yi)pk(1pk)pk)P(zi=Ck|yi,θt)]=0i=1n[yipkpk(1pk)P(zi=Ck|yi,θt)]=01pk(1pk)i=1n[(yipk)P(zi=Ck|yi,θt)]=0i=1n[(yipk)P(zi=Ck|yi,θt)]=0i=1nyiP(zi=Ck|yi,θt)i=1npkP(zi=Ck|yi,θt)=0i=1nyiP(zi=Ck|yi,θt)pki=1nP(zi=Ck|yi,θt)=0pk=i=1nyiP(zi=Ck|yi,θt)i=1nP(zi=Ck|yi,θt)
=移项得:pkL(θ,λ)i=1n[(pkyi1pk1yi)P(zi=Ckyi,θt)]=0i=1n[(pk(1pk)yi(1pk)(1pk)pk(1yi)pk)P(zi=Ckyi,θt)]=0i=1n[pk(1pk)yipkP(zi=Ckyi,θt)]=0pk(1pk)1i=1n[(yipk)P(zi=Ckyi,θt)]=0i=1n[(yipk)P(zi=Ckyi,θt)]=0i=1nyiP(zi=Ckyi,θt)i=1npkP(zi=Ckyi,θt)=0i=1nyiP(zi=Ckyi,θt)pki=1nP(zi=Ckyi,θt)=0pk=i=1nP(zi=Ckyi,θt)i=1nyiP(zi=Ckyi,θt)

​ 前面我们推过
P ( z i = C k ∣ y i ) = p k y i ( 1 − p k ) 1 − y i π k ∑ k = 1 K p k y i ( 1 − p k ) 1 − y i π k
P(zi=Ck|yi)=pkyi(1pk)1yiπkk=1Kpkyi(1pk)1yiπk
P(zi=Ckyi)=k=1Kpkyi(1pk)1yiπkpkyi(1pk)1yiπk

​ 总结得到以下结果
π k = 1 n ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) ; p k = ∑ i = 1 n y i P ( z i = C k ∣ y i , θ t ) ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) \pi_k=\frac{1}{n}\sum\limits_{i=1}^nP(z_i=Ck|y_i,\theta^t); \\p_k=\frac{\sum\limits_{i=1}^ny_iP(z_i=Ck|y_i,\theta^t)}{\sum\limits_{i=1}^nP(z_i=Ck|y_i,\theta^t)} πk=n1i=1nP(zi=Ckyi,θt);pk=i=1nP(zi=Ckyi,θt)i=1nyiP(zi=Ckyi,θt)
​ 其中 P ( z i = C k ∣ y i , θ t ) P(z_i=Ck|y_i,\theta^t) P(zi=Ckyi,θt)代表用上一轮的参数求出的概率

​ 我们所要求的,是 π 1 , p 1 , p 2 \pi_1,p_1,p_2 π1,p1,p2

​ 首先,因为是迭代算法,所以我们随机初始化 π 1 t = 0.5 , p 1 t = 0.5 , p 2 t = 0.5 \pi_1^t=0.5,p_1^t=0.5,p_2^t=0.5 π1t=0.5,p1t=0.5,p2t=0.5

​ 先求出 P ( z i = C k ∣ y i , θ ) P(z_i=Ck|y_i,\theta) P(zi=Ckyi,θ),比如求 P ( z i = C 1 ∣ y i , θ ) P(z_i=C1|y_i,\theta) P(zi=C1∣yi,θ),里面所有的量我们都是知道的,求出来之后,就可以根据上面推导出来的公式求出 π 1 t + 1 , p 1 t + 1 , p 2 t + 1 = \pi_1^{t+1},p_1^{t+1},p_2^{t+1}= π1t+1,p1t+1,p2t+1=。假如
P ( z i = C 1 ∣ y i ) = p 1 y i ( 1 − p 1 ) 1 − y i π 1 ∑ k = 1 K p k y i ( 1 − p k ) 1 − y i π k 这里的参数都是 θ t π 1 t + 1 = 1 n ∑ i = 1 n P ( z i = C 1 ∣ y i , θ t ) ; p 1 t + 1 = ∑ i = 1 n y i P ( z i = C 1 ∣ y i , θ t ) ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) p 2 t + 1 = ∑ i = 1 n y i P ( z i = C 2 ∣ y i , θ t ) ∑ i = 1 n P ( z i = C k ∣ y i , θ t ) P(z_i=C1|y_i)=\frac{p_1^{y_i}(1-p_1)^{1-y_i}\pi_1}{\sum\limits_{k=1}^Kp_k^{y_i}(1-p_k)^{1-y_i}\pi_k}这里的参数都是\theta^t \\\pi_1^{t+1}=\frac{1}{n}\sum\limits_{i=1}^nP(z_i=C1|y_i,\theta^t); \\p_1^{t+1}=\frac{\sum\limits_{i=1}^ny_iP(z_i=C1|y_i,\theta^t)}{\sum\limits_{i=1}^nP(z_i=Ck|y_i,\theta^t)} \\p_2^{t+1}=\frac{\sum\limits_{i=1}^ny_iP(z_i=C2|y_i,\theta^t)}{\sum\limits_{i=1}^nP(z_i=Ck|y_i,\theta^t)} P(zi=C1∣yi)=k=1Kpkyi(1pk)1yiπkp1yi(1p1)1yiπ1这里的参数都是θtπ1t+1=n1i=1nP(zi=C1∣yi,θt);p1t+1=i=1nP(zi=Ckyi,θt)i=1nyiP(zi=C1∣yi,θt)p2t+1=i=1nP(zi=Ckyi,θt)i=1nyiP(zi=C2∣yi,θt)
​ 其中 P ( z i = C 2 ∣ y i , θ t ) = 1 − P ( z i = C 1 ∣ y i , θ t ) P(z_i=C2|y_i,\theta^t)=1-P(z_i=C1|y_i,\theta^t) P(zi=C2∣yi,θt)=1P(zi=C1∣yi,θt),以上的这些量,我们都是知道的,都是可以直接算出来的,因此只需要不断迭代更新即可。

​ 然后不断地循环这个步骤,直到模型收敛,模型什么时候收敛呢?就是当 θ t + 1 ≈ θ t \theta^{t+1}\approx\theta^{t} θt+1θt,代表收敛,我们就不必迭代更新了。

广义EM

​ 实际上,在很多情况情况下,我们并不知道 P ( Z ∣ Y , θ t ) P(Z|Y,\theta^t) P(ZY,θt)是什么,或者即便是知道了,也干脆就求不出 P ( Z ∣ Y , θ t ) P(Z|Y,\theta^t) P(ZY,θt)

​ 前面我们提到, q ( Z ) = P ( Z ∣ Y , θ t ) q(Z)=P(Z|Y,\theta^t) q(Z)=P(ZY,θt),既然求不出 P ( Z ∣ Y , θ t ) P(Z|Y,\theta^t) P(ZY,θt),那就尝试求出 q ( Z ) q(Z) q(Z)

​ 前面我们提到
l o g P ( Y ∣ θ ) = ∫ Z l o g P ( Z , Y ∣ θ ) q ( Z ) q ( Z ) d Z + ∫ Z l o g q ( Z ) P ( Z ∣ Y , θ ) q ( Z ) d Z

logP(Y|θ)=ZlogP(Z,Y|θ)q(Z)q(Z)dZ+Zlogq(Z)P(Z|Y,θ)q(Z)dZ
logP(Yθ)=Zlogq(Z)P(Z,Yθ)q(Z)dZ+ZlogP(ZY,θ)q(Z)q(Z)dZ
​ 可以 q ( Z ) q(Z) q(Z)是什么呢?Z是隐变量,我们肯定也得不出,但是否也可以像是迭代求 θ \theta θ一样,迭代求出 q ( Z ) q(Z) q(Z)?可以的。先来看求解步骤

分为两步

①固定θ q ( Z ) q + 1 = max ⁡ q ∫ Z l o g P ( Z , Y ∣ θ ) q ( Z ) q ( Z ) d Z q(Z)^{q+1}=\max\limits_{q}\int_Zlog\frac{P(Z,Y|\theta)}{q(Z)}q(Z)dZ q(Z)q+1=qmaxZlogq(Z)P(Z,Yθ)q(Z)dZ

②固定q θ t + 1 = max ⁡ θ ∫ Z l o g P ( Z , Y ∣ θ ) q ( Z ) q ( Z ) d Z \theta^{t+1}=\max\limits_{\theta}\int_Zlog\frac{P(Z,Y|\theta)}{q(Z)}q(Z)dZ θt+1=θmaxZlogq(Z)P(Z,Yθ)q(Z)dZ

​ 为何第一步是是这样呢?我们来看 l o g P ( Y ∣ θ ) logP(Y|\theta) logP(Yθ),我们希望 q ( Z ) = P ( Z ∣ Y , θ t ) q(Z)=P(Z|Y,\theta^t) q(Z)=P(ZY,θt),那么也就是要是他们的KL散度最小。第一步是固定 θ \theta θ,那么对于 l o g P ( Y ∣ θ ) logP(Y|\theta) logP(Yθ)的值就是固定的。而我们的目标,就是要使得 q ( Z ) , P ( Z ∣ Y , θ t ) q(Z),P(Z|Y,\theta^t) q(Z),P(ZY,θt)这两个分布越相近越好。因此
min ⁡ q ( Z ) ∫ Z l o g q ( Z ) P ( Z ∣ Y , θ ) q ( Z ) d Z \min\limits_{q(Z)}\int_Zlog\frac{q(Z)}{P(Z|Y,\theta)}q(Z)dZ q(Z)minZlogP(ZY,θ)q(Z)q(Z)dZ
​ 又因为 l o g P ( Y ∣ θ ) logP(Y|\theta) logP(Yθ),所以最小化这个KL散度,相当于
max ⁡ q ( Z ) ∫ Z l o g P ( Z , Y ∣ θ ) q ( Z ) q ( Z ) d Z \max\limits_{q(Z)}\int_Zlog\frac{P(Z,Y|\theta)}{q(Z)}q(Z)dZ q(Z)maxZlogq(Z)P(Z,Yθ)q(Z)dZ
​ 因此。实际上这个广义EM的第一步就是找出一个与 P ( Z ∣ Y , θ t ) P(Z|Y,\theta^t) P(ZY,θt)最相近的 q ( Z ) q(Z) q(Z),找到了之后实际上就是又回到了狭义EM的那一个步骤。

结束

以上便是EM算法的推导和案例讲解,我也正是在学习的,如有问题,还望点点您的小手指给我指出,阿里嘎多
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/347706
推荐阅读
相关标签
  

闽ICP备14008679号