☟ 图像生成在 GAN 和 VAE 诞生后得到了很快的发展,现在围绕 GAN 的论文十分火热。在计算机视觉顶会 CVPR 2018 上甚至有 8% 的论文标题中包含 GAN! 生成模型只能受限于 GAN 和 VAE 吗?近日著名人工智能研究组织OpenAI另辟蹊径,发布了其最新工作成果——Glow,一种基于流的生成模型。 玩法一:用Glow与其他人脸图像融合,毫无违和感啊! 你最想上传谁和谁的照片? 玩法二:用Glow模型控制人脸图像属性 加了胡子的Hinton,笑容调到最高,看起来更加硬朗! Glow的作者在此之前已经基于流的生成模型提出过NICE [1] 和 RealNVP [2],Glow 是在这两个模型基础上加入可逆 1 x 1 卷积进行的扩展。 Glow可以使用相对较少的数据,快速生成高清的逼真图像,具有GAN和VAE所不具备的精确操作潜在变量、需要内存少等优势。 Glow支持高效采样,并且可以自动学习图像中的属性特征,比如人的五官。 下图是使用Glow操纵两名研究人员面部图像的属性。模型在训练的时候并没有给出眼睛、年龄等属性标签,但Glow自己学习了一个潜在空间,其中某些方向对应胡须密度,年龄,发色等属性的变化(真是机智啊,可以用来预测自己留胡子好不好看了) 人脸混合过度的效果十分流畅: 下图使用30,000个高分辨率面部数据集进行训练后,Glow模型中的样本可以冒充真人照片了!你能看出下图是否是真人吗? 再放大来看,这个效果至少是不输给GAN的: Glow模型生成一个256 x 256的样本,在NVIDIA1080 Ti GPU上只需要大约130ms。使用 reduced-temperature模型采样结果更好,上面展示的例子是温度0.7的结果。 Glow模型 Glow 的模型框架: Glow实验 实验最初是比较 Glow 和 RealNVP,反转操作上 NICE 采用反转,RealNVP 采用固定随机排列,Glow 采用可逆 1 × 1 卷积,并且耦合方式也影响实验的效果,文章比较了加性耦合层和仿射耦合层的性能差距。通过在 CIFAR-10 数据集的平均负对数似然(每维度的比特)来衡量不同操作的差距,其中所有模型都经过 K = 32 和 L = 3 的训练,实验效果如下图: 可以从上图看出,Glow 采用的方法都取得了较小的平均负对数似然,这说明了在实验上是优于其他几个模型的。 为了验证 RealNVP 和Glow 整体的框架下的差距,实验进一步扩展,比较了CIFAR-10,ImageNet 和 LSUN 数据集上两者的差距,在相同预处理下得到的结果如下: 正如上面表格所显示的,模型在所有数据集上实现了显着的改进。 在高分辨率图像的生成上,Glow 使用了 CelebA-HQ 数据集,数据集包含 3 万张高分辨率的图片。在高分辨率下,多尺度的丰富可能会让得到的潜在变量具有更多的图像细节。试验中采用了退火算法来优化实验,在退火参数 T=0.7 时候,合成的随机样本如下图: 可以看到合成的图像质量和合理性都比价高,为了对潜在变量插值生成图像,实验以两组真实图片为依据,插值中间的过渡,生成的结果如下: 从上图能看出整体的过渡还是相当顺畅的,这也是Glow 在潜在变量精确推断的优势所在,这样的实验结果也是让人惊喜的! 为了生成更多含语义的图像,文章利用了一些标签来监督训练,对于不同人脸属性合成的图像如下: 退火模型对提高生成也是很重要的环节,文章对比了不同退火参数 T 下的实验效果,合理的 T 的选择对于实验效果还是很重要的。 为了说明模型深度(多尺度)的意义,文中对比了 L=4 和 L=6 的效果,可以看出多尺度对于整体模型的意义很大。 训练基于流的生成模型操纵属性的简单代码: 最后再来一波蜜汁变脸,没看够的朋友戳文末视频吧~ 论文链接: https://d4mucfpksywv./research-covers/glow/paper/glow.pdf 项目代码(TensorFlow): https://github.com/openai/glow [1]. NICE: Non-linearindependent components estimation" Laurent Dinh, David Krueger, YoshuaBengio. ArXiv 2014. [2]. Density estimationusing Real NVP. Ding et al, 2016. |
|