Cycle-Consistent VAE 论文阅读

200 阅读1分钟

0 论文信息

  在之前阅读的那篇解决强化学习泛化性能的 LUSR 中就以这篇论文提出的 Cycle-Consistent Variation Auto-Encoder (Cycle-Consistent VAE) 作为映射函数 F\mathcal{F} 的主体,因为缺乏对于 VAE 的了解,所以这里就专门补充一下其所使用的方法和 VAE 的相关知识。吐槽一下 : 这个作者的表述真的有些奇怪。

  下面简单给一下综述帮助理解

对于图像中不同变化因素学习解耦表示的生成模型对于有针对性的数据增强非常有用。通过从感兴趣的解耦潜在子空间中进行采样,作者可以高效地生成特定任务所需的新数据。学习解耦表示是一个具有挑战性的问题,特别是当某些变化因素很难标注时。在本文中,作者引入了一种新颖的架构,通过仅使用成对相似性标签的弱监督形式,将潜在空间解耦为两个互补的子空间。受到最近循环一致对抗架构的成功启发,作者在变分自编码器框架中使用了循环一致性。作者的非对抗性方法与最近将对抗性训练与自编码器相结合进行解耦表示的工作形成对比。本文展示了在三个数据集上解耦的潜在子空间的令人信服的结果,并与利用对抗性训练的最新工作进行了比较。

1 背景介绍

  自然图像可以被视为在不同变化因素条件下的未知分布的样本。图像中物体的外观受到这些因素的影响,这些因素可能对应于形状、几何属性、光照、纹理和姿势。根据所处理的任务,例如图像分类,其中许多因素对于预测模型来说是干扰项,通常被称为干扰变量。减轻无信息变化因素带来的混淆的一种方法是设计忽略所有干扰变量的表示。然而,这种方法受到可用训练数据的数量和质量的限制。另一种方法是通过数据增强提供足够的多样性,训练分类器学习对无信息变化因素不变的表示。

  以由解耦的潜在空间驱动的生成模型可以成为一种有效的受控数据增强方法。尽管生成对抗网络 (GANs) 在生成新数据样本方面表现出色,但传统的 GAN 架构不支持对潜在变量进行推断,这限制了在数据生成过程中对不同变化因素的控制。DNA-GANs 引入了完全监督的架构来解耦变化因素,然而,即使可能,为每个因素获取标签也是繁琐且耗时的。

  最近的研究将自编码器与对抗训练相结合,以解耦有信息和无信息的变化因素,并将它们映射到不同的潜在变量集合上。有信息的因素通常由感兴趣的任务指定,与可用的监督来源 (如类别身份或姿势) 相关,并被称为指定的变化因素。其余的无信息因素被归为未指定的变化因素。学习这样的模型有两个好处:首先,编码器学习将干扰变量与考虑的任务分离,其次,解码器可以用作生成模型,可以生成具有受控指定和随机未指定变化因素的新样本。

图 1. ss : 指定因子空间 (类标识),zz : 未指定因子空间。 在每个图像网格中 : (a)(b)(c)(d)(e),顶行和第一列的数字来自测试集。每个网格中的数字是通过从顶行获取 ss 和从第一列获取 zz 生成的。(a)(b) : 使用文中的方法解耦变化因素的结果。(c)(d) : 之前工作的非对抗性架构的结果。(e) : 之前工作中的非对抗方法生成一些可行数字所需的 zz 的维度。(f) : 在自编码器中呈现退化解决方案。

  在解耦的潜在表示的背景下,Mathieu 等人将退化解决方案定义为失败案例,在该案例中,解码器完全忽略了指定的潜在变量,并且在图像生成过程中所有信息 (包括图像身份) 都来自未指定的潜在变量 (图 1.(c) 和图 1.(d))。在自编码器中,这种退化是可以预期的,除非潜在空间在相应子空间中以某种方式受到约束,以保留关于指定和未指定因素的信息。之前的工作都通过使用对抗损失来规避这个问题,训练他们的自编码器生成的图像的表征由指定的潜在变量而不是未指定的潜在变量定义。尽管这种策略能够产生高质量的新图像,但它可能训练解码器忽略指定和未指定潜在空间之间的任何信息泄漏,而不是训练编码器限制这种泄漏。

  Szabó 等人还探索了一种非对抗性方法来解耦变化因素。他们证明,严格限制未指定潜在空间的维度会阻止编码器在其中编码与指定变化因素相关的信息。然而,这种架构的结果对未指定空间的维度非常敏感。如图 1.(e) 所示,即使是稍微可行的结果也需要仔细选择维度。

  基于这些观察,本文提出了以下贡献 :

  • 文中引入了循环一致变分自编码器,一种弱监督的生成模型,仅使用成对相似性标签来解耦指定和未指定的变化因素。
  • 本文通过实验证明,作者提出的架构避免了退化情况,并且对于指定和未指定潜在子空间的维度选择具有鲁棒性。
  • 作者声称并经验性地验证,循环一致的 VAE 通过明确训练编码器减少指定因素泄漏到未指定子空间中,产生高度解耦的潜在表示。

  之前的循环一致性既没有应用于解耦变化因素的问题,也没有与变分自编码器结合使用。本文的剩余部分组织如下 : 第 2 节讨论了与本文相关的先前工作,第 3 节详细介绍了文中提出的架构,第 4 节通过定量和定性实验证明架构的有效性,第 5 节通过总结本文的工作。

