Background
对于我们观察到的数据,我们可以认为其是由我们未知的隐变量 $z$ 生成的。也可以说数据是由一个我们未知的分布生成的,而生成模型的目的便是想要找出这个未知的分布或者说拟合这个分布,之后我们便可以通过该生成模型生成近似真实的数据(比如图片,文本等)。
为了找出这个未知的分布,隐变量 $z$ , 可以使用最大似然法。
我们把观测到的数据与隐变量是为一个联合分布 $p(x, z)$ , 最大似然法就是要最大化概率 $p(x)$ .
计算 $p(x)$ 有两种方式: $$ p(x) = \int p(x,z)dz $$ $$ p(x) = \frac{p(x,z)}{p(z|x)} $$ 要想直接计算得到 $p(x)$ 是困难的,因为第一个公式需要遍历 $z$ , 不可行。第二个公式中需要知道 $p(z|x)$ 的分布,而该分布是得不到的。 但是可以通过这两个公式得到 Evidence Lower Bound(ELBO) 项。而后通过最大化 ELBO 来优化得到隐变量模型。
ELBO 方程表示如下:
$$ E_{q_\phi (z|x)}[\log \frac{p(x, z)}{q_\phi (z|x)}] $$
可以 ELBO 方程与 $p(x)$ 的关系如下: $$ \log p(x) \geq E_{q_\phi (z|x)}[\log \frac{p(x, z)}{q_\phi (z|x)}] $$
通过公式 1,我们可以推导出 ELBO 方程,如下所示;
也可以通过公式 2,我们可以推导出 ELBO 方程,如下所示; 由公式 15 可以看出,p(x) 等于 ELBO 加上 $q_\phi (z|x)$ 与 $p(z|x)$ 的 KL 散度(非负)。 由于 $p(x)$ 与 $\phi$ 无关,所以当 x 确定时,$p(x)$ 为常数。既可以得出当我们最大化 ELBO 时,即等价于最小化 $q_\phi (z|x)$ 与 $p(z|x)$ 的 KL 散度, 即我们构造的 $q_\phi (z|x)$ 越来越接近真实的 $p(z|x)$ .
通过直接最大化 ELBO 的方法,称为 Variational Autoencoder(VAE).