昨天,著名人工智能研究组织 OpenAI 发布了其最新工作:《Glow: 更好的可逆生成模型》(《Glow :Better Reversible Generative Models》)。
据文章介绍,Glow 是一个可逆的生成模型,它使用了可逆的 1×1 卷积。它基于以前关于可逆生成模型的研究,并简化了体系结构。该模型能够生成逼真的高分辨率图像,支持有效的采样,并能发现可用于数据处理的特征。研究人员公开了模型代码和一个在线可视化工具,以便人们能够使用这个模型并继续开展研究。
生成模型是基于观察数据,然后学习出如何生成这些数据的模型。学习数据生成过程需要学习数据中存在的结构,成功的模型应该能够生成与数据相似的输出。精确生成模型具有广泛的应用,包括语音合成、文本分析与合成、半监督学习和基于模型的控制。研究人员提出的技术也可以应用于这些问题。
Glow 是一种可逆的生成模型,也称为基于流的生成模型,是 NICE 和 RealNVP 技术的延伸。相比于 GAN 和 VAES,基于流的生成模型在研究领域中关注较少。
而基于流的生成模型的优点包括:
图丨 Glow 对两名研究人员脸部图像的属性操作。训练过程中,模型没有提供眼睛、年龄等属性标签等情况下,自己学习潜在空间,部分特定方向对应胡须密度,年龄,头发颜色等属性的变化。
结果
RealNVP 是以前基于流的生成模型最好的结果,研究人员的方法与 RealNVP 相比取得了显著的改进。
对于 RealNVP 模型和 Glow 模型,在不同数据集的测试集上进行了量化性能评估。
Glow 模型可以高效生成逼真的高分辨率图像。这个模型在 NVIDIA 1080 Ti GPU 上产生一个 256×256 的样品需要 130 毫秒。
潜空间内插
研究人员还可以在任意人脸之间进行插值,使用编码器对两幅图像进行编码,并从中间点进行采样。请注意,输入是任意的人脸,而不是来自模型的样本,从而证明了模型支持整个目标分布。
潜空间操作
研究人员可以在没有标签的情况下训练一个基于流的模型,然后将学习到的模型用于后续任务,比如处理输入的属性。这些语义属性可以是面部或头发的颜色、图像的风格、声音的音高,或者文本句子的情感。由于基于流的模型有一个非常好的编码器,因此可以对输入进行编码,并计算有和不带属性的输入的平均潜在向量。然后,可以使用两者之间的向量方向来操作对该属性的任意输入。
贡献
研究人员的主要贡献同时也是与 RealNVP 模型的不同之处在于增加了一个可逆的 1x1 卷积,以及删除了一些组件,从而简化了整个体系结构。
RealNVP 体系结构由两种类型的层组成:具有棋盘掩码的层和具有通道掩码的层。研究人员移除了棋盘掩码的层,简化了体系结构。具有通道掩码的层重复执行以下步骤可以等效:
通过连接这些层,A 更新 B,B 更新 A,然后 A 更新 B。这种信息的双向流动显然是相当僵化的。研究人员发现,通过将步骤 (1) 的反向排列改变为随机全排列,模型的性能得到了改善。
更进一步,研究人员还可以学习最优排列。学习置换矩阵是一种离散优化,不能适用到梯度上升。但由于置换操作只是具有平方矩阵的线性变换的特例,所以可以用卷积神经网络来实现,因为置换通道等价于输入和输出通道数相等的 1x1 卷积运算。因此,研究人员用学习的 1x1 卷积运算代替固定置换。将 1x1 卷积的权值初始化为随机旋转矩阵。此操作带来了显著的模型改进。研究人员还证明了通过对权值进行 LU 分解,可以有效地完成目标函数优化所涉及的计算。
另外,研究者还删除了批归一化,并将其替换为激活归一化层。这一层只是简单地转移和缩放激活函数,给定数据的初始 minibatch,该层具备依靠数据的初始化技术可对激活函数进行归一化操作。这允许将 minibatch 的大小缩小到 1(对于大型图像),并扩大模型的大小。
规模
研究人员的体系结构结合了各种优化,例如梯度检查点,使其能够更大的规模地训练基于流的生成模型。研究人员使用 Horovod 在集群上轻松地训练研究人员的模型;研究人员演示中使用的模型在 5 台机器上进行了训练,每台机器有 8 个 GPU。使用这个配置,研究人员可以训练超过一亿个参数的模型。
研究方向
研究人员的工作表明,可以训练基于流的模型来生成逼真的高分辨率图像,并可以很容易地学习到隐藏表征。研究人员为今后的工作提出了几个方向: