系列文章目录
Diffusion 基石一:
Diffusion【1】:VAE
Diffusion 基石二:
Diffusion【2】:VQ-VAE
Diffusion 基石三:
Diffusion【3】:DDPM
Diffusion 基石四:
Diffusion【4】:DDIM
文章目录
前言
VQ-VAE 在最近的许多生成模型中都有相关的应用,针对自回归模型的固有毛病,VQ-VAE 提出的解决方案是:先降维,然后再对编码向量用 PixelCNN 建模。本文主要侧重于对论文的翻译和部分解读,希望能粗略的带大家理解本文具体做了一个什么事情。若想理解每一步数学公式的推导建议仔细阅读苏剑林老师的博客。
原论文链接:Neural Discrete Representation Learning
原论文链接:苏神博客
1. Abstract
- 问题背景
- 在无监督学习中,获得“有用的表示”一直是一个关键问题。生成模型需要在学习数据的潜在结构(latent structure)的同时生成高质量样本。
- 传统的 VAE 面临一些问题,例如当解码器非常强大时,潜在变量可能被忽略(即“后验坍缩”)。
- 核心贡献
- 离散编码:模型生成离散的潜在表示,而不是通常的连续表示。这更符合某些类型的数据(例如语言和语音)的特性。
- 学习先验:模型通过学习获得先验分布,而不是假设固定的先验分布。
- **向量量化(VQ)的引入:**一种将连续值映射到有限集合的技术。通过将编码器的输出离散化,VQ 方法解决了后验坍缩的问题,使得潜在变量在生成过程中被有效利用。
2. Introduction
2.1. Motivation
在像素层面训练无监督模型时,最大似然和重建误差是两个常用的目标。然而,它们的有效性取决于表示的具体应用场景。本文的目标是实现一种模型,在其潜在空间中保留数据的重要特征,同时优化最大似然。
通常的生成模型目标是优化最大似然(生成的样本尽可能符合真实分布)或最小化重建误差(生成样本尽可能还原输入数据)。
现有方法存在的问题:
- 强大的解码器(例如 PixelCNN)虽然可以直接优化最大似然,但忽略了潜变量的学习,导致生成的样本难以解释或具有噪声问题。
- 传统 VAE 的潜变量学习存在局限性,例如后验坍缩现象:强解码器可能忽略潜变量,直接从输入生成输出。
2.2. Contribution
通过一种新的后验分布参数化方式,将离散潜变量引入了变分自编码器(VAE)框架。本文提出的模型 VQ-VAE 依赖于 向量量化(VQ),其简单易于训练,没有大的方差问题,并且避免了许多强解码器的 VAE 模型中常见的“后验坍缩”问题。此外,这是第一个可以在对数似然上达到与连续潜变量模型类似性能的离散潜变量 VAE 模型,同时具有离散分布的灵活性。
由于 VQ-VAE 能够有效利用潜在空间,它可以成功建模通常在数据空间中跨越多个维度的重要特征而不是专注于噪声和局部不可感知的细节。一旦 VQ-VAE 发现了模态的良好离散潜在结构,本文就可以对这些离散随机变量训练一个强大的先验,从而生成有趣的样本和实用的应用。
VQ-VAE 的核心创新包括:
- 离散潜变量:更符合语言、语音等模态的离散特性,同时更适合复杂推理和规划任务。
- 向量量化方法:通过离散化编码器输出,避免了后验坍缩问题,使潜变量在生成任务中得到有效利用。
- 灵活的先验建模:可以对离散潜变量进行更高层次的建模(例如使用 PixelCNN 对潜变量分布进行建模)。
3. Methods
3.1. Discrete Latent variables
本文定义了一个潜在嵌入空间 e ∈ R K × D e \in \mathbb{R}^{K \times D} e∈RK×D,其中 K K K 是离散潜变量空间的大小(即一个 K-类分类分布), D D D 是每个潜在嵌入向量 e i e_i ei 的维度。需要注意的是,有 K K K 个嵌入向量 e i ∈ R D e_i \in \mathbb{R}^D ei∈RD,其中 i ∈ { 1 , 2 , . . . , K } i \in \{1, 2, ..., K\}