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


稀疏自动编码器
与其字义相反的是 。稀疏自动编码器具有比输入或输出维度更大的潜在维度 。然而 。每次网络运行时 。只有很小一部分神经元会触发 。这意味着网络本质上是“稀疏”的 。稀疏自动编码器也是通过一种规则化的形式来减少网络过度拟合的倾向 。这一点与去噪自动编码器相似 。
收缩自动编码器
收缩编码器与前两个自动编码器的运行过程基本相同 。但是在收缩自动编码器中 。我们不改变结构 。只是在丢失函数中添加一个正则化器 。这可以被看作是岭回归的一种神经形式 。
现在了解了自动编码器是如何运行的 。接下来看看自动编码器的弱项 。一些最显著的挑战包括:
· 潜在空间中的间隙
· 潜在空间中的可分性
· 离散潜在空间
这些问题都在以下图中体现 。

怎么理解生成模型VAE?

文章插图
MNIST数据集的潜在空间表示
这张图显示了潜在空间中不同标记数字的位置 。可以看到潜在空间中存在间隙 。我们不知道字符在这些空间中是长什么样的 。这相当于在监督学习中缺乏数据 。因为网络并没有针对这些潜在空间的情况进行过训练 。另一个问题就是空间的可分性 。上图中有几个数字被很好地分离 。但也有一些区域被标签字符是随机分布的 。这让我们很难区分字符的独特特征(在这个图中就是数字0-9) 。还有一个问题是无法研究连续的潜在空间 。例如 。我们没有针对任意输入而训练的统计模型(即使我们填补了潜在空间中的所有间隙也无法做到) 。
这些传统自动编码器的问题意味着我们还要做出更多努力来学习数据生成分布并生成新的数据与图像 。
现在已经了解了传统自动编码器是如何运行的 。接下来讨论变分自动编码器 。变分自动编码器采用了一种从贝叶斯统计中提取的变分推理形式 。因此会比前几种自动编码器稍微复杂一些 。我们会在下一节中更深入地讨论变分自动编码器 。
怎么理解生成模型VAE?

文章插图
变分自动编码器
变分自动编码器延续了传统自动编码器的结构 。并利用这一结构来学习数据生成分布 。这让我们可以从潜在空间中随机抽取样本 。然后 。可以使用解码器网络对这些随机样本进行解码 。以生成独特的图像 。这些图像与网络所训练的图像具有相似的特征 。
怎么理解生成模型VAE?

文章插图
对于熟悉贝叶斯统计的人来说 。编码器正在学习后验分布的近似值 。这种分布通常很难分析 。因为它没有封闭式的解 。这意味着我们要么执行计算上复杂的采样程序 。如马尔可夫链蒙特卡罗(MCMC)算法 。要么采用变分方法 。正如你可能猜测的那样 。变分自动编码器使用变分推理来生成其后验分布的近似值 。
我们将会用适量的细节来讨论这一过程 。但是如果你想了解更深入的分析 。建议你阅览一下Jaan Altosaar撰写的博客 。变分推理是研究生机器学习课程或统计学课程的一个主题 。但是了解其基本概念并不需要拥有一个统计学学位 。
若对背后的数学理论不感兴趣 。也可以选择跳过这篇变分自动编码器(VAE)编码教程 。
首先需要理解的是后验分布以及它无法被计算的原因 。先看看下面的方程式:贝叶斯定理 。这里的前提是要知道如何从潜变量“z”生成数据“x” 。这意味着要搞清p(z|x) 。然而 。该分布值是未知的 。不过这并不重要 。因为贝叶斯定理可以重新表达这个概率 。但是这还没有解决所有的问题 。因为分母(证据)通常很难解 。但也不是就此束手无辞了 。还有一个挺有意思的办法可以近似这个后验分布值 。那就是将这个推理问题转化为一个优化问题 。
怎么理解生成模型VAE?

文章插图
要近似后验分布值 。就必须找出一个办法来评估提议分布与真实后验分布相比是否更好 。而要这么做 。就需要贝叶斯统计员的最佳伙伴:KL散度 。KL散度是两个概率分布相似度的度量 。如果它们相等 。那散度为零;而如果散度是正值 。就代表这两个分布不相等 。KL散度的值为非负数 。但实际上它不是一个距离 。因为该函数不具有对称性 。可以采用下面的方式使用KL散度:
怎么理解生成模型VAE?

文章插图
这个方程式看起来可能有点复杂 。但是概念相对简单 。那就是先猜测可能生成数据的方式 。并提出一系列潜在分布Q 。然后再找出最佳分布q* 。从将提议分布和真实分布的距离最小化 。然后因其难解性将其近似 。但这个公式还是有一个问题 。那就是p(z|x)的未知值 。所以也无法计算KL散度 。那么 。应该怎么解决这个问题呢?

推荐阅读