武广作者

CMU论文解读:基于GAN和VAE的跨模态图像生成

本期推荐的论文笔记来自 PaperWeekly 社区用户 @TwistedW。跨模态的图像生成在模态差异大的情况下是很难实现的,本文将一个模态下编码得到的潜在变量当做条件经过 GAN 映射为另一个模态下的潜在变量,实现了模态间潜在变量之间的相互映射,从而实现了跨模态下的相互生成。

关于作者:武广,合肥工业大学硕士生,研究方向为图像生成。

■ 论文 | Cross Domain Image Generation through Latent Space Exploration with Adversarial Loss

■ 链接 | https://www.paperweekly.site/papers/2223

■ 作者 | Yingjing Lu

跨模态之间转换生成在模态间差异大的时候是相对困难的,将一个模态编码得到的潜在变量作为条件,在 GAN 的训练下映射到另一个模态的潜在变量是本文的核心。虽然这篇论文只是预印版,但是文章的这个跨模态潜在变量相互映射的思想是很有启发性的。

论文引入

人类很容易学会将一个领域的知识转移到另一个领域,人类可以灵活地学习将他们已经在不同领域学到的知识连接在一起,这样在一个领域内的条件下,他们就可以回忆或激活他们从另一个领域学到的知识。

深度生成模型通过将它们映射到潜在空间来编码一个域内的隐式知识是被广泛使用的,可以控制潜在变量通过条件在学习域内生成特定样本。然而,与人类相比,深层生成模型在从一个域到另一个域之间建立新连接方面不够灵活。换句话说,一旦它学会了从一组域条件生成样本,使其用于生成以另一组控制为条件的样本通常很难并且可能需要重新训练模型。 

跨域转换对于建立模态之间的联系是重要的,能够让神经网络更加地智能化,有一些方法提出来解决跨模态的问题。将条件编码映射到无条件训练的 VAE [1],以允许它用用户定义的域有条件地生成样本,并取得了很好的效果。

但是一个限制是那些条件是通过 one-hot 专门定义的。这样做需要特征工程,并且想要对一些隐含的特征进行条件化时效果较差,例如使用来自一个场景的图像作为条件来生成学习域中的相关图像。在 Unsupervised Cross-domain Image Generation [2] 中训练端到端模型,假设这两个域相关性,再循环训练。 

今天要说的这篇论文,在更少的模态假设下实现了跨模态的相互生成。总结一下这篇论文的优势: 

  • 利用 GAN 实现了跨模态的潜在变量之间的相互映射

  • 在较少的假设下实现跨模态的转换

实现方法

我们一起来看一下文章实现的模型框架:

下标为 1 的代表着是模态 1 下的数据变换,相对应的下表为 2 的代表着模态 2 下的数据变换,上标代表着模态下的类别,i 类和 j 类。f 代表着编码器网络,g 代表着解码器网络,G 代表了实现映射的生成器,D 代表了对应的判别器,噪声 ϵ∼N(0,1)。

我们看到上下两路对应的是 VAE 实现框架,也就是上路为模态 1 对应的 VAE1 是一个完整的流程,下路为模态 2 对应的 VAE2 也是一个完整的流程,当训练 VAE1 和 VAE2 到收敛状态时(训练完成),此时的编码器已经可以很好的将模态数据编码到隐藏空间了。

我们分析由模态 1 到模态 2 的变换。模态 1 的第 i 类图像作为输入到模态 1 的编码器从而得到 i 类的潜在变量,将作为条件,ϵ 作为噪声输入到生成器 G1 下从而实现映射到,模态2第j类的图像经过编码得到的潜在空间下,此时由生成器 G1 得到的映射记为

判别器 D2 的目的是为了判别真实模态 2 下 j 类图像编码得到的和生成的是否是匹配,如果不匹配就认为是假,如果匹配了那就说明生成器 G1 成功欺骗了判别器 D2 从而实现相互博弈共同提高。相对应的,由模态 2 也可以向模态 1 映射,这个过程和模态 1 到模态 2 是相似的。

分析了框架的实现方法我们再看一下实现的损失函数上的设计,首先是 VAE 对应的损失优化,这个大家估计也都熟悉了:

ELBO 下参数的定义和原始 VAE 下是相同的,我就不重复描述了,为了达到更好的 VAE 结果,文章还加了一个像素上的重构误差,所以最终 VAE 下的损失函数为:

这里的 C 就是像素上的重构误差,λ1,λ2 为控制的参数,这个损失将实现 VAE 的整体优化。

对于映射上的 GAN 的损失函数设计,文章主要采用匹配的方法博弈,文章匹配有三组。一组是真实匹配 z,z,对应的损失记为;一组是生成上的匹配 z,z′,其中 z′ 为生成的隐藏变量,对应的损失记为;最后一组是噪声对应的匹配 z,ϵ,对应的损失记为。则最终的判别器的损失:

在生成器中文章引入了正则项,当生成器将简单噪声移动到映射分布时,通常会最大化所生成的输出与原始噪声 ϵ 之间的距离。随着这个术语的增加,最小化损失函数以防 G 和 ϵ 太远。综合上述,对于 G 的损失函数可以写为:

经过对上述损失函数优化,系统将达到平衡,此时就可以实现跨模态的相互生成。输入模态 1 下的经过编码得到,经过 GAN 的映射得到送入到模态 2 的解码器下得到输出,从而实现了模态间的转换。

实验

文中主要是在 MNIST 数据集和 SVHN 数据集下进行的实验,MNIST→MNIST 的实现下的模态转换主要是实现 0→5,1→6,2→7,3→8,4→9,其中 0,1,2,3,4 为模态 1 下的数据,5,6,7,8,9 为模态 2 下的数据,得到的生成的实验结果如下:

对于 SVHN 到 MNIST 的转换,由于 SVHN 下没有 0 这个数字,所以转换为 1→6,2→7,3→8,4→9,结果如下:

在定量分析上,文中为生成的数据设计了分类器用来检测生成数据的分类效果,侧面反应生成的质量,同时也做了人体辨别实验:

文中还补充了 MNIST 到 Fashion-MNIST 转换的实验,实验生成上得到了不错的效果:

由于只是预印版,所以一些详细的对比实验没有加进去,不过这种方法的启发意义还是蛮大的。

总结

文章利用 GAN 的思想在 VAE 的基础上,实现了模态间的潜在空间的相互映射,得到映射的空间可以进一步的解码生成对应于另一个模态的数据,从而实现了跨模态的相互生成。这种利用潜在空间的变换实现跨模态生成在很多跨模态之间都可以参考,虽然文章只是预印版但是很具有启发意义。

参考文献

[1]. Jesse Engel, Matthew Hoffman, and Adam Roberts. Latent constraints: Learning to generate conditionally from unconditional generative models. arXiv preprint arXiv:1711.05772, 2017.

[2]. Yaniv Taigman, Adam Polyak, and Lior Wolf. Unsupervised cross-domain image generation. arXiv preprint arXiv:1611.02200, 2016.

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

入门VAEGAN
4
相关数据
重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

推荐文章
暂无评论
暂无评论~