第八课.EM算法的合理性与算法推导

EM算法背景

在硬币投掷和班级身高问题中,引入了隐变量问题,模型变成了混合模型,我们不能直接利用极大似然估计求出模型参数,通常需要用迭代法逐步尝试,这个迭代法正是EM算法的基础。

在极大似然估计中,我们采用计算最值的方法,将使得 p ( x ∣ θ ) p(x|\theta) p(xθ)取得最大值的参数 θ \theta θ作为估计值,比如一类简单的概率模型:高斯分布,他只有观测变量 x x x,我们可以直接利用观测变量,基于极大似然,估计模型的参数。

对于一些模型,还有隐变量 z z z,这一类变量不能观测到,这使得在模型中 p ( x ∣ θ ) p(x|\theta) p(xθ)无法仅仅利用观测变量 x x x直接通过求导等解析方法求出估计值 θ \theta θ,只能通过迭代,不断逼近真实解。这个迭代的算法被总结为EM算法。

EM算法迭代的合理性

首先,给出EM算法的参数迭代公式:
θ t + 1 = a r g m a x θ ∫ z l o g [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z \theta^{t+1}=argmax_{\theta}\int_{z}log[p(x,z|\theta)]p(z|x,\theta^{t})dz θt+1=argmaxθzlog[p(x,zθ)]p(zx,θt)dz
在第 t t t轮迭代中,可以利用参数 θ t \theta^{t} θt,估计出 θ t + 1 \theta^{t+1} θt+1

但要思考,为什么每一轮迭代都能使似然函数 p ( x ∣ θ ) p(x|\theta) p(xθ)的值不断增大,即问题描述为,对于任意轮数 t t t,通过:
θ t + 1 = a r g m a x θ ∫ z l o g [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z \theta^{t+1}=argmax_{\theta}\int_{z}log[p(x,z|\theta)]p(z|x,\theta^{t})dz θt+1=argmaxθzlog[p(x,zθ)]p(zx,θt)dz
实现 θ t \theta^{t} θt θ t + 1 \theta^{t+1} θt+1后,使得 l o g [ p ( x ∣ θ t ) ] ≤ l o g [ p ( x ∣ θ t + 1 ) ] log[p(x|\theta^{t})]\leq log[p(x|\theta^{t+1})] log[p(xθt)]log[p(xθt+1)]

证明如下,首先利用贝叶斯公式得到观测变量 x x x和隐变量 z z z之间的概率关系:
p ( x ∣ θ ) p ( z ∣ x , θ ) = p ( x , z ∣ θ ) ⇒ l o g ( p ( x ∣ θ ) ) + l o g ( p ( z ∣ x , θ ) ) = l o g ( p ( x , z ∣ θ ) ) p(x|\theta)p(z|x,\theta)=p(x,z|\theta)\Rightarrow log(p(x|\theta))+log(p(z|x,\theta))=log(p(x,z|\theta)) p(xθ)p(zx,θ)=p(x,zθ)log(p(xθ))+log(p(zx,θ))=log(p(x,zθ))
因此,将隐变量引入到对数似然函数中有:
l o g ( p ( x ∣ θ ) ) = l o g ( p ( x , z ∣ θ ) ) − l o g ( p ( z ∣ x , θ ) ) log(p(x|\theta))=log(p(x,z|\theta))-log(p(z|x,\theta)) log(p(xθ))=log(p(x,zθ))log(p(zx,θ))
对等式两边同时求关于 p ( z ∣ x , θ t ) p(z|x,\theta^{t}) p(zx,θt)的期望,即积分:
∫ z p ( z ∣ x , θ t ) l o g ( p ( x ∣ θ ) ) d z = ∫ z p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ ) ) d z − ∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ ) ) d z \int_{z}p(z|x,\theta^{t})log(p(x|\theta))dz=\int_{z}p(z|x,\theta^{t})log(p(x,z|\theta))dz-\int_{z}p(z|x,\theta^{t})log(p(z|x,\theta))dz zp(zx,θt)log(p(xθ))dz=zp(zx,θt)log(p(x,zθ))dzzp(zx,θt)log(p(zx,θ))dz
对左边进行化简:
∫ z p ( z ∣ x , θ t ) l o g ( p ( x ∣ θ ) ) d z = l o g ( p ( x ∣ θ ) ) ∫ z p ( z ∣ x , θ t ) d z = l o g ( p ( x ∣ θ ) ) ⋅ 1 = l o g ( p ( x ∣ θ ) ) \int_{z}p(z|x,\theta^{t})log(p(x|\theta))dz=log(p(x|\theta))\int_{z}p(z|x,\theta^{t})dz=log(p(x|\theta))\cdot 1=log(p(x|\theta)) zp(zx,θt)log(p(xθ))dz=log(p(xθ))zp(zx,θt)dz=log(p(xθ))1=log(p(xθ))
因此有:
l o g ( p ( x ∣ θ ) ) = ∫ z p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ ) ) d z − ∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ ) ) d z log(p(x|\theta))=\int_{z}p(z|x,\theta^{t})log(p(x,z|\theta))dz-\int_{z}p(z|x,\theta^{t})log(p(z|x,\theta))dz log(p(xθ))=zp(zx,θt)log(p(x,zθ))dzzp(zx,θt)log(p(zx,θ))dz
对于 p ( x ∣ θ t + 1 ) ≥ p ( x ∣ θ t ) p(x|\theta^{t+1})\geq p(x|\theta^{t}) p(xθt+1)p(xθt)转化为验证:
∫ z p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ t + 1 ) ) d z − ∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ t + 1 ) ) d z \int_{z}p(z|x,\theta^{t})log(p(x,z|\theta^{t+1}))dz-\int_{z}p(z|x,\theta^{t})log(p(z|x,\theta^{t+1}))dz zp(zx,θt)log(p(x,zθt+1))dzzp(zx,θt)log(p(zx,θt+1))dz ≥ ∫ z p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ t ) ) d z − ∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ t ) ) d z \geq \int_{z}p(z|x,\theta^{t})log(p(x,z|\theta^{t}))dz-\int_{z}p(z|x,\theta^{t})log(p(z|x,\theta^{t}))dz zp(zx,θt)log(p(x,zθt))dzzp(zx,θt)log(p(zx,θt))dz
拆解为两个部分:

  • 不等式1:
    ∫ z p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ t + 1 ) ) d z ≥ ∫ z p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ t ) ) d z \int_{z}p(z|x,\theta^{t})log(p(x,z|\theta^{t+1}))dz\geq \int_{z}p(z|x,\theta^{t})log(p(x,z|\theta^{t}))dz zp(zx,θt)log(p(x,zθt+1))dzzp(zx,θt)log(p(x,zθt))dz
  • 不等式2:
    ∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ t + 1 ) ) d z ≤ ∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ t ) ) d z \int_{z}p(z|x,\theta^{t})log(p(z|x,\theta^{t+1}))dz\leq \int_{z}p(z|x,\theta^{t})log(p(z|x,\theta^{t}))dz zp(zx,θt)log(p(zx,θt+1))dzzp(zx,θt)log(p(zx,θt))dz