2 相关工作

图 2. 为了方便理解,在此给出可变自动编码器 (Variational Auto-Encoders) 的结构图。

可变自动编码器 (Variational Auto-Encoders, VAE) Kingma 等人提出了一种基于自编码器的潜在因子模型的变分推断方法。设 X={xi}i=1NX=\left\{x_i\right\}_{i=1}^N 是包含 NN 个独立同分布样本的数据集,每个样本与从某个先验分布 p(z)p(z) 中抽取的连续潜在变量 ziz_i 相关联,通常具有简单的参数形式。近似后验由编码器参数化,而似然项 qϕ(zx)q_\phi(z \mid x) 由解码器参数化。这种架构被广泛称为变分自编码器 (VAEs),优化以下变分下界 :

L(θ,ϕ;x)=Eqϕ(zx)[logpθ(xz)]KL(qϕ(zx)p(z))\begin{align} \mathcal{L}(\theta, \phi ; x)=\mathbb{E}_{q_\phi(z \mid x)}\left[\log p_\theta(x \mid z)\right]-\operatorname{KL}\left(q_\phi(z \mid x) \| p(z)\right) \end{align}

  右式的第一项是数据似然的期望值,而第二项是 KL 散度,作为编码器的正则化项,用于使近似后验与潜在变量的先验分布对齐。通过使用巧妙的线性变换重新参数化,作者实现了使用反向传播进行端到端训练的 VAE。在测试时,可以通过从先验分布 p(z)p(z) 进行采样,然后通过解码器进行前向传递,将 VAE 用作生成模型。文中的架构使用 VAE 框架来建模未指定的潜在子空间。

生成对抗性网络 (Generative Adversarial Networks, GAN) GAN 已被证明可以对复杂的高维数据分布进行建模,并从中生成新样本。它们由两个神经网络组成,一个生成器和一个判别器,它们在最小最大博弈的设置中一起进行训练,通过优化公式 (2) 中的损失函数。判别器输出给定样本属于真实数据分布的概率,而不是生成器生成的样本。生成器试图将潜在空间中来自简单参数化先验分布的随机样本映射到真实分布的样本。当判别器对所有生成的样本输出为 12\frac{1}{2} 时,生成器被认为训练成功。DCGAN 使用卷积神经网络来复制复杂的图像分布,并且是对抗性训练成功的一个很好的例子。

minGmaxDV(D,G)=Expdata (x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]\begin{align} \min _G \max _D V(D, G)=\mathbb{E}_{x \sim p_{\text {data }}(x)}[\log D(x)]+\mathbb{E}_{z \sim p_z(z)}[\log (1-D(G(z)))] \end{align}

  尽管 GAN 在成功训练时能够生成高质量的样本,但它们需要精心设计的技巧来稳定训练并避免出现模式坍缩等问题。文中提出的方法中没有使用对抗性训练,然而,Mathieu 等人和 Szabó 等人最近的研究表明对抗性训练在解耦潜在因素方面具有有趣的应用。

