EM算法

 

 

背景知识

相似三角形

  1. 定理:两角分别对应相等的两个三角形相似。
  2. 定理:相似三角形任意对应线段的比等于相似比。

梯形中位线推论

梯形

已知:在梯形ABCD中,AB//DCAB=a,DC=bE为边AB上的任意一点,EF//DC,且EFBC相交与点F

结论:EF=n*a + m*bm + n

证明:过E做直线HI平行于BC,由相似三角形定理可知,AEHEDI

所以,AEED=HADI=EF - ab - EF=mn

化简可得:EF=n*a + m*bm + n

特别地,当m+n=1时,EF=n*a + (1-n)*b

Jensen(琴生)不等式

Jensen不等式

f是凸函数,则:

(1)f(λx1+(1λ)x2)λf(x1)+(1λ)f(x2)λ[0,1]f

证明1:令x=λx1+(1λ)x2,直线与曲线相交的两点分别为(x1,f(x1))(x2,f(x2))

根据直线两点式,可得直线方程为 f(x2)f(x1)x2x1=f(x)f(x1)xx1

x=λx1+(1λ)x2时,y=λf(x1)+(1λ)f(x2)

 

证明2:令x=λx1+(1λ)x2

因为λ[0,1],所以x[x1,x2]

因为xx1x2x=λx1+(1λ)x2x1x2λx1(1λ)x2=(1λ)(x2x1)λ(x2x1)=1λλ

根据梯形推导公式可得:

y=AB=λf(x1)+(1λ)f(x2)

 

将上式中的λ推广到n个同样成立,即:

(2)f(λ1x1+λ2x2++λnxn)λ1f(x1)+λ2f(x2)++λnf(xn)λ1,λ2,,λn[0,1],λ1+λ2++λn=1

如果将t看做概率分布,则在概率论中:

(3)f(E[X])E[f(x)]fXE[X]X

 

期望

对随机变量xi,对应的概率为pi,则随机变量x的期望为:

(4)E(x)=i=1nxipi

三硬币模型引入

问题:假设有3枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别是 π,pq。进行如下掷硬币试验: 先掷硬币A,根据其结果选出硬币B或硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,掷硬币的结果,出现正面记作1,出现反面记作0;独立地重复n次试验(这里,n=10),观测结果如下: 1101001011 假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币正面出现的概率,即三硬币模型的参数。

解:对每一次试验可如下建模

(5)P(yθ)=zP(y,zθ)=zP(zθ)P(yz,θ)=P(z=1θ)P(yz=1,θ)+P(z=0θ)P(yz=0,θ)={πp+(1π)q, if y=1;π(1p)+(1π)(1q), if y=0;=πpy(1p)1y+(1π)qy(1q)1yy10zAθ=(π,p,q)Y=(Y1,Y2,...,Yn)TZ=(Z1,Z2,...,Zn)T

则观测数据的似然函数为:

(6)P(Yθ)=ZP(Y,Zθ)=ZP(Zθ)P(YZ,θ)=j=1nP(yjθ)=j=1n[πpyj(1p)1yj+(1π)qyj(1q)1yj]

考虑求模型参数θ=(π,p,q)的极大似然估计,即使用对数似然函数来进行参数估计,可得:

(7)θ^=argmaxθlnP(Yθ)=argmaxθlnj=1n[πpyj(1p)1yj+(1π)qyj(1q)1yj]=argmaxθj=1nln[πpyj(1p)1yj+(1π)qyj(1q)1yj]

上式没有解析解,也就是没有办法直接通过求导方式解出(π,p,q)的值,只能使用迭代法进行求解。

 

EM算法

为什么需要EM算法

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

EM算法推导

当面对含有隐变量的模型时,目标是极大化观测数据Y关于参数θ的对数似然函数,即极大化:

(8)L(θ)=lnP(Yθ)=lnZP(Y,Zθ)=ln(ZP(YZ,θ)P(Zθ))

注意到这一极大化的主要困难是上式中有未观测数据Z并有包含和(Z为离散型时)或 者积分(Z为连续型时)的对数。EM算法采用的是通过迭代逐步近似极大化 L(θ) 假设在第i次迭代后 θ 的估计值是 θ(i), 我们希望新的估计值 θ 能使 L(θ) 增加,即 L(θ)>L(θ(i)) 并逐步达到极大值。为此,我们考虑两者的差:

(9)L(θ)L(θ(i))=ln(ZP(YZ,θ)P(Zθ))lnP(Yθ(i))=ln(ZP(ZY,θ(i))P(YZ,θ)P(Zθ)P(ZY,θ(i)))lnP(Yθ(i))ZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))lnP(Yθ(i))=ZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))1lnP(Yθ(i))=ZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))ZP(ZY,θ(i))lnP(Yθ(i))=ZP(ZY,θ(i))(lnP(YZ,θ)P(Zθ)P(ZY,θ(i))lnP(Yθ(i)))=ZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))P(Yθ(i))

