简单得令人尴尬的FSQ:“四舍五入”超越了VQ-VAE

af0942352779b14f2680f61687d23d4b.gif

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 月之暗面

研究方向 | NLP、神经网络

正如 “XXX is all you need” 一样,有不少论文都以“简单得令人尴尬”命名(An Embarrassingly Simple XXX),但在笔者看来,这些论文大多数都是噱头多于实力。不过,笔者最近阅读到的一篇论文,真的让人不由得发出“简单得令人尴尬”的感叹~

论文的标题是《Finite Scalar Quantization: VQ-VAE Made Simple》[1],顾名思义,这是一篇旨在用 FSQ(Finite Scalar Quantization)简化 VQ-VAE 的工作。随着生成模型、多模态 LLM 的逐渐流行,VQ-VAE 及其后续工作也作为“图像的 Tokenizer” 而“水涨船高”。然而,VQ-VAE 的训练本身也存在一些问题,而 FSQ 这篇论文则声称通过更简单的“四舍五入”就可以达到同样的目的,并且有着效果更好、收敛更快、训练更稳的优点。

FSQ 真有这么神奇?接下来我们一起学习一下。

a2e4e5deec8cb589f5a11a873141d601.png

VQ

首先,我们来了解一下 “VQ”。VQ 全称是 “Vector Quantize”,可以翻译为“向量量子化”或者“向量量化”,是指将无限、连续的编码向量映射为有限、离散的整数数字的一种技术。如果我们将 VQ 应用在自编码器的中间层,那么可以在压缩输入大小的同时,让编码结果成为一个离散的整数序列。

假设自编码器的重构损失能够让我们满意,那么这个整数序列就是原始图像的等价物,所有关于原始图像的操作都可以转化为整数序列上的操作。比如我们想训练图像生成模型,就只需要训练整数序列生成模型,而这跟本文生成等价,所以我们可以用它来训练一个 GPT,模型和流程都跟文本一模一样,训练完成后,我们就可以从 GPT 模型中采样整数序列,然后送到解码器中得到图像,从而完完成了图像生成模型的构建。

说白了,“VQ +自编码器”将任意输入都转化为跟文本一致的整数序列,统一了不同模态数据的输入形式,同时也统一了它们的处理和生成模型。

而这样的一个带有 VQ 功能的自编码器,就被称为 “VQ-VAE”。

dcee4b15b0ac91ae566500be3c619eaa.png

AE

早在四年前的文章《VQ-VAE的简明介绍:量子化自编码器》[2] 中我们就介绍过了 VQ-VAE,尽管被冠以 “VAE(Variational AutoEncoder)”之名,但它实际上跟 VAE 没啥关系,如上一节所说,它只是一个带有 VQ 功能的 AE(AutoEncoder)。

既然是 AE,那么有 encoder 和 decoder,一个普通的 AE 是这样的:

947582d79497b78052abc3c52df0b3bf.png

VQ-VAE 则稍微复杂一些:

c96ce2883fec1b53718b54de05d6360f.png

让我们来逐步解释一下。首先,第一步是相同的,输入 到 encoder 中,输出编码向量 。然而,我们并不是直接将 输入到 decoder 中,而是先维护一个编码向量表 (Codebook),从中选取与 最相近的一个 送入到 decoder 中进行重构 。由于编码表是有限的,所以我们也可以将实际的编码结果理解为一个整数(即与 最

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分层VQ-VAE(Variational Autoencoder)是一种基变分自编码器的生成模型用于学习数据的潜在表示和多样化的结构。其原理下: 1. 编码器(Encoder)分层VQ-VAE包含多编码器,每个编码器将数据映射到潜在表示空间。个编码器可以看作是一个逐编码的过程,其中较低层编码器学习表示的全局特征较高层的编码则学习表示数据的部特征。 2 潜在表示空间(Latent):潜在表示空间是编码生成的数据的低维表示。通过将输入数据映射到潜在表示空,模型可以捕捉数据中的关键特征,并实现对新样本的生成。 3. 化器(Vector Quantizer):分层VQ-VAE使用量化器将连的潜在表示离散化为离散的代码本。这样做的好处是可以限制潜在表示的维度,并增加模型的稳定性。量化器将潜在表示映射到最接近的离散代码本中的向量。 4. 解码器(Decoder):解码器将离散的代码本向量映射回原始数据空间,从而实现对新样本的生成。解码器的目标是最大程度地重构输入数据,使得生成的样本与真实数据尽可能接近。 5. 损失函数(Loss Function):分层VQ-VAE使用重构损失和潜在表示损失作为训练过程中的目标函数。重构损失衡量了生成样本与真实数据之间的差异,潜在表示损失则衡量了离散代码本向量与潜在表示之间的差异。 通过编码器、量化器和解码器的组合,分层VQ-VAE可以学习数据的潜在表示并生成多样化的结构。该模型可以应用于多个领域,如图像生成、音频合成和异常检测等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值