对于不等式1,先回顾 θ t + 1 \theta^{t+1} θt+1的计算:
θ t + 1 = a r g m a x θ ∫ z l o g [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z \theta^{t+1}=argmax_{\theta}\int_{z}log[p(x,z|\theta)]p(z|x,\theta^{t})dz θt+1=argmaxθzlog[p(x,zθ)]p(zx,θt)dz
即,令 θ = θ t + 1 \theta=\theta^{t+1} θ=θt+1,可以使得 ∫ z l o g [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z \int_{z}log[p(x,z|\theta)]p(z|x,\theta^{t})dz zlog[p(x,zθ)]p(zx,θt)dz取到最大值,所以必然有:
∫ z l o g [ p ( x , z ∣ θ t + 1 ) ] p ( z ∣ x , θ t ) d z ≥ ∫ z l o g [ p ( x , z ∣ θ t ) ] p ( z ∣ x , θ t ) d z \int_{z}log[p(x,z|\theta^{t+1})]p(z|x,\theta^{t})dz\geq \int_{z}log[p(x,z|\theta^{t})]p(z|x,\theta^{t})dz zlog[p(x,zθt+1)]p(zx,θt)dzzlog[p(x,zθt)]p(zx,θt)dz
对于不等式2,需要变形一下:
∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ t ) ) d z − ∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ t + 1 ) ) d z = ∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ t ) p ( z ∣ x , θ t + 1 ) ) d z \int_{z}p(z|x,\theta^{t})log(p(z|x,\theta^{t}))dz-\int_{z}p(z|x,\theta^{t})log(p(z|x,\theta^{t+1}))dz=\int_{z}p(z|x,\theta^{t})log(\frac{p(z|x,\theta^{t})}{p(z|x,\theta^{t+1})})dz zp(zx,θt)log(p(zx,θt))dzzp(zx,θt)log(p(zx,θt+1))dz=zp(zx,θt)log(p(zx,θt+1)p(zx,θt))dz


