极大似然估计
对于随机事件,在确定了概率模型,但是不确定模型参数的时候,可以用最大似然估计法来估计模型的参数。
比如,对于离散型随机事件,已知事件的概率分布函数为P(x;θ)P(x;\theta)P(x;θ)(分号左边是随机变量,分号右边是模型的参数,这个符号的意思是随机变量x的概率分布函数是以θ\thetaθ为参数的函数),我们随机采样得到nnn个样本值x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn,这n个样本值满足独立同分布,则这些样本值的联合概率为:
P(x1,x2,...,xn;θ)=P(x1;θ)∗P(x2;θ)∗...P(xn;θ)=∏i=1nP(xi;θ)P(x_1,x_2,...,x_n;\theta)=P(x_1;\theta)*P(x_2;\theta)*...P(x_n;\theta)=\prod_{i=1}^{n}P(x_i;\theta)P(x1,x2,...,xn;θ)=P(x1;θ)∗P(x2;θ)∗...P(xn;θ)=i=1∏nP(xi;θ)
但是对于该事件的概率分布函数P(x;θ)P(x;\theta)P(x;θ)的参数θ\thetaθ的取值我们并不知道,如何估计一个合理的θ\thetaθ值呢?
最大似然估计法是可以这样取θ\thetaθ的值:
θ=argmax∏i=1nP(xi;θ)\theta=argmax\prod_{i=1}^{n}P(x_i;\theta)θ=argmaxi=1∏nP(xi;θ)
背后的思想就是在众多的θ\thetaθ取值中,取使得样本出现概率最大的θ\thetaθ值。
我们定义似然函数为:
L(θ)=∏i=1nP(xi;θ)L(\theta)=\prod_{i=1}^{n}P(x_i;\theta)L(θ)=i=1∏nP(xi;θ)
有时为了计算方便,会加上对数函数,得到对数似然函数:
lnL(θ)=ln∏i=1nP(xi;θ)=∑i=1nlnP(xi;θ)lnL(\theta)=ln\prod_{i=1}^{n}P(x_i;\theta)=\sum_{i=1}^{n}lnP(x_i;\theta)lnL(θ)=lni=1∏nP(xi;θ)=i=1∑nlnP(xi;θ)
对数似然函数取平均之后得到对数平均似然函数:
ℓ^=1n∑i=1nlnP(xi;θ)\widehat \ell = \frac{1}{n}\sum_{i=1}^{n}lnP(x_i;\theta)ℓ=n1i=1∑nlnP(xi;θ)
下面通过一个例子来说明最大似然估计方法的用途:例如有一大箱苹果,有部分苹果坏了,但是坏苹果的比例未知,我们想知道有多少苹果是坏的,但是不方便把所有的苹果都倒出来数一遍。现在我们从箱子中任意拿出一个苹果来,记录苹果是否坏了,然后放回去,把苹果摇匀后再拿出来一个,记录苹果是否坏了。如果反复,假设我们记录了100次,其中有10次拿到的苹果是坏的,那么箱子中坏的苹果的比例是多少呢?是10%吗?为什么呢?
我们假设箱子中坏苹果的比例是p,每次从箱子中取出一个苹果,记录是否为坏苹果,然后再返回去摇匀,说明每次取苹果是独立同分布事件,100次中取出10次的坏苹果的似然函数是:
P=p10(1−p)90P = p^{10}(1-p)^{90}P=p10(1−p)90
为了是似然函数取值最大,p该去什么值呢?
∂P∂p=10p9(1−p)90−90p10(1−p)89=0\frac{\partial P}{\partial p} = 10p^9(1-p)^{90}-90p^{10}(1-p)^{89}=0∂p∂P=10p9(1−p)90−90p10(1−p)89=0
解出方程的解:
p=0.1p=0.1p=0.1
所以10%是对坏苹果比例的极大似然估计值。
类似的,对于连续型随机变量,已知概率密度函数为f(x;θ)f(x;\theta)f(x;θ),对于随机采样得到的n个样本x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn,满足独立同分布的条件,但是对于连续性变量求取某个特定值的概率没有意义,我们需要求落在某个值附近区域的概率,随意n次采样落到x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn附近区域的联合概率为:
f(x1;θ)Δxf(x2;θ)Δx...f(xn;θ)Δx=Δxn∏i=1nf(xi;θ)f(x_1;\theta)\Delta xf(x_2;\theta)\Delta x...f(x_n;\theta)\Delta x=\Delta x^n\prod_{i=1}^{n}f(x_i;\theta)f(x1;θ)Δxf(x2;θ)Δx...f(xn;θ)Δx=Δxni=1∏nf(xi;θ)
因为Δxn\Delta x^nΔxn是个固定的值,所以我们定义连续型随机事件的似然函数为:
L(θ)=∏i=1nf(xi;θ)L(\theta)=\prod_{i=1}^{n}f(x_i;\theta)L(θ)=i=1∏nf(xi;θ)
类似的,也可以定义它的对数平均似然函数:
ℓ^=1n∑i=1nlnf(xi;θ)\widehat \ell=\frac{1}{n}\sum_{i=1}^{n}lnf(x_i;\theta)ℓ=n1i=1∑nlnf(xi;θ)
下面我们来通过一个例子看一下连续性随机变量的极大似然估计:例如我们想要知道全国所有男性中,身高在1.7米到1.8之间的有多少人。我们没有办法统计出所有男性的身高,怎么办呢?
我们有理由相信全国男性的身高符合正太分布,也就是身高的概率密度函数为:
f(x)=1σ2πe−(x−μ)22σ2f(x)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^{2}}{2\sigma^2}}f(x)=σ2π1e−2σ2(x−μ)2
假如我们采样得到了n份身高样本[x1,x2,...,xn][x_1,x_2,...,x_n][x1,x2,...,xn],如果估计出参数μ,σ2\mu,\sigma^2μ,σ2呢?
采用极大似然估计,似然函数为:
L(μ,σ2)=∏i=1n1σ2πe−(xi−μ)22σ2=(2πσ)−n2e−12σ2∑i=1n(xi−μ)2L(\mu,\sigma^2)=\prod_{i=1}^{n}\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x_i-\mu)^2}{2\sigma^2}}=(2\pi\sigma)^{-\frac{n}{2}}e^{-\frac{1}{2\sigma^2}\sum_{i=1}^{n}(x_i-\mu)^2}L(μ,σ2)=i=1∏nσ2π1e−2σ2(xi−μ)2=(2πσ)−2ne−2σ21∑i=1n(xi−μ)2
对数似然函数为:
lnL(μ,σ2)=−n2ln(2π)−n2ln(σ2)−12σ2∑i=1n(xi−μ)2lnL(\mu,\sigma^2)=-\frac{n}{2}ln(2\pi)-\frac{n}{2}ln(\sigma^2)-\frac{1}{2\sigma^2}\sum_{i=1}^{n}(x_i-\mu)^2lnL(μ,σ2)=−2nln(2π)−2nln(σ2)−2σ21i=1∑n(xi−μ)2
求对数似然函数极值,得到一下方程组:
∂lnL(μ,σ2)∂μ=1σ2∑i=1n(xi−μ)=0\frac{\partial lnL(\mu,\sigma^2)}{\partial \mu}=\frac{1}{\sigma^2}\sum_{i=1}^{n}(x_i-\mu)=0∂μ∂lnL(μ,σ2)=σ21i=1∑n(xi−μ)=0
∂lnL(μ,σ2)∂σ=−n2σ2+12σ4∑i=1n(xi−μ)2=0\frac{\partial lnL(\mu,\sigma^2)}{\partial \sigma}=-\frac{n}{2\sigma^2}+\frac{1}{2\sigma^4}\sum_{i=1}^{n}(x_i-\mu)^2=0∂σ∂lnL(μ,σ2)=−2σ2n+2σ41i=1∑n(xi−μ)2=0
分别得出解为:
μ=1n∑i=1nxi\mu=\frac{1}{n}\sum_{i=1}^{n}x_iμ=n1i=1∑nxi
σ2=1n∑i=1n(xi−μ)2\sigma^2=\frac{1}{n}\sum_{i=1}^{n}(x_i-\mu)^2σ2=n1i=1∑n(xi−μ)2
估计出正太分布的参数后,在知道人数总量的情况下,就可以计算身高落在1.7到1.8米之间的人数了,假设男性人口总量为M:
N=M∗P(1.7<h<1.8)=M∗∫1.71.8f(x)dxN = M * P(1.7<h<1.8)=M * \int_{1.7}^{1.8}f(x)dxN=M∗P(1.7<h<1.8)=M∗∫1.71.8f(x)dx
EM算法
我们来看一个比较经典的例子:有A,B两块硬币,抛投落地后正面朝上的概率分别记为PA,PBP_A, P_BPA,PB(当然,背面朝上的概率分别为1−PA,1−PB1-P_A,1-P_B1−PA,1−PB),为了估计两个概率值,我们连续做5次实验,每次实验随机取一个硬币(等概率),随机抛投5次,记录每次抛投的结果:
实验编号 | 硬币 | 实验结果 |
---|---|---|
1 | A | 正正反正反 |
2 | B | 反反正正反 |
3 | A | 正反反反反 |
4 | B | 正反反正正 |
5 | A | 反正正反反 |
采用极大似然估计方法,很容易计算出PA,PBP_A,P_BPA,PB的估计值,A硬币的的似然函数为:
L(PA)=PA6(1−PA)9L(P_A)=P_A^{6}(1-P_A)^{9}L(PA)=PA6(1−PA)9
求极值得以下方程:
∂L∂PA=6PA5(1−PA)9−9PA6(1−PA)8=0\frac{\partial L}{\partial P_A}=6P_A^5(1-P_A)^9-9P_A^6(1-P_A)^8=0∂PA∂L=6PA5(1−PA)9−9PA6(1−PA)8=0
得出解:PA=615=0.4P_A=\frac{6}{15}=0.4PA=156=0.4
同理,得出:PB=510=0.5P_B = \frac{5}{10}=0.5PB=105=0.5
下面加大一下问题的难度,假如每次实验我们没办法知道所选的硬币是A还是B,还有办法估计A和B的正面朝上的概率PA,PBP_A,P_BPA,PB吗?
实验编号 | 硬币 | 实验结果 |
---|---|---|
1 | ? | 正正反正反 |
2 | ? | 反反正正反 |
3 | ? | 正反反反反 |
4 | ? | 正反反正正 |
5 | ? | 反正正反反 |
EM算法就排上用场了,可以按照下列步骤估计PA,PBP_A,P_BPA,PB:
- 设置PAP_APA和PBP_BPB的估计初始值,比如PA=0.2,PB=0.7P_A=0.2,P_B=0.7PA=0.2,PB=0.7
- 设置每次实验选择A,B硬币是等概率的,记为P(z=A)=P(z=B)=0.5P(z=A)=P(z=B)=0.5P(z=A)=P(z=B)=0.5,设随机变量xix_ixi表示每次实验中,硬币的朝向,目前为止我们可以得到下列方程:
P(xi∣z=A)=PA=0.2P(x_i|z=A)=P_A=0.2P(xi∣z=A)=PA=0.2
P(xi∣z=B)=PB=0.7P(x_i|z=B)=P_B=0.7P(xi∣z=B)=PB=0.7
P(x1,x2,...,x5∣z=A)=∏i=15P(xi∣z=A)P(x_1,x_2,...,x_5|z=A)=\prod_{i=1}^{5}P(x_i|z=A)P(x1,x2,...,x5∣z=A)=i=1∏5P(xi∣z=A)
P(x1,x2,...,x5∣z=B)=∏i=15P(xi∣z=B)P(x_1,x_2,...,x_5|z=B)=\prod_{i=1}^{5}P(x_i|z=B)P(x1,x2,...,x5∣z=B)=i=1∏5P(xi∣z=B)
P(x1,x2,...,x5)=P(x1,x2,...,x5∣z=A)P(z=A)+P(x1,x2,...,x5∣z=B)P(z=B)P(x_1,x_2,...,x_5)=P(x_1,x_2,...,x_5|z=A)P(z=A)+P(x_1,x_2,...,x_5|z=B)P(z=B)P(x1,x2,...,x5)=P(x1,x2,...,x5∣z=A)P(z=A)+P(x1,x2,...,x5∣z=B)P(z=B)
- 进入E步,我们计算一下再当前初始值情况下第一次实验选择了A,B硬币的后验概率,计算方式如下:
由贝叶斯公式:
P(A∣B)=P(B∣A)P(A)P(B)P(A|B)=\frac{P(B|A)P(A)}{P(B)}P(A∣B)=P(B)P(B∣A)P(A)
得到:
P(z=A∣x1,x2,...,x5)=P(x1,x2,...,x5∣z=A)P(z=A)P(x1,x2,...,x5)P(z=A|x_1,x_2,...,x_5)=\frac{P(x_1,x_2,...,x_5|z=A)P(z=A)}{P(x_1,x_2,...,x_5)}P(z=A∣x1,x2,...,x5)=P(x1,x2,...,x5)P(x1,x2,...,x5∣z=A)P(z=A)
=P(x1,x2,...,x5∣z=A)P(z=A)P(x1,x2,...,x5∣z=A)P(z=A)+P(x1,x2,...,x5∣z=B)P(z=B)=\frac{P(x_1,x_2,...,x_5|z=A)P(z=A)}{P(x_1,x_2,...,x_5|z=A)P(z=A)+P(x_1,x_2,...,x_5|z=B)P(z=B)}=P(x1,x2,...,x5∣z=A)P(z=A)+P(x1,x2,...,x5∣z=B)P(z=B)P(x1,x2,...,x5∣z=A)P(z=A)
P(z=B∣x1,x2,...,x5)=P(x1,x2,...,x5∣z=A)P(z=B)P(x1,x2,...,x5)P(z=B|x_1,x_2,...,x_5)=\frac{P(x_1,x_2,...,x_5|z=A)P(z=B)}{P(x_1,x_2,...,x_5)}P(z=B∣x1,x2,...,x5)=P(x1,x2,...,x5)P(x1,x2,...,x5∣z=A)P(z=B)
=P(x1,x2,...,x5∣z=A)P(z=A)P(x1,x2,...,x5∣z=A)P(z=A)+P(x1,x2,...,x5∣z=B)P(z=B)=\frac{P(x_1,x_2,...,x_5|z=A)P(z=A)}{P(x_1,x_2,...,x_5|z=A)P(z=A)+P(x_1,x_2,...,x_5|z=B)P(z=B)}=P(x1,x2,...,x5∣z=A)P(z=A)+P(x1,x2,...,x5∣z=B)P(z=B)P(x1,x2,...,x5∣z=A)P(z=A)
对所有的实验,采用相同的计算法方式,计算结果如下表:
实验编号 | 硬币 | 实验结果 | 硬币为A概率 | 硬币为B概率 |
---|---|---|---|---|
1 | ? | 正正反正反 | 0.14 | 0.86 |
2 | ? | 反反正正反 | 0.61 | 0.39 |
3 | ? | 正反反反反 | 0.94 | 0.06 |
4 | ? | 正反反正正 | 0.14 | 0.86 |
5 | ? | 反正正反反 | 0.61 | 0.39 |
- 进入M步,估计PA,PBP_A,P_BPA,PB的值,最大化下面函数Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i)):
Q(θ,θ(i))=∑i=15P(z(i)∣x1(i),...,x5(i),θ(i))logP(x1(i),...,x5(i),z(i)∣θ)Q(\theta,\theta^{(i)})=\sum_{i=1}^{5}P(z^{(i)}|x_1^{(i)},...,x_5^{(i)},\theta^{(i)})logP(x_1^{(i)},...,x_5^{(i)},z^{(i)}|\theta)Q(θ,θ(i))=i=1∑5P(z(i)∣x1(i),...,x5(i),θ(i))logP(x1(i),...,x5(i),z(i)∣θ)
=∑i=15P(z(i)∣x1(i),...,x5(i),θ(i))logP(x1(i),...,x5(i)∣z(i),θ)P(z(i)∣θ)=\sum_{i=1}^{5}P(z^{(i)}|x_1^{(i)},...,x_5^{(i)},\theta^{(i)})logP(x_1^{(i)},...,x_5^{(i)}|z^{(i)},\theta)P(z^{(i)}|\theta)=i=1∑5P(z(i)∣x1(i),...,x5(i),θ(i))logP(x1(i),...,x5(i)∣z(i),θ)P(z(i)∣θ)
=0.14logPA3(1−PA)2Pz+0.86logPB3(1−PB)2(1−Pz)=0.14log P_A^3(1-P_A)^2P_z+0.86logP_B^3(1-P_B)^2(1-P_z)=0.14logPA3(1−PA)2Pz+0.86logPB3(1−PB)2(1−Pz)
+0.61logPA2(1−PA)3Pz+0.39logPB2(1−PB)3(1−Pz)+0.61logP_A^2(1-P_A)^3P_z+0.39logP_B^2(1-P_B)^3(1-P_z)+0.61logPA2(1−PA)3Pz+0.39logPB2(1−PB)3(1−Pz)
+0.94logPA(1−PA)4Pz+0.06logPB(1−PB)4(1−Pz)+0.94logP_A(1-P_A)^4P_z+0.06logP_B(1-P_B)^4(1-P_z)+0.94logPA(1−PA)4Pz+0.06logPB(1−PB)4(1−Pz)
+0.14logPA3(1−PA)2Pz+0.86logPB3(1−PB)2(1−Pz)+0.14logP_A^3(1-P_A)^2P_z+0.86logP_B^3(1-P_B)^2(1-P_z)+0.14logPA3(1−PA)2Pz+0.86logPB3(1−PB)2(1−Pz)
+0.61logPA2(1−PA)3Pz+0.39logPB2(1−PB)3(1−Pz)+0.61logP_A^2(1-P_A)^3P_z+0.39logP_B^2(1-P_B)^3(1-P_z)+0.61logPA2(1−PA)3Pz+0.39logPB2(1−PB)3(1−Pz)
由取极值条件得方程组:
∂Q∂Pz=0\frac{\partial Q}{\partial P_z}=0∂Pz∂Q=0
∂Q∂PA=0\frac{\partial Q}{\partial P_A}=0∂PA∂Q=0
∂Q∂PB=0\frac{\partial Q}{\partial P_B}=0∂PB∂Q=0
求得Pz=0.49,PA=0.35,PB=0.53P_z=0.49,P_A=0.35,P_B=0.53Pz=0.49,PA=0.35,PB=0.53
- 重复以上的E和M步,直到Pz,PA,PBP_z,P_A,P_BPz,PA,PB收敛或QQQ函数收敛为止。
EM算法推导
EM算法希望通过迭代计算,最大化可观测变量的似然函数:
L(θ)=logP(Y∣θ)=log∑ZP(Y,Z∣θ)L(\theta)=logP(Y|\theta)=log\sum_{Z}P(Y,Z|\theta)L(θ)=logP(Y∣θ)=logZ∑P(Y,Z∣θ)
=log∑ZP(Y∣Z,θ)P(Z∣θ)=log\sum_{Z}P(Y|Z,\theta)P(Z|\theta)=logZ∑P(Y∣Z,θ)P(Z∣θ)
但是直接最大化此函数比较困难,函数中存在隐含变量Z.
假设我们初始的估计值为θ(0)\theta^{(0)}θ(0),第iii次的估计值为θ(i)\theta^{(i)}θ(i)
L(θ(i))=logP(Y∣θ(i))L(\theta^{(i)})=logP(Y|\theta^{(i)})L(θ(i))=logP(Y∣θ(i))
L(θ)−L(θ(i))=log∑ZP(Y,Z∣θ)−logP(Y∣θ(i))L(\theta)-L(\theta^{(i)})=log\sum_{Z}P(Y,Z|\theta)-logP(Y|\theta^{(i)})L(θ)−L(θ(i))=logZ∑P(Y,Z∣θ)−logP(Y∣θ(i))
=log∑ZP(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))=log\sum_{Z}P(Y|Z,\theta)P(Z|\theta)-logP(Y|\theta^{(i)})=logZ∑P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))
=log∑ZP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))−logP(Y∣θ(i))=log\sum_{Z}P(Z|Y,\theta^{(i)})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}-logP(Y|\theta^{(i)})=logZ∑P(Z∣Y,θ(i))P(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))
≥∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))−logP(Y∣θ(i))\ge \sum_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}-logP(Y|\theta^{(i)})≥Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)−logP(Y∣θ(i))
=∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))−∑ZP(Z∣Y,θ(i))logP(Y∣θ(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)})logP(Y|\theta^{(i)})=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)−Z∑P(Z∣Y,θ(i))logP(Y∣θ(i))
=∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))P(Y∣θ(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)})}=Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)
综上得出:
L(θ)≥L(θ(i))+∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))P(Y∣θ(i))L(\theta)\ge 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)})}L(θ)≥L(θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ)
上式中右侧部分记为B(θ,θ(i))B(\theta,\theta^{(i)})B(θ,θ(i)),则有:
L(θ)≥B(θ,θ(i))L(\theta)\ge B(\theta,\theta^{(i)})L(θ)≥B(θ,θ(i))
θ(i+1)=argmaxθB(θ,θ(i))\theta^{(i+1)}=argmax_{\theta}B(\theta,\theta^{(i)})θ(i+1)=argmaxθB(θ,θ(i))
=argmaxθ(logP(Y∣θ(i))+∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))P(Y∣θ(i)))=argmax_{\theta}(logP(Y|\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)})})=argmaxθ(logP(Y∣θ(i))+Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣θ(i))P(Y∣Z,θ)P(Z∣θ))
=argmaxθ∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)P(Z∣Y,θ(i))=argmax_{\theta}\sum_{Z}P(Z|Y,\theta^{(i)})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}=argmaxθZ∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))P(Y∣Z,θ)P(Z∣θ)
=argmaxθ∑ZP(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)−∑ZP(Z∣Y,θ(i))logP(Z∣Y,θ(i))=argmax_{\theta}\sum_{Z}P(Z|Y,\theta^{(i)})logP(Y|Z,\theta)P(Z|\theta)-\sum_{Z}P(Z|Y,\theta^{(i)})logP(Z|Y,\theta^{(i)})=argmaxθZ∑P(Z∣Y,θ(i))logP(Y∣Z,θ)P(Z∣θ)−Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))
=argmaxθ∑ZP(Z∣Y,θ(i))logP(Y,Z∣θ)−∑ZP(Z∣Y,θ(i))logP(Z∣Y,θ(i))=argmax_{\theta}\sum_{Z}P(Z|Y,\theta^{(i)})logP(Y,Z|\theta)-\sum_{Z}P(Z|Y,\theta^{(i)})logP(Z|Y,\theta^{(i)})=argmaxθZ∑P(Z∣Y,θ(i))logP(Y,Z∣θ)−Z∑P(Z∣Y,θ(i))logP(Z∣Y,θ(i))
省略常数项得:
θ(i+1)=argmaxθ∑ZP(Z∣Y,θ(i))logP(Y,Z∣θ)\theta^{(i+1)}=argmax_{\theta}\sum_{Z}P(Z|Y,\theta^{(i)})logP(Y,Z|\theta)θ(i+1)=argmaxθZ∑P(Z∣Y,θ(i))logP(Y,Z∣θ)
这里就是上面例子中提到的QQQ函数的定义
总结来说,EM算法的过程为:
- 模型包含可观察变量YYY和隐藏变量ZZZ,模型参数θ\thetaθ初始值为θ(0)\theta^{(0)}θ(0),第iii次迭代的值记为θ(i)\theta^{(i)}θ(i)
- E步:计算函数Q(θ,θ(i))=∑ZlogP(Y,Z∣θ)P(Z∣θ(i))Q(\theta,\theta^{(i)})=\sum_{Z}logP(Y,Z|\theta)P(Z|\theta^{(i)})Q(θ,θ(i))=∑ZlogP(Y,Z∣θ)P(Z∣θ(i))
- M步:求参数θ(i+1)=argmaxθQ(θ,θ(i))\theta^{(i+1)}=argmax_{\theta}Q(\theta,\theta^{(i)})θ(i+1)=argmaxθQ(θ,θ(i))
- 重复2,3两步,直到Q函数或参数收敛。
另外还需要注意的是,EM算法对初始化的参数θ\thetaθ是敏感的,不同的初始化值可能会造成最后的收敛值的不同