EM算法及公式推导

含隐变量的概率图模型的参数估计问题

在解决含隐变量的概率图模型的参数估计问题时,一种简单的想法是取使其对数边际似然最大的\theta作为估计的参数。

\begin{aligned}\displaystyle \log{p\left ( x;\theta \right )} &= \log\underset{z}{\sum}p\left ( x,z;\theta \right ) \\ \hat{\theta}&=\underset{\theta}{argmax}\log\underset{z}{\sum}p\left ( x,z;\theta \right )\\\end{aligned}

x为观测变量X的观测数据,是一个向量,z为隐变量Z的取值(但实际上无法观测)是一个向量,需要通过求和(积分)的形式去除。但函数中存在对数函数内部带有求和的形式,这样\theta非常难以求导。比如在高斯混合模型中,隐变量是一维离散的变量。

z 1 2 ...... k
p\left ( z=k \right ) p_{1} p_{2} ...... p_{k}

\begin{aligned} \log{p\left ( x;\theta \right )}&=\log{\underset{z}{\sum}p\left ( x,z;\theta \right )}=\log{\sum_{k=1}^{K}p(z=k)p\left ( x|z=k\right )}\\&=\log{\sum_{k=1}^{K}p_{k}N\left ( x|\mu _{k},\sigma _{k} \right )} \end{aligned}

其中p_{k},\mu _{k},\Sigma _{k}均是待估计参数,而对\mu _{k},\Sigma _{k}求导非常困难。

所以需要通过其他方式来进行计算使得观测数据的对数边际似然最大。

EM算法

EM(Expectation-Maximum,EM)算法用于解决含隐变量的概率图模型的参数估计问题,基本思想是从样本数据的对数边际似然出发,通过引入变分函数来得到证据下界(ELBO,Evidence Lower BOund),之后让ELBO最大,从而使得对数边际似然最大,采用迭代的方法来最大化边际似然。

共有两种方式可以证EM算法的公式

方式一——借助Jenson不等式

先直接引入变分函数q\left ( z \right ),q(z)是定义在隐变量Z上的分布。对数边际似然函数可以写为:

\begin{aligned} \log{p\left ( x;\theta \right )}&=\log{​{\int_{z}}p\left ( x,z;\theta \right )dz}\\ &=\log{\int _{z}q\left ( z \right )\frac{p\left ( x,z;\theta \right )}{q\left ( z \right )}dz}\\ &=\log{E_{q\left ( z \right )}\frac{p\left ( x,z;\theta \right )}{q\left ( z \right )}}\\ &\geq E_{q\left ( z \right )}\log\frac{p\left ( x,z;\theta \right )}{q\left ( z \right )} \\&=ELBO\left ( q,x;\theta \right ) \end{aligned}

这里第四步使用的公式是Jensen不等式,中文又称琴生不等式,对应的是凹函数(Concave Function)的情形,注意这里指的凹函数反而函数图象是凸的,例如a大于1的对数函数\log_{a}{x}(a>1)。如图所示(图片来源于网络)

EM算法及公式推导_第1张图片

假设g\left ( x \right ) 为凹函数,X为随机变量,则g\left ( E\left ( X \right ) \right )\geq E\left ( g\left ( X \right ) \right ),同时,当且仅当X为常数或g为线性函数时等号成立,对应于边际似然函数的公式中则为

\begin{aligned} \displaystyle \frac{p\left ( x,z;\theta \right )}{q\left ( z \right )}&=c\\ q\left ( z \right )& = \frac{1}{c}p\left ( x,z;\theta \right )\\ 1=\int_ {z}q\left ( z \right )dz&=\int_{z} \frac{1}{c}p\left ( x,z;\theta \right )dz=\frac{1}{c}p\left ( x;\theta \right )\\ \frac{p\left ( x,z;\theta \right )}{q\left ( z \right )}&=p\left ( x;\theta \right )\\ \frac{p\left ( x,z;\theta \right )}{p\left ( x;\theta \right )}&=q\left ( z \right )\\ p\left ( z|x;\theta \right ) &=q\left ( z \right ) \end{aligned}

等价于p\left ( z|x;\theta \right ) =q\left ( z \right )时等号成立,即\log{p\left ( x;\theta \right )}= ELBO\left ( q,x;\theta \right )

方式二——利用贝叶斯公式和一点技巧

可使用贝叶斯公式将对数边际似然函数分解为:

\log{p\left ( x;\theta \right )}=\log{p\left ( x,z;\theta \right )}-\log{p\left (z|x;\theta\right )}

之后引入变分函数,以上等式可以写为:

\displaystyle \begin{aligned} \log{p\left ( x;\theta \right ) }&=\log{p\left ( x,z;\theta \right )}-\log{p\left (z|x;\theta\right )} \\ &= \log{\frac{p\left ( x,z;\theta \right )}{q\left ( z \right )}}-\log{\frac{p\left (z|x;\theta\right )}{q\left ( z \right )}} \end{aligned}

之后两边同时对q\left ( z \right )求期望