现引入KL散度,即相对熵。设 P ( x ) P(x) P(x) Q ( x ) Q(x) Q(x)是随机变量 x x x上的两个概率分布,在离散和连续随机变量的情形下,相对熵定义为:
K L ( P ∣ ∣ Q ) = ∑ P ( x ) l o g P ( x ) Q ( x ) KL(P||Q)=\sum P(x)log\frac{P(x)}{Q(x)} KL(PQ)=P(x)logQ(x)P(x)
K L ( P ∣ ∣ Q ) = ∫ P ( x ) l o g P ( x ) Q ( x ) d x KL(P||Q)=\int P(x)log\frac{P(x)}{Q(x)}dx KL(PQ)=P(x)logQ(x)P(x)dx
KL散度用于衡量两个分布之间的距离,因此,KL散度具有非负性: K L ( P ∣ ∣ Q ) ≥ 0 KL(P||Q)\geq 0 KL(PQ)0,在两个分布完全相同时,等号成立。


根据KL散度的定义,容易发现:
∫ z p ( z ∣ x , θ t ) l o g ( p ( z ∣ x , θ t ) p ( z ∣ x , θ t + 1 ) ) d z = K L ( p ( z ∣ x , θ t ) ∣ ∣ p ( z ∣ x , θ t + 1 ) ) ≥ 0 \int_{z}p(z|x,\theta^{t})log(\frac{p(z|x,\theta^{t})}{p(z|x,\theta^{t+1})})dz=KL(p(z|x,\theta^{t})||p(z|x,\theta^{t+1}))\geq 0 zp(zx,θt)log(p(zx,θt+1)p(zx,θt))dz=KL(p(zx,θt)p(zx,θt+1))0
此时,等式1和等式2均成立,因此证实,每轮迭代 θ t → θ t + 1 \theta^{t}\rightarrow \theta^{t+1} θtθt+1确实可以让似然函数的值有所上升,当似然函数值收敛时,待估计的参数也就趋近于真实值(不保证全局最优)。至此,我们可以安心使用EM算法,下面将解释EM算法参数迭代公式的推导。

EM算法推导

EM算法的E步和M步

在前面的内容中,直接给出了EM算法的迭代公式,并证明了其迭代的合理性,现在需要了解其公式的由来,首先定义一些符号:

  • x x x:观测数据,observed data
  • z z z:非观测数据,隐变量,latent variable
  • ( x , z ) (x,z) (x,z):完整数据,complete data
  • θ \theta θ:待估计参数

