OpenAI提出能合成高清逼真图像的模型:“我们和GAN不一样!”

2018 年 7 月 10 日 论智
来源:OpenAI
编译:Bing

编者按:风格迁移变装模型这些改变图像属性的任务之前都是GAN的热门话题。现在,OpenAI的研究者们提出了一种新的生成模型,能快速输出高清、真实的图像。以下是论智对OpenAI博客的编译。

这篇文章介绍了我们的新成果——Glow,这是一个可逆的生成模型,其中使用了可反复的1×1卷积网络。2015年,我们曾推出过NICE,它是一种针对复杂高维进行建模的深度学习框架。在可逆模型的基础上,研究人员简化了NICE的网络结构,使模型能生成更加真实的高分辨率图像,并支持高效的采样,能发现可以用来控制数据属性的特征。下面让我们看看这个模型到底怎么玩:

这是年轻貌美的瑟曦。

黑化之后:

沧桑的瑟曦:

除此之外,你还能改变人物头发的颜色、眼睛大小和胡子。接下来,还有另一种玩法,即混合两张图:

碧昂斯和小李子Mix一下,长这样。

这是Glow模型的一个交互式Demo,感兴趣的读者可以移步官网体验试试,支持上传自己的照片调整脸部属性和合成两张图片。

动机

以上是研究者Prafulla Dhariwal和Durk Kingma的面部表情特征变化图。模型在训练时并没有被给予属性标签,但是它学会了一种隐藏空间,在其中特定的方向对应不同特征的变化,例如胡子的茂密程度、年龄、发色等等

生成模型与数据的观察有关,就像面对许多人脸图片,从中学习一种模型,了解数据是如何生成的。学习估计数据生成的过程需要学习数据中所有的结构,并且成功的模型可以合成和数据很相似的输出结果。精确的生成模型可应用的场景非常广泛,例如语音识别、文本分析合成、半监督学习和基于模型的控制。

Glow是一种可逆的生成模型,也可以称作“流式”生成模型,是NICE和RealNVP技术的扩展。目前,流式生成模型的关注度并不如GAN和VAE。

流式生成模型的几个优点有:

  • 确切的隐藏变量推断和对数相似度评估。在VAE中,模型智能大致推断与数据点相对应的隐藏变量的值,而GAN根本就没有能推测隐藏变量的编码器。但是在可逆生成模型中,这一过程能精确地推算出来。这不但能输出一个精确的结果,还能对数据的对数相似度进行优化,而不是之前对数据的下限值优化。

  • 高效的推理和合成。自回归的模型,例如PixelCNN同样是可逆的,但是这种模型的合成结果很难平行化,通常在平行硬件上很低效。而类似Glow的流式生成模型不论在推理还是合成方面都很高效。

  • 为下游任务提供了有用的隐藏空间。自回归模型的隐藏层有着位置的边缘分布,使其更难对数据进行正确操作。在GAN中,数据点经常不能直接表现在隐藏空间中,因为它们没有编码器,可能无法支持数据分布。在可逆生成模型和VAE上就没有这种情况。

  • 对节省内存有重大意义。可逆神经网络的计算梯度应该是恒定的内存量,而不是线性的。

结果

利用这种技术,我们在标准上比较了RealNVP和我们的Glow,RealNVP是在这之前表现最佳的流式生成模型。结果如下:

在含有30000张照片的数据集上训练之后,模型生成的样本

Glow模型能生成非常逼真的高分辨率图像,并且非常高效。模型在NVIDIA 1080 Ti GPU上只用130毫秒(0.13秒)就生成了一张256×256的照片。

在隐藏空间插值

我们还可以在两个随机面孔之间进行插值,利用编码器在两个图片之间进行编码,并从中间点中取样。注意,输入的是随机面孔,并不是模型中的样本,所以这也证明了模型可以支持完全的目标分布。

变脸过程十分流畅

在隐藏空间中处理


无需标签,我们就可以训练一个流式模型,然后利用学习到的隐藏表示进行下游任务。这些语义分布可以改变头发的颜色、图片风格、音调高低或者文本情感。由于流式模型拥有完美的编码器,你可以编码输入并且计算输入的平均隐藏向量。二者间向量的方向可以用来将输入向该方向改变。

这一过程只需要少量的标记数据,并且模型一训练完就能完成。在此之前,用GAN做这些需要训练一个单独的编码器,而VAE需要保证解码器和编码器适用于分布数据。其他类似CycleGAN直接学习表示变化的函数,也需要重新训练每一个变化。

  
  
    
  1. # Train flow model on large, unlabelled dataset X

  2. m = train(X_unlabelled)

  3. # Split labelled dataset based on attribute, say blonde hair

  4. X_positive, X_negative = split(X_labelled)

  5. # Obtain average encodings of positive and negative inputs

  6. z_positive = average([m.encode(x) for x in X_positive])

  7. z_negative = average([m.encode(x) for x in X_negative])

  8. # Get manipulation vector by taking difference

  9. z_manipulate = z_positive - z_negative

  10. # Manipulate new x_input along z_manipulate, by a scalar alpha \in [-1,1]

  11. z_input = m.encode(x_input)

  12. x_manipulated = m.decode(z_input + alpha * z_manipulate)

