课程主页:https://deepgenerativemodels.github.io/

课件资料:https://github.com/Subhajit135/CS236_DGM,https://github.com/deepgenerativemodels/notes

视频地址:https://www.bilibili.com/video/av81625948?from=search&seid=4636291486683332935

这里回顾CS236 Lecture 6的课程内容,这一讲介绍了EM算法以及ELBO。

Partially observed data

假设我们有联合分布

$\mathbf X$为可观测变量,$\mathbf Z$为不可观测变量,数据集为$\mathcal{D}=\left\{\mathbf{x}^{(1)}, \cdots, \mathbf{x}^{(M)}\right\}$,那么数据的对数似然为

注意到下式很难计算

所以后续主要讨论如何对其处理。

First attempt: Naive Monte Carlo

利用恒等变形

所以可以使用蒙特卡洛模拟的方法估计上式

The EM Algorithm

利用KL散度,我们有恒等式

即对任意$q$,成立Evidence lower bound (ELBO)

当且仅当$q=p(\mathbf{z} | \mathbf{x} ; \theta)$时等号成立

我们如果想最大化$\log p(\mathbf{x} ; \theta)$,那么最大化其下界$F[q, \theta]$可以取得较好的效果,EM算法的本质是在$F[q, \theta]$上使用坐标上升:

  1. 初始化$\theta^{(0)}$
  2. $q^{(0)}=\arg \max _{q} F\left[q, \theta^{(0)}\right]=p\left(\mathbf{z} | \mathbf{x} ; \theta^{(0)}\right)$
  3. $\theta^{(1)}=\arg \max _{\theta} F\left[q^{(0)}, \theta\right]=\arg \max _{\theta} \sum_{z} q^{(0)}(\mathbf{z}) \log p(\mathbf{z}, \mathbf{x} ; \theta)$
  4. $q^{(1)}=\arg \max _{q} F\left[q, \theta^{(1)}\right]$

不难看出我们有

The Variational EM Algorithm

还有一种变分EM算法:

重写为

变分EM对$F[\phi, \theta]$做坐标上升

  1. 初始化$\theta^{(0)}$
  2. $\phi^{(1)}=\arg \max _{\phi} F\left[\phi, \theta^{(0)}\right] \neq p\left(\mathbf{z} | \mathbf{x} ; \theta^{(0)}\right)$
  3. $\theta^{(1)}=\arg \max _{\theta} F\left[\phi^{(1)}, \theta\right]$(可以使用MC)
  4. $\phi^{(2)}=\arg \max _{\phi} F\left[\phi, \theta^{(1)}\right] \neq p\left(\mathbf{z} | \mathbf{x} ; \theta^{(1)}\right)$

注意上述方法不一定保证收敛到局部最优。

The Evidence Lower bound

回顾之前介绍的ELBO:

图示如下:

The Evidence Lower bound applied to the entire dataset

将上述不等式应用到数据集中得到

所以

Learning via stochastic variational inference (SVI)

现在讨论如何对上述不等式求最大值,首先我们有

所以我们可以使用蒙特卡洛方法以及梯度下降更新上述参数。

显然我们有

但是注意到$\nabla_{\phi} \mathcal{L}(\mathbf{x} ; \theta, \phi)$比较复杂,无法直接写出。