Glow: 更好的可逆生成模型

OpenAI 已推出 Glow,这是一种可逆生成模型,利用可逆 1x1 卷积来合成高分辨率图像。该架构简化了之前的基于流的模型,实现了精确的潜在变量推断、高效的并行采样,以及用于数据操作的语义特征发现。

基于流的生成模型的优势

Glow 属于基于流的生成模型类别,相较于生成对抗网络(GAN)和变分自编码器(VAE),它在技术上具有以下优势:

  • 精确推断与似然度: 与提供近似潜在变量推断的 VAE,或完全缺乏编码器的 GAN 不同,可逆模型允许进行精确的潜在变量推断,并优化数据的精确对数似然度。
  • 高效并行性: 虽然自回归模型(如 PixelCNN)是可逆的,但其合成难以并行化。Glow 在推断和合成两方面都易于并行化。
  • 可操作的潜在空间: 可逆模型提供了一个潜在空间,数据点可以直接表示,便于对现有数据点进行插值和有意义的修改。这比 GAN 更加稳健,因为后者可能无法完整覆盖数据分布。
  • 内存效率: 基于 RevNet 的原理,在可逆神经网络中计算梯度所需的内存随深度保持常数,而非线性增长。

技术贡献与架构

Glow 通过简化模型并引入新的可逆操作,对 RealNVP 架构进行了改进。

可逆 1x1 卷积

Glow 的主要贡献是用学习得到的 1x1 卷积操作取代固定的置换。在之前的模型中,通道级掩码依赖刚性的置换来打乱数据。由于通道置换是线性变换的特例,Glow 使用输入输出通道数相同的 1x1 卷积来学习最优置换。这些权重最初被初始化为随机旋转矩阵,并通过 LU 分解高效优化。

架构简化

  • 移除棋盘掩码: Glow 去除了 RealNVP 中使用的棋盘掩码层,以简化整体架构。
  • 激活归一化: 模型用激活归一化层取代批量归一化。该层通过数据依赖的初始化对激活进行平移和缩放,使模型能够在批大小仅为 1 的情况下扩展规模并正常工作,这对于处理大图像是必需的。

性能与结果

Glow 在多个基准测试中相较于 RealNVP 展示了显著的量化改进,衡量指标为每维比特:

数据集 RealNVP Glow
CIFAR-10 3.49 3.55
Imagenet 32x32 4.28 4.09
Imagenet 64x64 3.98 3.81
LSUN (bedroom) 2.72 2.38
LSUN (tower) 2.81 2.46
LSUN (church outdoor) 3.08 2.67

图像合成与潜在空间操作

在包含 30,000 张高分辨率人脸的数据集上进行训练后,Glow 能在 NVIDIA 1080 Ti GPU 上约 130 ms 生成 256 × 256 的样本。研究人员发现,将潜在向量的标准差按 0.7 的温度缩放常能提升样本质量。

由于 Glow 拥有完美的编码器,它可用于无监督属性操作。通过对带有特定属性(例如金发)和不带该属性的图像进行编码,并计算它们平均潜在向量的差异,可得到一个“操作向量”。将该向量加到任意输入图像的潜在表示上,即可在不需要标签的情况下修改该特定属性。

规模与未来研究

为训练参数超过 1 亿的模型,OpenAI 在五台机器(每台配备八块 GPU)的集群上使用 Horovod,并采用梯度检查点技术来管理内存。

团队确定的未来研究方向包括:

  1. 似然度竞争力: 将基于流的模型与 VAE 和自回归模型相结合,以匹配它们的对数似然性能,同时保持高效采样。
  2. 计算效率: 探索自注意力架构或渐进式训练,以降低当前高分辨率图像所需的深度(约 600 层卷积)和参数量(约 200M)。

SUMMARY: OpenAI 引入 Glow,这是一种基于流的生成模型,使用可逆 1x1 卷积生成高分辨率图像,具备精确的潜在变量推断和高效采样能力。

TITLE: Glow: 更好的可逆生成模型

Sources