机器学习笔记(9)-最大期望算法

机器学习笔记(9)-最大期望算法

最大期望算法(Expectation-Maximization algorithm,EM)是一类通过迭代进行极大似然估计的优化算法,常用于高斯混合模型等,主要是用来解决那些样本中存在隐变量的情况。

在采用极大似然估计构造我们的目标函数时,有时我们会假设随机变量\(X,Y\)的似然函数和先验概率是符合某个分布的,这样我们就能通过得到先验概率和似然函数来确定目标函数。

EM算法虽然同样是使用极大似然估计来估计参数,但是它的思想是认为随机变量\(X\)是根据隐藏变量\(Z\)来确定的,参数\(\theta\)是隐藏变量\(Z\)的参数,于是有:

  1. \(X\):观测数据集(数据样本)
  2. \(Z\):未观察数据集(隐藏变量)
  3. \((X,Z)\):完备数据集
  4. \(\theta\):参数

EM算法核心优化思想

EM算法分为E-step和M-step两步,通过迭代的思想重复这两步来计算参数\(\theta\)

E-step:初始化一个参数或根据上一次迭代得到的\(\theta\),计算得到后验概率,得到完备数据的最大期望:

\[P(Z|X;\theta^t)\rightarrow E_{Z|X;\theta^t}[\log P(X,Z)] \]

M-step:计算使期望最大化的参数\(\hat \theta\),代入E步:

\[\theta^{t+1}=\underset{\theta}{argmax}\;E_{Z|X;\theta^t}[\log P(X,Z)] \]

反复迭代E步和M步直到参数\(\theta\)收敛。

EM目标函数推导

接下来我们就来推导一下EM的目标函数,根据贝叶斯定理有:

\[P(X|\theta)=\frac{P(X,Z|\theta)}{P(Z|X;\theta)} \]

我们两边取对数得到:

\[\begin{aligned} \log P(X|\theta)&=\log P(X,Z|\theta)-\log P(Z|X;\theta)\\\\ &=\log \frac{P(X,Z|\theta)}{q(Z)}-\log \frac{P(Z|X;\theta)}{q(Z)} \end{aligned} \]

设有概率分布\(q(Z)\),有\(\int_{Z}^{}q(Z)d_{Z}=1\)\(q(Z)\neq 0\)

接下来我们两边对\(q(Z)\)关于\(Z\)求积分运算,左边为:

\[\begin{aligned} \int_{Z}^{}\log P(X|\theta)q(Z)d_{Z}&=\log P(X|\theta)\int_{Z}^{}q(Z)d_{Z}\\ &=\log P(X|\theta) \end{aligned} \]

接下来我们看右边为:

\[\begin{aligned} &\int_{Z}^{}q(Z)\log \frac{P(X,Z|\theta)}{q(Z)}d_{Z}-\int_{Z}^{}q(Z)\log \frac{P(Z|X;\theta)}{q(Z)}d_{Z}\\ &=\int_{Z}^{}q(Z)\log \frac{P(X,Z|\theta)}{q(Z)}d_{Z}+\int_{Z}^{}q(Z)\log \frac{q(Z)}{P(Z|X;\theta)}d_{Z} \end{aligned} \]

上式中左半部分我们称为ELBO(Evidence Lower Bound),右半部分就是KL散度\(KL(q(Z)||P(Z|X;\theta))\)

\[\log P(X|\theta)=ELBO+KL(q(Z)||P(Z|X;\theta))\\ ELBO=\int_{Z}^{}q(Z)\log \frac{P(X,Z|\theta)}{q(Z)}d_{Z}\\ KL(q(Z)||P(Z|X;\theta))=\int_{Z}^{}q(Z)\log \frac{q(Z)}{P(Z|X;\theta)}d_{Z} \]

我们知道散度是大于等于0的,只有当\(q(Z)=P(Z|X;\theta)\)时取等号。

EM算法的思想就是让ELBO取最大,从而使\(\log P(X|\theta)\)最大,并且使\(q(Z)=P(Z|X;\theta^t)\)取上一次迭代的参数的到后验概率代入。

于是:

\[\begin{aligned} \theta^{t+1}&=\underset{\theta}{argmax}\;ELBO\\ &=\underset{\theta}{argmax}\;\int_{Z}^{}q(Z)\log \frac{P(X,Z|\theta)}{q(Z)}d_{Z}\\ &=\underset{\theta}{argmax}\;\int_{Z}^{}P(Z|X;\theta^t)\log \frac{P(X,Z|\theta)}{P(Z|X;\theta^t)}d_{Z}\\ &=\underset{\theta}{argmax}\;\int_{Z}^{}P(Z|X;\theta^t)(\log P(X,Z|\theta)-\log P(Z|X;\theta^t))d_{Z}\\ &=\underset{\theta}{argmax}\;\int_{Z}^{}P(Z|X;\theta^t)\log P(X,Z|\theta)d_{Z} \end{aligned} \]

上式中因为\(P(Z|X;\theta^t)\)是定值,\(\theta^t\)是确定的,所以不影响可以去掉。

以上这就是EM的目标函数,通过上一个时间步参数\(\theta^t\)得到下一个时间步\(\theta^{t+1}\),反复迭代直到收敛。

收敛性证明

这一节我们证明经过每个时间步\(\theta\)是收敛的,也就是要证明:

\[\log P(X|\theta^t)\leq \log P(X|\theta^{t+1}) \]

也就是说,我们每次迭代一次E步后,得到的新的\(\theta^{t+1}\)要使极大似然估计变大一点,直到最大,就把我们的参数给估计出来了,这和梯度下降法是很类似的思想。

我们上一节的结论有:

\[\log P(X|\theta)=ELBO+KL(q(Z)||P(Z|X;\theta))\\ ELBO=\int_{Z}^{}q(Z)\log \frac{P(X,Z|\theta)}{q(Z)}d_{Z}\\ KL(q(Z)||P(Z|X;\theta))=\int_{Z}^{}q(Z)\log \frac{q(Z)}{P(Z|X;\theta)}d_{Z} \]

合在一起就有:

\[\begin{aligned} \log P(X|\theta)&=\int_{Z}^{}q(Z)\log \frac{P(X,Z|\theta)}{q(Z)}d_{Z}+\int_{Z}^{}q(Z)\log \frac{q(Z)}{P(Z|X;\theta)}d_{Z}\\ &=\int_{Z}^{}q(Z)\log P(X,Z|\theta)d_{Z}+\int_{Z}^{}q(Z)\log \frac{1}{P(Z|X;\theta)}d_{Z} \end{aligned} \]

分别代入\(\log P(X|\theta^t)\)\(\log P(X|\theta^{t+1})\)就有:

\[\log P(X|\theta^{t+1})=\int_{Z}^{}q(Z)\log P(X,Z|\theta^{t+1})d_{Z}+\int_{Z}^{}q(Z)\log \frac{1}{P(Z|X;\theta^{t+1})}d_{Z}\\ \log P(X|\theta^{t})=\int_{Z}^{}q(Z)\log P(X,Z|\theta^{t}){q(Z)}d_{Z}+\int_{Z}^{}q(Z)\log \frac{1}{P(Z|X;\theta^{t})}d_{Z} \]

这里我们令\(q(Z)=P(Z|X;\theta^t)\)就变成了:

\[\log P(X|\theta^{t+1})=\int_{Z}^{}P(Z|X;\theta^t)\log P(X,Z|\theta^{t+1})d_{Z}+\int_{Z}^{}P(Z|X;\theta^t)\log \frac{1}{P(Z|X;\theta^{t+1})}d_{Z}\\ \log P(X|\theta^{t})=\int_{Z}^{}P(Z|X;\theta^t)\log P(X,Z|\theta^{t})d_{Z}+\int_{Z}^{}P(Z|X;\theta^t)\log \frac{1}{P(Z|X;\theta^{t})}d_{Z} \]

观察两式的左半边,根据我们上一节得到的结论:

\[\theta^{t+1}=\underset{\theta}{argmax}\;\int_{Z}^{}P(Z|X;\theta^t)\log P(X,Z|\theta)d_{Z} \]

\(\theta^{t+1}\)是取最大值时得到的,所以必然有:

\[\int_{Z}^{}P(Z|X;\theta^t)\log P(X,Z|\theta^{t+1})d_{Z}\geq \int_{Z}^{}P(Z|X;\theta^t)\log P(X,Z|\theta^{t})d_{Z} \]

左半边得证,那么我们只要证明右半边也是大于等于就行了:

\[\begin{aligned} &\int_{Z}^{}P(Z|X;\theta^t)\log \frac{1}{P(Z|X;\theta^{t+1})}d_{Z}-\int_{Z}^{}P(Z|X;\theta^t)\log \frac{1}{P(Z|X;\theta^{t})}d_{Z}\\\\ &=\int_{Z}^{}P(Z|X;\theta^t)\log \frac{P(Z|X;\theta^{t})}{P(Z|X;\theta^{t+1})}d(Z)\\\\ &=\int_{Z}^{}P(Z|X;\theta^t)-\log \frac{P(Z|X;\theta^{t+1})}{P(Z|X;\theta^{t})}d(Z) \end{aligned} \]

这里我们借助Jensen不等式,如果g是任意实可测函数且函数\(\phi\)是凸的,那么就有:

\[\phi (\int_{-\infty }^{+\infty }g(x)f(x)d(x))\leq \int_{-\infty }^{+\infty }\phi(g(x))f(x)d(x) \]

显然这里的\(\log\)函数是一个凸函数,于是有:

\[\begin{aligned} \int_{Z}^{}P(Z|X;\theta^t)-\log \frac{P(Z|X;\theta^{t+1})}{P(Z|X;\theta^{t})}d(Z)\geq -\log \int_{Z}^{}P(Z|X;\theta^t)\frac{P(Z|X;\theta^{t+1})}{P(Z|X;\theta^{t})}d(Z)\\ =-\log \int_{Z}^{}P(Z|X;\theta^{t+1})d(Z)=0 \end{aligned} \]

所以右半边也是大于等于0的数,所以得证,EM算法是收敛的。

\[\log P(X|\theta^t)\leq \log P(X|\theta^{t+1}) \]

总结

EM算法的思想就是:

E步:先初始化一个参数\(\theta\),这样我们就可以得到最大期望的表达式;

M步:根据E步最大期望的表达式,计算参数\(\theta^{t+1}\)

然后反复E步M步使极大似然估计收敛。

所以说EM算法是一种迭代性质的优化算法(不是模型)。

猜你喜欢

转载自www.cnblogs.com/Epir/p/13179708.html