理解 VQ-VAE(DALL-E 原理解析 第一部分)
摘要
一篇教育性博客文章,讲解向量量化变分自编码器(VQ-VAE)架构——OpenAI DALL-E 图像生成模型的关键组成部分。
<p><em>作者:Charlie Snell</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6Fjy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6Fjy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png 424w, https://substackcdn.com/image/fetch/$s_!6Fjy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png 848w, https://substackcdn.com/image/fetch/$s_!6Fjy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png 1272w, https://substackcdn.com/image/fetch/$s_!6Fjy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6Fjy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png" width="1456" height="620" data-attrs="{"src":"https://substack-post-media.s3.amazonaws.com/public/images/92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":620,"width":1456,"resizeWidth":null,"bytes":null,"alt":null,"title":null,"type":null,"href":null,"belowTheFold":false,"topImage":true,"internalRedirect":null,"isProcessing":false,"align":null,"offset":false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6Fjy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png 424w, https://substackcdn.com/image/fetch/$s_!6Fjy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png 848w, https://substackcdn.com/image/fetch/$s_!6Fjy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png 1272w, https://substackcdn.com/image/fetch/$s_!6Fjy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>与机器学习界的所有人一样,我们对 <a href="https://openai.com/blog/dall-e/">OpenAI 的 DALL-E</a> 所取得的成果感到极为惊叹。该模型能够根据文本描述生成精确、高质量的图像。它甚至可以创作出很可能在现实世界中不存在的物体的创意渲染图,比如“一把牛油果形状的扶手椅”。</p><p>为了庆祝 DALL-E 的发布,我们将发布一系列博客文章,解析该模型的关键组成部分。</p><p>本系列的第一篇文章将介绍 <a href="https://arxiv.org/pdf/1711.00937.pdf">VQ-VAE</a>,正是这一组件使 DALL-E 能够生成如此多样化且高质量的图像分布。</p><p>在下一篇文章中,我们将探讨用于多模态自回归生成的 <a href="https://arxiv.org/pdf/1706.03762.pdf">transformer</a>:即 DALL-E 中学习语言与图像之间关联的部分,从而产生如此富有创意且准确的输出结果。</p><p><em>注:本文假设读者具备一定的深度学习和贝叶斯概率知识。</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QCbm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60881a9b-cbe1-485b-b273-3a786ad5b40e_1396x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QCbm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60881a9b-cbe1-485b-b273-3a786ad5b40e_1396x1024.png 424w, https://substackcdn.com/image/fetch/$s_!QCbm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60881a9b-cbe1-485b-b273-3a786ad5b40e_1396x1024.png 848w, https://substackcdn.com/image/fetch/$s_!QCbm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60881a9b-cbe1-485b-b273-3a786ad5b40e_1396x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!QCbm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60881a9b-cbe1-485b-b273-3a786ad5b40e_1396x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QCbm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60881a9b-cbe1-485b-b273-3a786ad5b40e_1396x1024.png" width="1396" height="1024" data-attrs="{"src":"https://substack-post-media.s3.amazonaws.com/public/images/60881a9b-cbe1-485b-b273-3a786ad5b40e_1396x1024.png","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":1024,"width":1396,"resizeWidth":null,"bytes":null,"alt":null,"title":null,"type":null,"href":null,"belowTheFold":false,"topImage":false,"internalRedirect":null,"isProcessing":false,"align":null,"offset":false}" class="sizing-normal" alt="" sr
查看缓存全文
缓存时间: 2026/05/08 08:58
# 理解 VQ-VAE(DALL-E 解析 第1部分)
来源:https://mlberkeley.substack.com/p/vq-vae
*作者:Charlie Snell*
[](https://substackcdn.com/image/fetch/$s_!6Fjy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92033e4a-2d30-4ac8-82a8-8e8a1447b3a2_1600x681.png)
与机器学习界的其他人一样,我们对 OpenAI 的 DALL-E (https://openai.com/blog/dall-e/) 所取得的结果感到无比惊叹。该模型能够根据文本描述生成精确、高质量的图像。它甚至可以创作出很可能在现实世界中不存在的物体的创意渲染图,比如"一个牛油果形状的扶手椅"。
为了庆祝 DALL-E 的发布,我们将发布一系列博客文章,解释该模型的关键组件。
本系列的第一篇博客文章将介绍 VQ-VAE (https://arxiv.org/pdf/1711.00937.pdf),正是这一组件使 DALL-E 能够生成如此多样化且高质量的图像分布。
在下一篇文章中,我们将介绍用于多模态自回归生成的 transformer (https://arxiv.org/pdf/1706.03762.pdf):这是 DALL-E 中学习语言与图像之间关联的部分,从而产生了如此富有创意且准确的输出。
*注:本博客文章假设您具备一定的深度学习和贝叶斯概率知识。*
[](https://substackcdn.com/image/fetch/$s_!QCbm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60881a9b-cbe1-485b-b273-3a786ad5b40e_1396x1024.png)
VQ-VAE 代表 Vector Quantized Variational Autoencoder(矢量量化变分自编码器),这个词组包含了很多大词,所以我们先退一步,简要回顾一下基础知识。
我们首先定义潜空间(latent space)的概念,然后定义自编码器,最后回顾变分自编码器的基础知识,然后再深入探讨 VQ-VAE。*(注:如果您已经理解这些内容,请随意跳转到下一节,我们将在那里深入 VQ-VAE 的细节。)*
潜空间是给定原始数据分布的某种底层"隐藏"表示。为了清楚理解这一点,让我们看一个简单的例子。
假设原始数据点为 *x∈Rn*,它们是通过某个低维 *z∈Rm*(*m<n*)的线性变换并加上噪声生成的。具体来说,*x* 的生成方式为 *x=Az+v*,其中 *v* 是 n 维独立同分布的高斯噪声,A∈Rn * m。
通常情况下,我们只能看到原始数据 *x*;我们无法访问 *z*,这就是为什么它被称为数据的潜变量或"隐藏"表示。然而,我们希望获得对 *z* 的访问,因为它是更基本、更压缩的数据表示。此外,这种潜表示可以作为许多需要使用该数据的其他算法的更有用输入。
这种特定设置——原始数据是潜空间的线性变换——正是经典无监督算法"PCA"所设计的:PCA 本质上试图从上述例子中找到潜在的 *z* 表示。这很好,但如果潜表示与原始数据之间存在更复杂的非线性关系呢?例如,下图可视化了更复杂的潜空间可以编码的高层次信息类型。在这种情况下,PCA 将无法找到最佳的潜表示。相反,我们可以使用自编码器来找到这种更抽象的潜空间。
*注:潜空间不必是连续向量空间,它也可以是一组**离散**变量,而 VQ-VAE 试图找到的正是这种类型的潜空间。但在那之前,让我们先理解标准自编码器。*
[](https://substackcdn.com/image/fetch/$s_!VuX6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb8a9438-cdeb-43ef-aa9e-fe7312e9a664_1336x1100.png)
自编码器是一种无监督学习技术,使用神经网络为给定数据分布找到非线性的潜表示。神经网络由两部分组成:**编码器**网络 *z=f(x)* 和**解码器**网络 *x^=g(z)*。
这里 *x* 是输入数据,*z* 是潜向量表示,*x^* 是从潜空间对 *x* 的"重构"。*f(x)* 和 *g(z)* 都是神经网络。将两部分结合起来,整个模型可以用关系式 *x^=g(f(x))* 描述(见下图)。
理想情况下,解码器应该能够从编码器的潜表示中准确重构原始数据。如果模型能够学习到这样的重构,那么我们就可以假设我们的潜空间很好地表示了数据。为了实现这一目标,我们训练模型时在 *x* 和 *x^* 之间使用某种重构损失(即
或
[](https://substackcdn.com/image/fetch/$s_!hjIT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbf9f928-f7a4-4ab6-a8f1-fd9c40e5049b_1600x1200.png)
还需要注意的是,*z* 的维度应始终低于 *x*。毕竟,关键是对数据进行压缩表示,使得算法被迫找到原始数据中最本质的组成部分。
自编码器中这种压缩的、潜变量的部分通常也被称为网络的**瓶颈**,因为它将数据挤压到更小的空间中。
*(注:本文不会深入变分自编码器的所有数学细节,因为需要一篇完整的博客文章才能真正讲清楚 VAE。幸运的是,许多这样的博客文章已经存在,我个人推荐 Jaan Altosaar 的这篇优秀博客文章 (https://jaan.io/what-is-variational-autoencoder-vae-tutorial/),如果您想要更详细的介绍。)*
现在我们已经理解了自编码器的基本原理,让我们看看变分自编码器有何不同。关键区别在于对 VAE 潜空间施加的结构。理想情况下,我们希望潜空间将语义相似的数据点聚集在一起,并将语义不相似的点放得远离彼此。最好数据分布的大部分在潜空间中构成一个相当紧凑的体积,而不是延伸到无穷远。
标准自编码器的主要问题是,学习到的潜变量不一定具有这两种特性!模型可以学习任何它想要的潜空间,因此它最终往往通过将单个数据点放置在潜空间中远离其他点的独立区域来记忆这些数据点。下图可视化了自编码器潜空间的这些问题,并将其与 VAE 的潜空间进行了比较。
[](https://substackcdn.com/image/fetch/$s_!YfEJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F665c5c27-7bdb-4a5c-bbd5-3d52b880e863_1384x782.png)
变分自编码器通过对潜空间施加概率先验来克服这个问题。为了形式化这一点,我们将潜空间 *z* 视为一个随机变量。首先让我们在潜变量上施加一个**先验** *p(z)*,在大多数 VAE 中,这通常只是标准高斯分布 N(0,1)。给定原始数据点 *x*,我们还定义潜空间的**后验**为 *p(z|x)*。
我们的最终目标是计算数据的后验,我们可以用贝叶斯规则表示为
\\\(p(z\|x)=\\frac\{p(x\|z)p(z)\}\{p(x)\}\\\)
不幸的是,由于我们处理的是连续变量,*p(x)* 是一个计算上不可行的量。为了使问题可计算,我们将后验的近似限制在特定分布族:独立高斯分布。称这个近似分布为 *q(z|x)*。现在我们的目标变为最小化真实后验与这种近似形式之间的 KL 散度。
[](https://substackcdn.com/image/fetch/$s_!5xMX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b9f5efb-0a7d-4f62-a67f-613bb9ab8acf_826x374.png)
我省略数学细节,但事实证明这个目标可以通过最小化损失函数来计算
\\\(-E_{z \\sim q(z\|x)}\[log(p(x\|z))\]+KL(q(z\|x) \|\| p(z))\\\)
这里 *q(z|x)* 由编码器近似,*p(x|z)* 由解码器表示。
VAE 损失实际上有一个很好的直观解释:第一项本质上是重构损失,第二项表示对后验的正则化。后验通过 KL 散度被拉向先验,本质上是将潜空间正则化到高斯先验。这具有使潜分布紧凑地分布在 0 附近的效果。
给定足够具有表达能力的神经网络,VAE 潜空间可以非常整齐地拟合复杂的数据分布。通常你可以期望在潜空间中不同类型数据点之间看到平滑的过渡。例如,如果 VAE 在 MNIST 上训练,你可以预期 6 有一个聚类,5 有另一个独立的聚类。如果你在这两个聚类之间移动,你应该会得到一个看起来像是 5 和 6 的奇怪混合的数字。
- 潜空间是数据的压缩表示,通常在其表示中强调数据最重要和语义最有趣的特征。
- 学习到的潜表示对许多下游算法很有用。
- 自编码器是一种找到作为数据复杂非线性函数的潜空间的方法。
- 变分自编码器在自编码器潜空间上添加先验。这赋予学习到的潜空间一些非常好的特性(即我们可以通过潜变量平滑地插值数据分布)。
现在我们已经掌握了自编码器的基础知识,我们可以讨论 VQ-VAE 到底是什么。VAE 和 VQ-VAE 之间的根本区别在于,VAE 学习连续的潜表示,而 VQ-VAE 学习**离散**的潜表示。
到目前为止,我们已经看到了如何使用连续向量空间来表示自编码器中的潜变量。但潜变量不一定需要是连续向量,它只需要是数据的某种数值表示。而向量空间的一个潜在理想的替代方案是离散表示。
一般来说,我们在现实世界中遇到的许多数据都倾向于离散表示。例如,人类语音可以很好地用离散音素和语言来表示。此外,图像包含具有某种离散限定符的离散对象。你可以想象有一个离散变量表示对象类型,一个表示颜色,一个表示大小,一个表示方向,一个表示形状,一个表示纹理,一个表示背景颜色,一个表示背景纹理,等等……
除了表示之外,还有许多算法(如 transformer)是为处理离散数据而设计的,所以我们希望为这些算法提供数据的离散表示。
[](https://substackcdn.com/image/fetch/$s_!o3kf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77712a67-0b5d-4c09-a996-6cad38c7af7e_1200x630.png)
显然离散潜表示可能很有用,但我们如何学习这样的表示呢?一开始这可能看起来非常具有挑战性,因为一般来说,离散的东西与深度学习不太合拍。幸运的是,VQ-VAE 通过对标准自编码器范式进行少量调整,成功地使深度学习适用于这项任务。
VQ-VAE 通过向网络添加离散的**码本**(codebook)组件来扩展标准自编码器。码本基本上是一个与相应索引相关联的向量列表。它用于量化自编码器的瓶颈:将编码器网络的输出与码本中的所有向量进行比较,然后将欧几里得距离最近的码本向量送入解码器。
数学上表示为
\\\(z_q(x)=\\text\{argmin\}_i \|z_e(x)-e_i\|_2\\\)
其中 *ze(x)* 是某个原始输入 *x* 的编码器向量,*ei* 是第 i 个码本向量,*zq(x)* 是得到的量化向量,作为输入传递给解码器。
这个 argmin 操作有点令人担忧,因为它对编码器来说是不可微的。但在实践中,如果你直接将解码器梯度通过这个操作传递给编码器(即相对于编码器和量化码本向量将其梯度设为 1;相对于所有其他码本向量设为 0),一切似乎都能正常工作。
然后解码器的任务是从这个量化向量重构输入,就像标准自编码器公式中一样。
[](https://substackcdn.com/image/fetch/$s_!QrwH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feafbf8b1-b566-4962-b2c7-dee8ee491983_1600x681.png)
您可能会对这样一个事实感到困惑:能够输入给解码器的向量集合如此受限(只有码本向量集合)。当解码器只能接受码本向量集合作为输入时,怎么能期望生成大量且多样化的可能图像呢?我们需要为每个训练点提供唯一的离散值才能重构所有数据。如果真的是这样,那么模型是否实际上是通过将每个训练点映射到不同的离散代码来记忆数据的呢?
如果编码器只输出一个向量,这将是一个非常合理的担忧,但在实际的 VQ-VAE 中,编码器通常产生一系列向量。例如,对于图像,编码器可能输出 32×32 的向量网格,每个向量都被量化,然后整个网格被送入解码器。或者类似地,对于音频处理,编码器可以输出一长串一维向量序列。所有向量都量化为同一个码本,所以离散值的数量不会改变,但通过输出多个代码,我们能够指数级地增加解码器可以构造的数据点数量。
例如,假设我们处理图像,码本大小为 512,编码器输出 32×32 的向量网格。在这种情况下,我们的解码器可以输出 512^(32 × 32) = 2^9216 个不同的图像!为了清楚说明这个数字有多么巨大,我在下图中用 Python 计算了它……这确实是一个难以想象的大数字。没有人可能可视化该模型的每一个可能输出。离散空间的大小在这里确实不再是问题。
[](https://substackcdn.com/image/fetch/$s_!EPmI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb60df5c0-dda1-4e08-b466-663767beaaf4_1600x238.png)
当然,模型仍然可能记忆训练数据,但如果在编码器中嵌入正确的归纳偏置(即对图像使用卷积网络)和潜代码的正确结构(即图像的 32×32 网格),模型应该能学习到一个很好地表示数据的离散空间。
就像编码器和解码器网络一样,码本向量也通过梯度下降学习。理想情况下,我们的编码器将输出通常接近其中一个学习到的码本向量的向量。这里本质上存在一个双向问题:学习对齐到编码器输出的码本向量,以及学习对齐到码本向量的编码器输出。
这两个问题都通过添加
相似文章
先连续后离散:解决维度坍塌问题的VQ-VAE
本文探讨了VQ-VAE中常见的维度坍塌问题,指出模型表示通常局限于低维子空间。研究提出了一种“自编码器预热(AE Warm-Up)”策略,即首先将模型作为未量化的自编码器进行训练,从而提升重建质量并增加潜在空间的有效维度。
变分有损自编码器
# 变分有损自编码器 来源: [https://openai.com/index/variational-lossy-autoencoder/](https://openai.com/index/variational-lossy-autoencoder/) ## 摘要 表示学习旨在将观测数据的某些方面暴露在学习表示中,这种表示便于分类等下游任务。例如,对于二维图像,一个好的表示可能是只描述全局结构并丢弃有关详细纹理信息的表示。在本文中,我们提出
Qwen-Image-VAE-2.0 技术报告
Qwen-Image-VAE-2.0 是一个高压缩变分自编码器套件,通过增强的架构、大规模训练和语义对齐策略,提升了重建保真度和可扩散性。
它是如何做到如此出色的?(DALL-E 解析 第二部分)
本文介绍了 DALL-E 的架构,重点阐述其 Transformer 组件如何将语言与离散图像表示相关联,从而根据文本提示生成高质量图像。
ELVAE:基于证据学习的变分自编码器用于不确定性感知生成
介绍了ELVAE,一种采用证据学习的VAE,通过正态-逆伽马后验对潜在坐标进行建模,以获得显式的不确定性估计。在MNIST上的实验表明,类内不确定性排序可以对合成样本的可靠性和压力测试进行分层,但结果需要按类别归一化,且在不同随机种子间存在差异。