循环一致性 (Cycle-Consistency) 循环一致性已被用于使神经机器翻译系统能够通过闭环的机器翻译学习未标记数据。Zhou 等人使用循环一致性在描绘同一类别对象的图像对之间建立跨实例的对应关系。循环一致性架构在深度估计、无配对图像到图像的转换和无监督域自适应等方面也有应用。文中利用循环一致性的思想在未指定的潜在空间中,并明确训练编码器以减少与指定变化因素相关的信息泄漏。

解耦变异因素 (Disentangling Factors of Variation) 最初的研究利用 EM 框架来发现描述观察数据的独立变化因素。Tenenbaum 等人通过学习双线性映射将风格和内容参数映射到图像中。近期的研究使用受限玻尔兹曼机将图像的变化因素分别映射出来。Kulkarni 等人通过提出一个网络,将视觉建模为反向图形问题,解耦了变换和光照的变化。在之前的一些工作中,通过消除给定任务中的干扰变量,学习出了不变的表示。

  Tran 等人利用身份和姿势标签,通过使用修改后的 GAN 架构来解耦面部身份和姿势之间的联系。SD-GANs 在 DC-GANs 和 BE-GANs 的基础上引入了暹罗网络结构,能够同时生成具有相同身份但不同未指定变化因素的图像对。然而,与原始的 GAN 一样,它们缺乏对潜在变量的推理方法。Reed 等人开发了一种用于视觉类比制作的新型架构,根据示例图像对之间的关系,对查询图像进行变换。

  DNA-GANs 提出了一种完全监督的方法来学习解耦的表示。对抗自编码器采用半监督方法来解耦风格和类别表示,然而,与之前工作和文中的方法不同,它们无法推广到未见过的物体身份。Hu 等人提出了一种有趣的方法,将自编码器与对抗性训练相结合,以完全无监督的方式解耦变化因素。然而,与之前的工作相比,解耦的质量仍然有所不足。文中的工作基于 Mathieu 等人和 Szabó 等人引入的网络架构。它们都将自编码器与对抗性训练相结合,根据单一的监督来源 (如类别标签),解耦指定和未指定的变化因素。

  文中的工作与这两种方法不同,它引入了一种非对抗性方法,在更弱的监督来源下使用仅有成对相似性标签来解耦变化因素。最近,Multi-Level VAE 还提出了另一种基于群组级监督的非对抗性方法来解耦表示。然而,他们的架构并没有明确训练编码器,因此在随机选择潜在维度时容易出现退化问题。

3 Cycle-Consistent Variational Auto-Encoders

3.1 循环一致性

  循环一致性框架的直觉很简单-以任意顺序组合正向和逆向转换应该近似于一个恒等函数。对于正向循环,这意味着先进行正向转换 F(xi)F\left(x_i\right),然后进行逆向转换 G(F(xi))=xiG\left(F\left(x_i\right)\right)=x_i^{\prime},使得 xixix_i^{\prime} \simeq x_i

图 2. (a) : 循环一致性框架中的正向循环 : xiF(xi)G(F(xi))xix_i \rightarrow F\left(x_i\right) \rightarrow G\left(F\left(x_i\right)\right) \rightarrow x_i',(b) : 循环一致性框架中的逆向循环 : yiG(yi)F(G(yi))yiy_i \rightarrow G\left(y_i\right) \rightarrow F\left(G\left(y_i\right)\right) \rightarrow y_i^{\prime}

  逆向循环应确保逆向转换后跟正向转换得到 F(G(yi))=yiyiF\left(G\left(y_i\right)\right)=y_i^{\prime} \simeq y_i。映射函数 F()F(\cdot)G()G(\cdot) 可以使用神经网络实现,通过最小化基于等式 (3) 中定义的 p\ell_p 范数循环损失进行训练。

  循环一致性自然地适用于 (变分) 自编码器训练框架,其中 KL 散度正则化的重构构成了正向的损失。文中还使用逆向循环一致性损失来训练编码器以更好地解耦变量。与此类损失函数的典型情况一样,文中通过交替应用正向和逆向损失来训练文中的模型。

Lcyclic =Lforward +Lreverse Lcyclic =Exp(x)[G(F(x))xp]+Eyp(y)[F(G(y))yp](3)\begin{gathered} \mathcal{L}_{\text {cyclic }}=\mathcal{L}_{\text {forward }}+\mathcal{L}_{\text {reverse }} \\ \mathcal{L}_{\text {cyclic }}=\mathbb{E}_{x \sim p(x)}\left[\|G(F(x))-x\|_p\right]+\mathbb{E}_{y \sim p(y)}\left[\|F(G(y))-y\|_p\right]\tag{3} \end{gathered}

