生成对抗网络(GAN)现在已经能合成极具真实感的图像了,但 MIT、IBM 和香港中文大学的一项研究表明 GAN 在合成图像时会遗漏目标分布中的一些细节。未来的 GAN 设计者如果能够充分考虑这种遗漏情况,应该能够打造出更加高质量的图像生成器。研究者已经公布了相关论文、代码和数据。
选自 arXiv,作者:David Bau, Jun-Yan Zhu等,机器之心编译,参与:Panda W。
生成对抗网络(GAN)在合成逼真的图像方面能力出色,但我们不禁要问:怎样才能知道 GAN 无法生成的东西呢?模式丢失或模式崩塌被视为 GAN 所面临的最大难题之一,此时 GAN 会忽视目标分布中的某些部分,然而对于 GAN 中的这一现象,当前的分析工具所能提供的见解非常少。
首先,作者部署了一个语义分割网络,以比较生成的图像与训练集的目标分布中经过分割的目标的分布。统计数据的差异能够揭示 GAN 忽视的目标类别。
然后,给定识别出的省略过的目标类别,作者对 GAN 的遗漏情况直接进行了可视化。具体来说,作者比较了各张照片与 GAN 逆推出的相近图像之间的具体差异。为了做到这一点,作者放宽了逆推问题的限制,并且求解的是易于解决的逆推 GAN 一个层(而非整个生成器)的问题。
方法
量化分布层面的模式崩塌
因为大多数类别都不会出现在大多数图像上,所以作者按降序对类别进行了分类,然后重点关注了其中最常见的类别。这种比较可以揭示很多当前最佳模型之间的许多具体差异。分析使用的两个模型都是在同一图像分布(LSUN 卧室集)上训练的,但 WGAN-GP 与真实分布的差距比 StyleGAN 与真实分布的差距要大得多。
其中,µ_t 是一个训练图像样本上每个目标类别的平均像素数,Σ_t 是这些像素数量的协方差。类似地,µ_g 和 Σ_g 反映了生成模型的分割统计情况。作者在实验中比较了 10000 个生成样本和 10000 张自然图像的统计情况。
量化实例层面的模式崩塌
-
定义一个可解决的逆推问题
任何可由 G 生成的图像都可由 G_f 生成。也就是说,如果用 range(G) 表示可由 G 输出的所有图像的集合,那么有 range(G) ⊂ range(G_f )。也就是说,G 无法生成任何 G_f 不能生成的图像。因此,在 range(G_f ) 中可以确定的任何遗漏情况也都是 range(G) 遗漏的地方。
因此,对于层逆推而言,作者通过更简单地逆推 G_f 的后期层实现了对遗漏情况的可视化:
作者表示,尽管最终要找的是中间表征 r,但从估计的 z 开始能提供很多帮助:对 z 有个初始估计能有助于对更好的 r 值的搜索,这些值更有可能由 z 生成。因此,求解这个逆推问题的过程分为两步:首先,构建一个近似逆推整个 G 的神经网络 E,并计算一个估计结果 z_0 = E(x)。之后,求解一个优化问题,以确定一个中间表征
,其可生成一个重建的图像
,以非常相近地恢复 x。图 3 展示了这种层逆推方法。
图 3:层逆推方法概况。首先,训练一个逆转 G 的网络 E;这可用于获取对隐含的 z_0 = E(x) 的初始估计及其中间表征
。然后将 r_0 用于初始化对 r* 的搜索,以得到接近目标 x 的重建 x'。
-
逐层网络逆推