L(θ(i))移项,令:

(10)B(θ,θ(i))=L(θ(i))+ZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))P(Yθ(i))

则:

(11)L(θ)B(θ,θ(i))

即函数B(θ,θ(i))L(θ)的一个下界函数。

此时,若设θi+1使得B(θ,θ(i))达到极大,也就意味着:

(12)B(θ(i+1),θ(i))B(θ(i),θ(i))

由于:

(13)B(θ(i),θ(i))=L(θ(i))+ZP(ZY,θ(i))lnP(YZ,θ(i))P(Zθ(i))P(ZY,θ(i))P(Yθ(i))=L(θ(i))+ZP(ZY,θ(i))lnP(Y,Zθ(i))P(Z,Yθ(i))=L(θ(i))

进一步可推得:

(14)L(θ(i+1))B(θ(i+1),θ(i))B(θ(i),θ(i))=L(θ(i))

即:

(15)L(θ(i+1))L(θ(i))

因此,任何能使得B(θ,θ(i))增大的θ,也可以使L(θ)增大。于是,问题就转化为求解能使得B(θ,θ(i))到达极大的θi+1,即:

(16)θ(i+1)=argmaxθB(θ,θ(i))=argmaxθ(L(θ(i))+ZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))P(Yθ(i)))=argmaxθ(ZP(ZY,θ(i))ln(P(YZ,θ)P(Zθ)))=argmaxθ(ZP(ZY,θ(i))lnP(Y,Zθ))=argmaxθQ(θ,θ(i))

至此,完成了EM算法的一次迭代,求出的θ(i+1)作为下一次迭代的初始θ(i)

综上所述,可以总结出EM算法的“E步”和“M步”分别为:

  1.  E步:导出Q函数 

    计算完全数据的对数似然函数lnP(Y,Zθ)关于给定观测数据Y和当前参数θ下对未观测数据Z的条件概率分布 P(ZY,θ(i))的期望,也即Q函数:

    (17)Q(θ,θ(i))=EZ[lnP(Y,Zθ)Y,θ(i)]=ZP(ZY,θ(i))lnP(Y,Zθ)
  2.  M步:Q函数极大 

    求使得Q函数达到极大的θ(i+1)

 

使用EM求解三硬币模型

求解思路:

  1.  E步:导出Q函数 
  2.  M步:求使得Q函数达到极大的 θ(i+1)=(π(i+1),p(i+1),q(i+1))

E步:导出Q函数

(18)Q(θθ(i))=ZP(ZY,θ(i))lnP(Y,Zθ)=z1,z2,,zN{j=1NP(zjyj,θ(i))ln[j=1NP(yj,zjθ)]}=z1,z2,,zN{j=1NP(zjyj,θ(i))[j=1NlnP(yj,zjθ)]}=z1,z2,,zN{j=1NP(zjyj,θ(i))[lnP(y1,z1θ)+j=2NlnP(yj,zjθ)]}=z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(y1,z1θ)+j=1NP(zjyj,θ(i))[j=2NlnP(yj,zjθ)]}=z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(y1,z1θ)}+z1,z2,,zN{j=1NP(zjyj,θ(i))[j=2NlnP(yj,zjθ)]}=z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(y1,z1θ)}+z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(y2,z2θ)}++z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(yN,zNθ)}

 

单独考察 z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(y1,z1θ)}

