当前位置:   article > 正文

(2017|NIPS,VQ-VAE,离散潜在)神经离散表示学习_neural discrete representation learning

neural discrete representation learning

Neural Discrete Representation Learning

公和众和号:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)

目录

0. 摘要

3. VQ-VAE

3.1 离散潜在变量

3.2 学习

3.3 先验

4. 实验


0. 摘要

学习在无监督情况下获取有用的表示仍然是机器学习中的一个关键挑战。在本文中,我们提出了一个简单而强大的生成模型,该模型学习离散表示。我们的模型,矢量量化变分自动编码器(Vector Quantised-Variational AutoEncoder,VQ-VAE),与 VAEs 有两个关键区别:编码器网络输出离散的编码,而不是连续的编码;先验是学习的,而不是静态的。为了学习离散潜在表示,我们结合了矢量量化(VQ)的思想。使用 VQ 方法可以使模型规避 “后验崩溃” 的问题,即在 VAE 框架中通常观察到的潜在变量在与强大的自回归解码器配对时会被忽略。将这些表示与自回归先验配对,模型可以生成高质量的图像、视频和语音,以及进行高质量的说话人转换和无监督的音素学习,进一步证明了学到的表示的实用性。

3. VQ-VAE

也许与我们方法最相关的工作是 VAEs。VAEs 包括以下部分: 一个编码器网络,该网络参数化给定输入数据 x 的离散潜在随机变量 z 的后验分布 q(z|x),一个先验分布 p(z),以及一个具有分布p(x|z) 的解码器。

通常,VAEs 中的后验和先验被假定为具有对角协方差的正态分布,这允许使用高斯重新参数化技巧 [32, 23]。扩展包括自回归先验和后验模型 [14]、归一化流 [31, 10] 以及逆自回归后验 [22]。

在这项工作中,我们引入了 VQ-VAE,其中我们使用具有新的训练方式的离散潜在变量,灵感来自矢量量化(VQ)。后验和先验分布是分类的,并且从这些分布中抽取的样本索引一个嵌入表。然后将这些嵌入用作解码器网络的输入。

3.1 离散潜在变量

我们定义一个潜在嵌入空间 e ∈ ℝ^(K × D),其中 K 是离散潜在空间的大小(即,K-way 分类),D 是每个潜在嵌入向量 e_i 的维度。请注意,有 K 个嵌入向量 e_i ∈ ℝ^D,i ∈ 1; 2; ...; K。如图 1 所示,

  • 模型接收一个输入 x,通过编码器生成输出 z_e(x)。
  • 然后,通过在共享的嵌入空间 e 中使用最近邻查找,计算离散潜在变量 z,如方程 1 所示。
  • 解码器的输入是相应的嵌入向量 e_k,如方程 2 所示。

可以将这个正向计算流程视为具有将潜在变量映射到 K 个嵌入向量中的一个的特定非线性的常规自动编码器。模型的参数的完整集合是编码器、解码器和嵌入空间 e 的参数的并集。为简单起见,在本节中,我们使用一个随机变量 z 表示离散潜在变量,然而对于语音、图像和视频,我们分别提取 1D、2D 和 3D 潜在特征空间。

后验分类分布 q(z|x) 的概率被定义为 one-hot,如下所示:

其中 z_e(x) 是编码器网络的输出。我们将这个模型视为一个 VAE,我们可以用 ELBO 来限制 log p(x)。我们的提议分布 q(z = k|x) 是确定性的,通过在 z 上定义一个简单的均匀先验,我们得到一个 KL 散度常数,等于 logK。

表示 z_e(x) 经过离散化瓶颈,然后映射到嵌入 e 的最近元素,如方程 1 和 2 所示。

3.2 学习

请注意,对于方程 2,并没有定义真正的梯度,然而我们使用类似于直通估计器 [3] 的方法来近似梯度,并将梯度从解码器输入 z_q(x) 复制到编码器输出 z_e(x)。也可以通过量化操作的子梯度来进行估计,但这个简单的估计器在本文的初始实验中表现良好。 

在正向计算过程中,最近的嵌入 z_q(x)(方程 2)传递给解码器,在反向传播过程中,梯度 ▽_z L 未经修改地传递给编码器。由于编码器的输出表示和解码器的输入共享相同的 D 维空间,梯度包含了有关编码器如何改变其输出以降低重建损失的有用信息。

如图1(右)所示,梯度可以推动编码器的输出在下一个正向传递中以不同的方式进行离散化,因为方程 1 中的赋值将是不同的。

方程 3 指定了总体损失函数。它有三个组成部分,用于训练 VQ-VAE 的不同部分。第一项是重建损失(或数据项),它优化解码器和编码器(通过上面解释的估计器)。由于从 z_e(x) 映射到 z_q(x) 的直通梯度估计,嵌入 e_i 不接收来自重建损失 log p(z|z_q(x)) 的梯度。因此,为了学习嵌入空间,我们使用最简单的字典学习算法之一,矢量量化(VQ)。VQ 目标使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/839112
推荐阅读
相关标签