用流式模型改变属性的简单代码


进步之处

相比之前的RealNVP,我们的进步之处主要是一个可逆的1×1卷积,以及删减掉其他元素,简化了模型。

RealNVP架构由两种图层组成:具有棋盘蒙版的图层和通道蒙版的图层。我们去除了棋盘样的图层,简化了结构。剩下的通道类型的蒙版起到以下作用:

  • 在通道维度中改变输入的顺序

  • 将输入分成A和B两部分,从特征维度的中部开始

  • 将A输入到一个较浅的卷积神经网络。根据神经网络的输出线性地对B进行转换

  • 连接A和B

可以看到我们的1×1卷积在性能上有大大的提升

除此之外,我们取消了批归一化,将它替换成激活归一图层。该图层利用基于数据的初始化,简单地转换并缩放激活,该初始化在给定初始小批量数据的情况下将激活规范化。

训练规模

我们的结构结合了多种优化,例如梯度检查点,可以让我们在较大规模上训练流式生成模型。我们使用Horovod轻松地将模型在多个机器上进行了训练;文章开头的Demo用了8个GPU。

未来方向

这篇研究表明,训练流式模型生成真实的高清图像是很有潜力的,并且经过学习的隐藏表示可以很容易用于下流任务。我们对未来工作的方向有以下计划:

1.在可能性上比其他模型更有竞争力

在对数相似度上,自适应模型和VAE的表现比流式模型要好,但是他们在采样和精确推理上不如流式模型。未来我们会尝试结合这几种模型,以弥补不足。

2.改进结构,提高计算和参数效率

为了生成逼真的高分辨率图像,人脸生成模型利用大约200M的参数和将近600个卷积层,训练起来成本很高。但是更浅的网络表现得又不好。使用自注意力结构或者进行渐进式训练可能会让训练成本更便宜。

最后欲知更多细节,请查看原论文:d4mucfpksywv.cloudfront.net/research-covers/glow/paper/glow.pdf

原文地址:blog.openai.com/glow/

登录查看更多
0

相关内容

在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。条件概率分布可以由生成模型根据贝叶斯定理形成。
【KDD2020-清华大学】图对比编码的图神经网络预训练
专知会员服务
46+阅读 · 2020年6月18日
【CVPR2020】MSG-GAN:用于稳定图像合成的多尺度梯度GAN
专知会员服务
29+阅读 · 2020年4月6日
自回归模型:PixelCNN
专知会员服务
27+阅读 · 2020年3月21日
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
33+阅读 · 2020年1月10日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
36+阅读 · 2019年12月15日
GAN 为什么需要如此多的噪声?
AI科技评论
14+阅读 · 2020年3月17日
能生成逼真图像的不只有 GAN
机器学习算法与Python学习
8+阅读 · 2019年6月6日
以为GAN只能“炮制假图”?它还有这7种另类用途
GAN生成式对抗网络
9+阅读 · 2018年10月23日
CMU论文解读:基于GAN和VAE的跨模态图像生成
PaperWeekly
9+阅读 · 2018年8月20日
基于GAN的极限图像压缩框架
论智
11+阅读 · 2018年4月15日
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
Arxiv
4+阅读 · 2018年9月25日
Arxiv
5+阅读 · 2018年5月21日
Arxiv
4+阅读 · 2018年4月17日
Arxiv
11+阅读 · 2018年3月23日
Arxiv
7+阅读 · 2018年3月12日
Arxiv
12+阅读 · 2018年1月12日
VIP会员
相关资讯
GAN 为什么需要如此多的噪声?
AI科技评论
14+阅读 · 2020年3月17日
能生成逼真图像的不只有 GAN
机器学习算法与Python学习
8+阅读 · 2019年6月6日
以为GAN只能“炮制假图”?它还有这7种另类用途
GAN生成式对抗网络
9+阅读 · 2018年10月23日
CMU论文解读:基于GAN和VAE的跨模态图像生成
PaperWeekly
9+阅读 · 2018年8月20日
基于GAN的极限图像压缩框架
论智
11+阅读 · 2018年4月15日
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
相关论文
Arxiv
4+阅读 · 2018年9月25日
Arxiv
5+阅读 · 2018年5月21日
Arxiv
4+阅读 · 2018年4月17日
Arxiv
11+阅读 · 2018年3月23日
Arxiv
7+阅读 · 2018年3月12日
Arxiv
12+阅读 · 2018年1月12日
Top
微信扫码咨询专知VIP会员