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,并采用梯度检查点技术来管理内存。
团队确定的未来研究方向包括:
- 似然度竞争力: 将基于流的模型与 VAE 和自回归模型相结合,以匹配它们的对数似然性能,同时保持高效采样。
- 计算效率: 探索自注意力架构或渐进式训练,以降低当前高分辨率图像所需的深度(约 600 层卷积)和参数量(约 200M)。
SUMMARY: OpenAI 引入 Glow,这是一种基于流的生成模型,使用可逆 1x1 卷积生成高分辨率图像,具备精确的潜在变量推断和高效采样能力。
TITLE: Glow: 更好的可逆生成模型