对于参数迭代公式:
θ t + 1 = a r g m a x θ ∫ z l o g [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z \theta^{t+1}=argmax_{\theta}\int_{z}log[p(x,z|\theta)]p(z|x,\theta^{t})dz θt+1=argmaxθzlog[p(x,zθ)]p(zx,θt)dz
其实包含了E步和M步:

  • E步为积分的计算,即计算 l o g [ p ( x , z ∣ θ ) ] log[p(x,z|\theta)] log[p(x,zθ)]关于条件概率 p ( z ∣ x , θ t ) p(z|x,\theta^{t}) p(zx,θt)的期望:
    E z ∣ x , θ t [ l o g ( p ( x , z ∣ θ ) ) ] = ∫ z l o g [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z E_{z|x,\theta^{t}}[log(p(x,z|\theta))]=\int_{z}log[p(x,z|\theta)]p(z|x,\theta^{t})dz Ezx,θt[log(p(x,zθ))]=zlog[p(x,zθ)]p(zx,θt)dz
  • M步则是获取令期望取得最大值的 θ \theta θ,并将其作为下一轮迭代的已知量:
    θ t + 1 = a r g m a x θ E z ∣ x , θ t [ l o g ( p ( x , z ∣ θ ) ) ] \theta^{t+1}=argmax_{\theta}E_{z|x,\theta^{t}}[log(p(x,z|\theta))] θt+1=argmaxθEzx,θt[log(p(x,zθ))]

分析EM算法的由来

首先,最初的极大似然估计目标为:
θ m l e = a r g m a x θ l o g ( p ( x ∣ θ ) ) \theta_{mle}=argmax_{\theta}log(p(x|\theta)) θmle=argmaxθlog(p(xθ))
根据贝叶斯公式有:
p ( x ∣ θ ) p ( z ∣ x , θ ) = p ( x , z ∣ θ ) ⇒ p ( x ∣ θ ) = p ( x , z ∣ θ ) p ( z ∣ x , θ ) p(x|\theta)p(z|x,\theta)=p(x,z|\theta)\Rightarrow p(x|\theta)=\frac{p(x,z|\theta)}{p(z|x,\theta)} p(xθ)p(zx,θ)=p(x,zθ)p(xθ)=p(zx,θ)p(x,zθ)
则有:
l o g ( p ( x ∣ θ ) ) = l o g ( p ( x , z ∣ θ ) ) − l o g ( p ( z ∣ x , θ ) ) log(p(x|\theta))=log(p(x,z|\theta))-log(p(z|x,\theta)) log(p(xθ))=log(p(x,zθ))log(p(zx,θ))
此处引入一个关于 z z z的分布 q ( z ) q(z) q(z),我们暂时不用关系 q ( z ) q(z) q(z)具体是什么物理意义,代入式子:
l o g ( p ( x ∣ θ ) ) = l o g ( p ( x , z ∣ θ ) q ( z ) ) − l o g ( p ( z ∣ x , θ ) q ( z ) ) log(p(x|\theta))=log(\frac{p(x,z|\theta)}{q(z)})-log(\frac{p(z|x,\theta)}{q(z)}) log(p(xθ))=log(q(z)p(x,zθ))log(q(z)p(zx,θ))
此时,对等式左右两边同时求关于分布 q ( z ) q(z) q(z)的期望,即计算积分:

对于式子左边有:
∫ z q ( z ) l o g ( p ( x ∣ θ ) ) d z = l o g ( p ( x ∣ θ ) ) ∫ z q ( z ) d z = l o g ( p ( x ∣ θ ) ) \int_{z}q(z)log(p(x|\theta))dz=log(p(x|\theta))\int_{z}q(z)dz=log(p(x|\theta)) zq(z)log(p(xθ))dz=log(p(xθ))zq(z)dz=log(p(xθ))
对于式子的右边有:
∫ z q ( z ) l o g ( p ( x , z ∣ θ ) q ( z ) ) d z − ∫ z q ( z ) l o g ( p ( z ∣ x , θ ) q ( z ) ) d z = ∫ z q ( z ) l o g ( p ( x , z ∣ θ ) q ( z ) ) d z + ∫ z q ( z ) l o g ( q ( z ) p ( z ∣ x , θ ) ) d z \int_{z}q(z)log(\frac{p(x,z|\theta)}{q(z)})dz-\int_{z}q(z)log(\frac{p(z|x,\theta)}{q(z)})dz=\int_{z}q(z)log(\frac{p(x,z|\theta)}{q(z)})dz+\int_{z}q(z)log(\frac{q(z)}{p(z|x,\theta)})dz zq(z)log(q(z)p(x,zθ))dzzq(z)log(q(z)p(zx,θ))dz=zq(z)log(q(z)p(x,zθ))dz+zq(z)log(p(zx,θ)q(z))dz
第一项被称为"证据下界"(Evidence lower bound,ELBO):
E L B O = ∫ z q ( z ) l o g ( p ( x , z ∣ θ ) q ( z ) ) d z ELBO=\int_{z}q(z)log(\frac{p(x,z|\theta)}{q(z)})dz ELBO=zq(z)log(q(z)p(x,zθ))dz
第二项是KL散度:
K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ ) ) = ∫ z q ( z ) l o g ( q ( z ) p ( z ∣ x , θ ) ) d z ≥ 0 KL(q(z)||p(z|x,\theta))=\int_{z}q(z)log(\frac{q(z)}{p(z|x,\theta)})dz\geq 0 KL(q(z)p(zx,θ))=zq(z)log(p(zx,θ)q(z))dz0
当且仅当 q ( z ) = p ( z ∣ x , θ ) q(z)=p(z|x,\theta) q(z)=p(zx,θ)时, K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ ) ) = 0 KL(q(z)||p(z|x,\theta))=0 KL(q(z)p(zx,θ))=0

