怎么理解生成模型VAE?( 四 )


这里就需要一些内行知识了 。可以先进行一些计算上的修改并针对证据下界(ELBO)和p(x)重写KL散度:

怎么理解生成模型VAE?

文章插图
有趣的是ELBO是这个方程中唯一取决于所选分布的变量 。而后者由于不取决于q 。则不受所选分布的影响 。因此 。可以在上述方程中通过将ELBO(负值)最大化来使KL散度最小化 。这里的重点是ELBO可以被计算 。也就是说现在可以进行一个优化流程 。
所以现在要做的就是给Q做一个好的选择 。再微分ELBO 。将其设为零 。然后就大功告成了 。可是开始的时候就会面临一些障碍 。即必须选择最好的分布系列 。
一般来说 。为了简化定义q的过程 。会进行平均场变分推理 。每个变分参数实质上是相互独立的 。因此 。每个数据点都有一个单独的q 。可被相称以得到一个联合概率 。从而获得一个“平均场”q 。
怎么理解生成模型VAE?

文章插图
实际上 。可以选用任意多的场或者集群 。比如在MINIST数据集中 。可以选择10个集群 。因为可能有10个数字存在 。
要做的第二件事通常被称为再参数化技巧 。通过把随机变量带离导数完成 。因为从随机变量求导数的话会由于它的内在随机性而产生较大的误差 。
怎么理解生成模型VAE?

文章插图
再参数化技巧较为深奥 。但简单来说就是可以将一个正态分布写成均值加标准差 。再乘以误差 。这样在微分时 。我们不是从随机变量本身求导数 。而是从它的参数求得 。
这个程序没有一个通用的闭型解 。所以近似后验分布的能力仍然受到一定限制 。然而 。指数分布族确实有一个闭型解 。这意味着标准分布 。如正态分布、二项分布、泊松分布、贝塔分布等 。所以 。就算真正的后验分布值无法被查出 。依然可以利用指数分布族得出最接近的近似值 。
变分推理的奥秘在于选择分布区Q 。使其足够大以求得后验分布的近似值 。但又不需要很长时间来计算 。
既然已经大致了解如何训练网络学习数据的潜在分布 。那么现在可以探讨如何使用这个分布生成数据 。
怎么理解生成模型VAE?

文章插图
数据生成过程
观察下图 。可以看出对数据生成过程的近似认为应生成数字‘2’ 。所以它从潜在变量质心生成数值2 。但是也许不希望每次都生成一摸一样的数字‘2’ 。就好像上述端游例子所提的植物 。所以我们根据一个随机数和“已学”的数值‘2’分布范围 。在潜在空间给这一过程添加了一些随机噪声 。该过程通过解码器网络后 。我们得到了一个和原型看起来不一样的‘2’ 。
怎么理解生成模型VAE?

文章插图
这是一个非常简化的例子 。抽象描述了实际自动编码器网络的体系结构 。下图表示了一个真实变分自动编码器在其编码器和解码器网络使用卷积层的结构体系 。从这里可以观察到 。我们正在分别学习潜在空间中生成数据分布的中心和范围 。然后从这些分布“抽样”生成本质上“虚假”的数据 。
怎么理解生成模型VAE?

文章插图
该学习过程的固有性代表所有看起来很相似的参数(刺激相同的网络神经元放电)都聚集到潜在空间中 。而不是随意的分散 。如下图所示 。可以看到数值2都聚集在一起 。而数值3都逐渐地被推开 。这一过程很有帮助 。因为这代表网络并不会在潜在空间随意摆放字符 。从而使数值之间的转换更有真实性 。
怎么理解生成模型VAE?

文章插图
整个网络体系结构的概述如下图所示 。希望读者看到这里 。可以比较清晰地理解整个过程 。我们使用一组图像训练自动编码器 。让它学习潜在空间里均值和标准值的差 。从而形成我们的数据生成分布 。接下来 。当我们要生成一个类似的图像 。就从潜在空间的一个质心取样 。利用标准差和一些随机误差对它进行轻微的改变 。然后使其通过解码器网络 。从这个例子可以明显看出 。最终的输出看起来与输入图像相似 。但却是不一样的 。
怎么理解生成模型VAE?

文章插图
怎么理解生成模型VAE?

文章插图
变分自动编码器编码指南
本节将讨论一个简单的去噪自动编码器 。用于去除文档扫描图像上的折痕和污痕 。以及去除Fashion MNIST数据集中的噪声 。然后 。在MNIST数据集训练网络后 。就使用变分自动编码器生成新的服装 。

推荐阅读