(19)z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(y1,z1θ)}=z1,z2,,zN{j=2NP(zjyj,θ(i))P(z1y1,θ(i))lnP(y1,z1θ)}=z2,zN{j=2NP(zjyj,θ(i))P(z1=1y1,θ(i))lnP(y1,z1=1θ)}+z2,,zN{j=2NP(zjyj,θ(i))P(z1=0y1,θ(i))lnP(y1,z1=0θ)}=P(z1=1y1,θ(i))lnP(y1,z1=1θ)z2,,zN{j=2NP(zjyj,θ(i))}+P(z1=0y1,θ(i))lnP(y1,z1=0θ)z2,zN{j=2NP(zjyj,θ(i))}=[P(z1=1y1,θ(i))lnP(y1,z1=1θ)+P(z1=0y1,θ(i))lnP(y1,z1=0θ)]z2,,zN{j=2NP(zjyj,θ(i))}=z1P(z1y1,θ(i))lnP(y1,z1θ)z2,,zN{j=2NP(zjyj,θ(i))}=z1P(z1y1,θ(i))lnP(y1,z1θ){z3,,zN[j=3NP(zjyj,θ(i))P(z2=1y2,θ(i))]+z3,,zN[j=3NP(zjyj,θ(i))P(z2=0y2,θ(i))]}=z1P(z1y1,θ(i))lnP(y1,z1θ){P(z2=1y2,θ(i))z3,,zN[j=3NP(zjyj,θ(i))]+P(z2=0y2,θ(i))z3,,zN[j=3NP(zjyj,θ(i))]}=z1P(z1y1,θ(i))lnP(y1,z1θ){[P(z2=1y2,θ(i))+P(z2=0y2,θ(i))]z1,,zN[j=3NP(zjyj,θ(i))]}=z1P(z1y1,θ(i))lnP(y1,z1θ){z2P(z2y2,θ(i))z1,,zN[j=3NP(zjyj,θ(i)]}=z1P(z1y1,θ(i))lnP(y1,z1θ){z2P(z2y2,θ(i))×z3P(z3y3,θ(i))××zNP(zNyN,θ(i))}=z1P(z1y1,θ(i))lnP(y1,z1θ)×{1×1××1}=z1P(z1y1,θ(i))lnP(y1,z1θ)

 

所以,

(20)z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(y1,z1θ)}=z1P(z1y1,θ(i))lnP(y1,z1θ)

将其带回Q函数可得:

(21)Q(θθ(i))=z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(y1,z1θ)}+z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(y2,z2θ)}++z1,z2,,zN{j=1NP(zjyj,θ(i))lnP(yN,zNθ)}=z1P(z1y1,θ(i))lnP(y1,z1θ)++zNP(zNyN,θ(i))lnP(yN,zNθ)=j=1N[zjP(zjyj,θ(i))lnP(yj,zjθ)]=j=1N[P(zj=1yj,θ(i))lnP(yj,zj=1θ)+P(zj=0yj,θ(i))lnP(yj,zj=0θ)]

由于:

(22){P(yj,zj=1θ)=πpyj(1p)1yjP(yj,zj=0θ)=(1π)qyj(1q)1yj{P(zj=1yj,θ(i))=P(zj=1,yjθ(i))P(yjθ(i))=π(i)[p(i)]yj(1p(i))1yjπ(i)[p(i)]yj(1p(i))1yj+(1π(i))[q(i)]yj(1q(i))1yj=μj(i+1)P(zj=0yj,θ(i))=1P(zj=1yj,θ(i))=(1μj(i+1))

所以,Q函数的最终形式为:

(23)Q(θθ(i))=j=1N{μj(i+1)ln[πpyj(1p)1yj]+(1μj(i+1))ln[(1π)qyj(1q)1yj]}

求Q函数达到极大的参数

该步骤求使得Q函数达到极大的θ(i+1)=(π(i+1),p(i+1),q(i+1))

π求偏导

Q函数关于π求一阶偏导数,并令一阶偏导数为0:

(24)Q(θθ(i))π=j=1Nπ{μj(i+1)ln[πpyj(1p)1yj]+(1μj(i+1))ln[(1π)qyj(1q)1yj]}=j=1N{μj(i+1)pyj(1p)1yjπpyj(1p)1yj+(1μj(i+1))qyj(1q)1yj(1π)qyj(1q)1yj}=j=1N{μj(i+1)(1π)pyj(1p)1yjqj(1q)1yjπ(1π)pyj(1p)1yjqyj(1q)1yj+(μj(i+1)1)πpj(1p)1yjqyj(1q)1yjπ(1π)pyj(1p)1yjqyj(1q)1yj}=j=1N{μj(i+1)pyj(1p)1yjqyj(1q)1yjπpyj(1p)1yjqyj(1q)1yjπ(1π)pyj(1p)1yjqyj(1q)1yj}=j=1N[μj(i+1)ππ(1π)]=j=1Nμj(i+1)j=1Nππ(1π)=j=1Nμj(i+1)Nππ(1π)

令上式为0,可得:

(25)Q(θθ(i))π=j=1Nμj(i+1)Nππ(1π)=0j=1Nμj(i+1)Nπ=0Nπ=j=1Nμj(i+1)π=1Nj=1Nμj(i+1)π(i+1)=1Nj=1Nμj(i+1)

p求偏导

Q函数关于p求一阶偏导数,并令一阶偏导数为0:

(26)Q(θθ(i))p=j=1Np{μj(i+1)ln[πpyj(1p)1yj]+(1μj(i+1))ln[(1π)qyj(1q)1yj]}=j=1Np{μj(i+1)ln[πpyj(1p)1yj]}=j=1Np{μj(i+1)[lnπ+yjlnp+(1yj)ln(1p)]}=j=1Np{μj(i+1)lnπ+μj(i+1)yjlnp+μj(i+1)(1yj)ln(1p)}=j=1Np{μj(i+1)yjlnp+μj(i+1)(1yj)ln(1p)}=j=1N{μj(i+1)yjp+(1)μj(i+1)(1yj)(1p)}=j=1Nμj(i+1)yjpj=1Nμj(i+1)(1yj)(1p)=j=1Nμj(i+1)yjpj=1Nμj(i+1)(1yj)(1p)

令上式等于0可得:

(27)Q(θθ(i))p=j=1Nμj(i+1)yjpj=1Nμj(i+1)(1yj)(1p)=0j=1Nμj(i+1)yjp=j=1Nμj(i+1)(1yj)(1p)(1p)j=1Nμj(i+1)yj=pj=1Nμj(i+1)(1yj)j=1Nμj(i+1)yjpj=1Nμj(i+1)yj=pj=1Nμj(i+1)pj=1Nμj(i+1)yjj=1Nμj(i+1)yj=pj=1Nμj(i+1)p=j=1Nμj(i+1)yjj=1Nμj(i+1)p(i+1)=j=1Nμj(i+1)yjj=1Nμj(i+1)

q求偏导

Q函数关于q求一阶偏导数,并令一阶偏导数为0:

(28)Q(θθ(i))q=j=1Nq{μj(i+1)ln[πpyj(1p)1yj]+(1μj(i+1))ln[(1π)qyj(1q)1yj]}=j=1Nq{(1μj(i+1))ln[(1π)qyj(1q)1yj]}=j=1Nq{(1μj(i+1))[ln(1π)+yjlnq+(1yj)ln(1q)]}=j=1Nq{(1μj(i+1))ln(1π)+(1μj(i+1))yjlnq+(1μj(i+1))(1yj)ln(1q)}=j=1Nq{(1μj(i+1))yjlnq+(1μj(i+1))(1yj)ln(1q)}=j=1N{(1μj(i+1))yjq+(1)(1μj(i+1))(1yj)(1q)}=j=1N(1μj(i+1))yjqj=1N(1μj(i+1))(1yj)(1q)=j=1N(1μj(i+1))yjqj=1N(1μj(i+1))(1yj)(1q)

令上式等于0可得:

(29)Q(θθ(i))q=j=1N(1μj(i+1))yjqj=1N(1μj(i+1))(1yj)(1q)=0j=1N(1μj(i+1))yjq=j=1N(1μj(i+1))(1yj)(1q)(1q)j=1N(1μj(i+1))yj=qj=1N(1μj(i+1))(1yj)j=1N(1μj(i+1))yjqj=1N(1μj(i+1))yj=qj=1N(1μj(i+1))qj=1N(1μj(i+1))yjj=1N(1μj(i+1))yj=qj=1N(1μj(i+1))q=j=1N(1μj(i+1))yjj=1N(1μj(i+1))q(i+1)=j=1N(1μj(i+1))yjj=1N(1μj(i+1))

总结

综上所述,为了求Q函数的极大值,可使用如下公式进行参数迭代:

(30)π(i+1)=1Nj=1Nμj(i+1)p(i+1)=j=1Nμj(i+1)yjj=1Nμj(i+1)q(i+1)=j=1N(1μj(i+1))yjj=1N(1μj(i+1))

参考文档

  1. 从最大似然到EM算法:一致的理解方式 - 科学空间|Scientific Spaces

  2. (47条消息) EM算法之三硬币模型求解zsdust的博客-CSDN博客三硬币模型

  3. 人人都懂EM算法 - 知乎 (zhihu.com)

  4. EM算法详解 - 知乎 (zhihu.com)

  5. 【机器学习】EM——期望最大(非常详细) - 知乎 (zhihu.com)