至此,式子可写作:
l o g ( p ( x ∣ θ ) ) = E L B O + K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ ) ) ≥ E L B O log(p(x|\theta))=ELBO+KL(q(z)||p(z|x,\theta))\geq ELBO log(p(xθ))=ELBO+KL(q(z)p(zx,θ))ELBO
从以上形式可以看出,为什么ELBO被称为证据下界。ELBO成为了 l o g ( p ( x ∣ θ ) ) log(p(x|\theta)) log(p(xθ))取值的下界,所以可以得到一种思路:我们应当使得ELBO达到最大,从而间接地让 l o g ( p ( x ∣ θ ) ) log(p(x|\theta)) log(p(xθ))达到最大,即使用ELBO等效地控制 l o g ( p ( x ∣ θ ) ) log(p(x|\theta)) log(p(xθ))。但目前存在的问题是KL散度会破坏上面单纯的思路,因为 l o g ( p ( x ∣ θ ) ) log(p(x|\theta)) log(p(xθ))最终是ELBO与KL散度的总和。

这时,需要利用KL散度的性质,在第 t t t轮迭代时,已知 θ t \theta^{t} θt,要估计 θ t + 1 \theta^{t+1} θt+1,我们把KL散度中概率 p ( z ∣ x , θ ) p(z|x,\theta) p(zx,θ)的变量 θ \theta θ固定,令 θ = θ t \theta=\theta^{t} θ=θt,同时,令 q ( z ) = p ( z ∣ x , θ t ) q(z)=p(z|x,\theta^{t}) q(z)=p(zx,θt),从而使每一轮迭代时,KL散度刚好为0,此时有 l o g ( p ( x ∣ θ ) ) = E L B O log(p(x|\theta))=ELBO log(p(xθ))=ELBO,取ELBO的极大值,就等效于取 l o g ( p ( x ∣ θ ) ) log(p(x|\theta)) log(p(xθ))的极大值:
θ t + 1 = a r g m a x θ l o g ( p ( x ∣ θ ) ) = a r g m a x θ [ ∫ z p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ ) p ( z ∣ x , θ t ) ) d z ] \theta^{t+1}=argmax_{\theta}log(p(x|\theta))=argmax_{\theta}[\int_{z}p(z|x,\theta^{t})log(\frac{p(x,z|\theta)}{p(z|x,\theta^{t})})dz] θt+1=argmaxθlog(p(xθ))=argmaxθ[zp(zx,θt)log(p(zx,θt)p(x,zθ))dz] = a r g m a x θ ∫ z [ p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ ) ) − p ( z ∣ x , θ t ) p ( z ∣ x , θ t ) ] d z =argmax_{\theta}\int_{z}[p(z|x,\theta^{t})log(p(x,z|\theta))-p(z|x,\theta^{t})p(z|x,\theta^{t})]dz =argmaxθz[p(zx,θt)log(p(x,zθ))p(zx,θt)p(zx,θt)]dz
注意到,积分内的第二项 p ( z ∣ x , θ t ) p ( z ∣ x , θ t ) p(z|x,\theta^{t})p(z|x,\theta^{t}) p(zx,θt)p(zx,θt)已经不包含变量 θ \theta θ,因此对 θ \theta θ求极大值时可以舍去:
θ t + 1 = a r g m a x θ ∫ z [ p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ ) ) − p ( z ∣ x , θ t ) p ( z ∣ x , θ t ) ] d z \theta^{t+1}=argmax_{\theta}\int_{z}[p(z|x,\theta^{t})log(p(x,z|\theta))-p(z|x,\theta^{t})p(z|x,\theta^{t})]dz θt+1=argmaxθz[p(zx,θt)log(p(x,zθ))p(zx,θt)p(zx,θt)]dz = a r g m a x θ ∫ z [ p ( z ∣ x , θ t ) l o g ( p ( x , z ∣ θ ) ) ] d z =argmax_{\theta}\int_{z}[p(z|x,\theta^{t})log(p(x,z|\theta))]dz =argmaxθz[p(zx,θt)log(p(x,zθ))]dz
可见,这就得到了EM算法的迭代公式。


额外说明:

关于 l o g ( p ( x ∣ θ ) ) = E L B O + K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ ) ) ≥ E L B O log(p(x|\theta))=ELBO+KL(q(z)||p(z|x,\theta))\geq ELBO log(p(xθ))=ELBO+KL(q(z)p(zx,θ))ELBO,有的文档采用jensen不等式来表达,并将 p ( z ∣ x , θ t ) p(z|x,\theta^{t}) p(zx,θt),即 q ( z ) q(z) q(z)称为 Q Q Q函数(质量函数),这些其实都是EM算法推导的另一种解读


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值