3.2 模型说明

  文中提出了基于条件变分自编码器的模型,其中潜空间被划分为两个互补的子空间 : ss 用于控制与数据集中的可用监督相关的指定变化因素,而 zz 用于建模剩余的未指定变化因素。与 Mathieu 等人 [1] 的工作类似,文中将 ss 保持为实值向量空间,假设 zz 具有标准正态先验分布 p(z)=N(0,I)p(z)=\mathcal{N}(0, I)。这样的架构在指定子空间中实现了显式控制,同时允许从未指定子空间中进行随机采样。文中假设 zzss 之间是边际独立的,这意味着与这两个潜在子空间相关的变化因素完全解耦。

编码器 编码器可以写成一个映射 Enc(x)=(fz(x),fs(x))\operatorname{Enc}(x)=\left(f_z(x), f_s(x)\right),其中 fz(x)=(μ,σ)=zf_z(x)=(\mu, \sigma)=zfs(x)=sf_s(x)=s。函数 fs(x)f_s(x) 是一个具有实值向量潜空间的标准编码器,而 fz(x)f_z(x) 是一个编码器,其向量输出参数化了近似后验分布 qϕ(zx)q_\phi(z \mid x)。由于从 xx 提取的相同特征被用于创建到 zzss 的映射,文中定义了一个共享权重的单个编码器,除了最后一层之外的所有层都是共享的,最后一层分支出来给出这两个函数 fz(x)f_z(x)fs(x)f_s(x) 的输出。

解码器 在这个变分自编码器中,解码器 x=Dec(z,s)x^{\prime}=\operatorname{Dec}(z, s) 由条件似然函数 pθ(xz,s)p_\theta(x \mid z, s) 表示。最大化对于近似后验和 ss 的这个似然函数的期望等价于最小化平方重构误差。

图 3. 利用变分自编码器 (VAEs) 通过在来自同一类别的两个图像之间交换 ss 潜在变量来进行图像重构。这个过程适用于成对的相似性标签,因为我们不需要知道采样的图像对的实际类别标签。

正向循环 从数据集中随机选择一对具有相同类别标签的图像 x1x_1x2x_2。将它们都通过编码器进行处理,生成相应的潜在表示 Enc(x1)=(z1,s1)\operatorname{Enc}\left(x_1\right)=\left(z_1, s_1\right)Enc(x2)=(z2,s2)\operatorname{Enc}\left(x_2\right)=\left(z_2, s_2\right)。解码器的输入是通过交换两个图像的指定潜在变量构建而成。这产生以下重构结果 : x1=Dec(z1,s2)x_1^{\prime}=\operatorname{Dec}\left(z_1, s_2\right)x2=Dec(z2,s1)x_2^{\prime}=\operatorname{Dec}\left(z_2, s_1\right)。由于这两个图像共享类别标签,交换指定的潜在变量对重构损失函数应该没有影响。可以将解码器的条件似然函数重新表示为 pθ(xz,s)p_\theta\left(x \mid z, s^*\right),其中 s=fs(x)s^*=f_s\left(x^*\right)xx^∗ 是具有与 XX 相同类别标签的任意图像。整个正向循环最小化了等式 4 中给出的修改后的变分上界。图 3 显示了正向循环的图示表示。

minEnc, Dec Lforward =Eqϕ(zx,s)[logpθ(xz,s)]+KL(qϕ(zx,s)p(z))(4)\min _{E n c, \text { Dec }} \mathcal{L}_{\text {forward }}=-\mathbb{E}_{q_\phi\left(z \mid x, s^*\right)}\left[\log p_\theta\left(x \mid z, s^*\right)\right]+\operatorname{KL}\left(q_\phi\left(z \mid x, s^*\right) \| p(z)\right)\tag{4}

  值得注意的是,正向循环在任何给定时间都不需要实际的类别标签。这导致了对一种较弱形式的监督要求,即图像需要用成对的相似性标签进行注释。这与 Mathieu 等人 [1] 的先前工作形成了对比,该工作需要实际的类别标签,以及 Szabó 等人 [2] 的工作,该工作需要图像三元组。

  上述的正向循环类似于之前 Mathieu [1] 和 Szabó [2] 的工作中介绍的自编码器重构损失。如第 1 节所讨论的,仅仅使用正向循环可能会产生退化解 (图 1.(c) 和 (d)),因为没有约束阻止解码器仅利用未指定的潜在变量重构图像。在 Mathieu [1] 和 Szabó [2] 的工作中,对抗性损失函数已成功应用于特别应对退化解。得到的生成模型效果良好,但对抗性训练通常具有挑战性,并且在有效解耦潜在空间方面存在局限性。在下一节中,作者将介绍基于逆向循环一致性的非对抗性方法,以避免学习退化解,并显式地训练编码器防止与指定因素相关的信息泄漏到未指定的子空间中。

