多模态论文笔记——VQ-VAE和VQ-VAE-2

1,446 阅读3分钟

大家好,这里是好评笔记,本文为试读,查看全文请移步公主号:Goodnote。本文详细介绍VQ-VAE和VQ-VAE-2的原理和训练过程,为后面的dVAE在DALLE中的使用打下坚实的基础。

5.png

@[toc]

AE和VAE

参考:深度学习——AE、VAE

VQ-VAE

论文:Neural Discrete Representation Learning

VQ-VAE(Vector Quantized Variational AutoEncoder,向量量化变分自编码器) 主要是将连续潜在空间的点映射到最近的一组离散的向量(即codebook中的向量)。模型引入了离散潜在空间的思想,克服了传统 VAE 中连续潜在空间表示的局限性,能够有效学习高质量的离散特征表示。

传统 VAE 的问题

  1. 连续潜在空间的限制
    • VAE 的潜在变量 zz 是连续值,这会导致模型生成的表示较为分散、不够紧凑,无法高效捕获复杂数据的离散结构(如图像中的清晰边缘、重复纹理,或离散的语音特征)。
  2. 后验坍塌问题
    • 潜在变量的表示能力未被充分利用。指编码器生成的潜在表示 zz解码器的输出贡献非常小,可能部分或完全被忽略
  • 当 KL 散度正则化过强时,编码器可能输出接近于先验分布(如 N(0,1)\mathcal{N}(0, 1)),导致潜在变量 zz 的信息丢失。

VQ-VAE 与 VAE 的对比

特点VAEVQ-VAE
潜在空间连续空间离散空间
潜在变量 zz每一维是连续的实数值,包括所有的有理数(如整数、小数和分数)以及无理数每一维是离散的整数
潜在分布建模高斯分布离散分布(通过 codebook 表示)

VQ-VAE 的主要改进

  1. 解决后验坍塌问题

    • 通过 codebook 的离散化潜在变量,解码器被迫使用潜在变量的所有信息,避免后验坍塌。
  2. 增强生成质量

    • VAE 生成的图像质量相对有限,而 VQ-VAE 可以生成更高分辨率和更清晰的图像。
  3. 为后续模型奠定基础

    • VQ-VAE 的离散表示为 DALL·EVQ-GAN 等模型的开发提供了关键技术支持。

VQ-VAE 的核心思想

关键点

  • VQ-VAE 的最大特点是引入了 向量量化(Vector Quantization)将连续的潜在变量 zz 离散化。这有助于模型捕捉和表示更加丰富和复杂的数据分布
  • 将编码器输出的连续潜在向量 ze(x)z_e(x) 映射到离散的代码簇(codebook)中最近的离散向量 eke_k,编码范围更加可控。

Codebook 是嵌入空间中一组可学习的向量集合,用来将连续的编码器输出 ze(x)z_e(x) 映射为离散表示 zq(x)z_q(x)。这些嵌入向量也称为 离散嵌入向量,它们定义了潜在空间中离散值的分布。

高效的重建与生成

  • 编码器将输入映射为潜在空间的连续值。
  • 向量量化将这些连续值投影到离散的代码簇中。
  • 解码器根据离散化的潜在变量重建输入。

VQ-VAE 模型结构

VQ-VAE 与 VAE 的结构非常相似,只是中间部分不是学习概率分布,而是换成 VQ 来学习 Codebook在这里插入图片描述

VAE架构图 在这里插入图片描述

VQ-VAE 架构图

VQ-VAE 的整体结构如下: 在这里插入图片描述

Figure 1

  • 左侧:描述 VQ-VAE 的图示。编码器 z(x)z(x) 的输出被映射到最近的嵌入点 e2e_2。梯度 zL\nabla_z L(红色箭头)将推动编码器改变输出,从而在下一次前向传播中调整配置。
  • 右侧:嵌入空间的可视化。编码器输出 ze(x)z_e(x) 被映射到最近的离散点 e2e_2

VQ-VAE 的核心思想是输入的图片通过编码器向量量化模块解码器的协同作用,将连续潜在变量映射为离散的潜在表示,并最终重建输入数据,得到新图像。以下是模型的主要流程:

1. 编码器 (Encoder)

详细全文请移步公主号:Goodnote。

参考:欢迎来到好评笔记(Goodnote)!