PyTorch生成式人工智能——VQ-VAE详解与实现_vqvae
PyTorch生成式人工智能——VQ-VAE详解与实现
0. 前言
在传统的变分自编码器 (Variational Auto-Encoder, VAE) 中,模型学习的是一个连续的潜在表示 (latent representation
)。然而,对于许多模态的数据,如语言、语音或某些图像特征,离散的潜表示往往更加自然有效。
VQ-VAE
(Vector Quantised-Variational AutoEncoder
) 的核心思想就是将 VAE
的连续潜变量离散化。它通过学习一个码本 (Codebook
) 来实现这一点,码本是一个包含有限个嵌入向量的字典。模型不是直接输出一个连续的潜在向量,而是从码本中找出与编码器输出最接近的嵌入向量来代替它。这种离散化带来了以下优势:
- 兼容性:离散的潜在空间可以很自然地与自回归模型(如 PixelCNN、Transformer )结合,用于强大的先验建模,从而生成高质量的新样本
- 计算效率:对于下游任务,处理离散的
token
通常比处理连续的向