3.3 防止退化的解决方案

图 4. 循环一致 VAE 架构的反向循环。从 zz 个潜在空间中采样点,结合来自两个不同来源的指定因子,形成两个不同的图像。但是,如果将两个生成的图像传递给编码器,应该能够在 zz 空间中获得相同的采样点。

逆向循环 如图 4 所示的逆向循环基于未指定潜在空间中的循环一致性思想。作者从未指定潜在空间的高斯先验分布 p(z)=N(0,I)p(z)=\mathcal{N}(0, I) 中采样一个点 ziz_i,并将其与指定的潜在变量 s1=fs(x1)s_1=f_s\left(x_1\right)s2=fs(x2)s_2=f_s\left(x_2\right) 一起传递给解码器,分别获得重构结果 x1=Dec(zi,s1)x_1^{\prime \prime}=\operatorname{Dec}\left(z_i, s_1\right)x2=Dec(zi,s2)x_2^{\prime \prime}=\operatorname{Dec}\left(z_i, s_2\right)。与正向循环不同,x1x_1x2x_2 不需要具有相同的标签,并且可以独立采样。由于 x1x_1^{\prime \prime}x2x_2^{\prime \prime} 都是使用相同的 ziz_i 生成的,它们对应的未指定潜在嵌入 z1=fz(x1)z_1^{\prime \prime}=f_z\left(x_1^{\prime \prime}\right)z2=fz(x2)z_2^{\prime \prime}=f_z\left(x_2^{\prime \prime}\right) 应该彼此接近,而不考虑它们的指定因素。这样的约束促使 zzss 的边际独立性,因为使用不同的指定因素生成的图像有可能被映射到未指定潜在子空间中的同一点上。这一步直接驱使编码器在 zz 潜在空间中仅保留与未指定因素相关的信息,从而产生解耦的表示。

  方程 (4) 中的变分损失函数使得可以对未指定的潜在变量进行采样,并有助于生成新颖的图像。然而,编码器并不一定学习从图像空间到未指定潜在空间的唯一映射关系。换句话说,具有相似的未指定因素的样本很可能被映射到显著不同的未指定潜在变量上。这一观察结果激发了作者在方程 (5) 中提出的成对逆向循环损失函数,如果未指定的潜在嵌入 z1z_1^{\prime \prime}z2z_2^{\prime \prime} 之间的成对距离很大,则对编码器进行惩罚,但如果它们离最初采样的点 ziz_i 更远,则不进行惩罚。这种修改与先前工作中循环一致性的典型用法形成对比。作者发现,在损失值和解耦程度方面,最小化方程 (5) 中的成对逆向循环损失要比其绝对值对应项 (ziz1+ziz2)\left(\left\|z_i-z_1^{\prime \prime}\right\|+\left\|z_i-z_2^{\prime \prime}\right\|\right) 更容易。

minEncLreverse =Ex1,x2p(x),ziN(0,I)[fz(Dec(zi,fs(x1)))fz(Dec(zi,fs(x2)))1]\begin{aligned} \min _{E n c} \mathcal{L}_{\text {reverse }}=\mathbb{E}_{x_1, x_2 \sim p(x), z_i \sim \mathcal{N}(0, I)}[ & \| f_z\left(\operatorname{Dec}\left(z_i, f_s\left(x_1\right)\right)\right) \\ & \left.-f_z\left(\operatorname{Dec}\left(z_i, f_s\left(x_2\right)\right)\right) \|_1\right] \end{aligned}

4 实验

  略

文献引用和参考