\begin{aligned} left &=\int _zq\left ( z \right ) \log{p\left ( x;\theta \right )} dz\\ &=\log{p\left ( x;\theta \right )}\int_zq\left ( z \right )dz\\ &=\log{p\left ( x;\theta \right )}\\right &=\int _zq\left ( z \right )\log{\frac{p\left ( x,z;\theta \right )}{q\left ( z \right )}}dz-\int_zq\left ( z \right )\log{\frac{p\left (z|x;\theta\right )}{q\left ( z \right )}}dz\\ &= ELBO\left ( q,x;\theta \right ) + \int_zq\left ( z \right )\log{\frac{q\left ( z \right )}{p\left (z|x;\theta\right )}}dz\\ & = ELBO\left ( q,x;\theta \right ) +KL\left ( q\left ( z \right )||p\left ( z|x;\theta \right )\right )\end{aligned}

由于KL散度总是大于0的,故\log{p\left ( x;\theta \right )}\geq ELBO\left ( q,x;\theta \right ),当且仅当q\left ( z \right ) = p\left ( z|x;\theta \right )时等号成立。

EM算法步骤

(1)找到近似分布q(z),使得\log{p(x;\theta)} = ELBO(q,x;\theta)

(2)再寻找参数\theta最大化ELBO,从而最大化对数边际似然。

以上两个步骤分别称为E步和M步,在实际操作中,一般需要以迭代的方式去找到局部最优解

E步(Expectation Step):固定参数\theta_{t},寻找近似分布q_{t+1}(z),使得\log{p(x;\theta_{t})} = ELBO(q_{t+1},x;\theta_{t})

M步(Maximization Step):固定q_{t+1}(z),找到一组参数使得ELBO最大,即\theta_{t+1} =\underset{\theta}{argmax}ELBO(q_{t+1},x;\theta)

更新过程为(图片来源于邱锡鹏《神经网络与深度学习》)

EM算法及公式推导_第2张图片

在E步的时候,有一个关键步骤决定了EM算法是狭义还是广义,根据前面的推导,当且仅当

 q_{t+1}\left ( z \right ) = p\left ( z|x;\theta_{t} \right )时,ELBO(q_{t+1},x;\theta_{t})最大,如果p(z|x;\theta_{t})可以计算,则直接取q_{t+1}\left ( z \right ) = p\left ( z|x;\theta_{t} \right ),这样就称为狭义EM,如果不可计算,需要通过变分推断来近似估计时,称为广义EM。

M步时,可以看作全观测变量的概率图模型的参数估计问题。

EM算法收敛性证明

在狭义EM的前提下,我们先来改写一下M步公式

\begin{aligned} \theta_{t+1}&= \underset{\theta}{argmax}\int_{z}p(z|x;\theta_{t})\log{\frac{p(x,z;\theta)}{p(z|x;\theta_{t})}}dz \\ &= \underset{\theta}{argmax}\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_{t})}dz\\ &=\underset{\theta}{argmax}\int_{z}p(z|x;\theta_{t})\log{p(x,z;\theta)}dz \end{aligned}

由于第二式右项与\theta无关,可以略去

现在我们需要证明

\log{p(x;\theta_{t+1})} \geq \log{p(x;\theta_{t})}

证明过程为:

\begin{aligned} \log{p(x;\theta)} &= \log{p(x,z;\theta)}-\log{p(z|x;\theta)}\\ left &= \int _{z} p(z|x;\theta_{t})\log{p(x;\theta)}dz\\ &=\int _z p(z|x;\theta_{t})dz\int _z\log{p(x;\theta)}dz\\ & = \log{p(x;\theta)}\\ right&=\int _zp(z|x;\theta_{t}) \log{p(x,z;\theta)}dz-\int _zp(z|x;\theta_{t})\log{p(z|x;\theta)}dz\\ &=Q(\theta,\theta_t)-H(\theta,\theta_t) \end{aligned}

以上是左右两式分别对p(z|x;\theta_t)求期望。

之后需要证明的式子更新为:

\begin{aligned} Q(\theta_{t+1},\theta_t)\geq Q(\theta_t,\theta_t) \\H(\theta_{t+1},\theta_t)\leq H(\theta_t,\theta_t) \end{aligned}

由于\theta_{t+1} = \underset{\theta}{argmax}Q(\theta,\theta_t)所以第一项成立

第二项可以写为

\displaystyle \begin{aligned} H(\theta_{t+1},\theta_t)-H(\theta_t,\theta_t) &=\int _zp(z|x;\theta_t)\log\frac{p(z|x;\theta_{t+1})}{p(z|x;\theta_t)}dz\\ &=-KL(p(z|x;\theta_t)||p(z|x;\theta_{t+1})\leq 0 \end{aligned}

综合以上可得\log{p(x;\theta_{t+1})} \geq \log{p(x;\theta_{t})},即每经过一次迭代对数边际似然增加。

参考资料

白板推导icon-default.png?t=N7T8https://www.bilibili.com/video/BV1aE411o7qd?p=60&vd_source=ae87fac745d78042d477bc11e9bf41b0《神经网络与深度学习》邱锡鹏icon-default.png?t=N7T8https://nndl.github.io/

你可能感兴趣的:(概率图模型,算法,机器学习,人工智能)