论文名称:Unsupervised Discovery of Interpretable Directions in the GAN Latent Space
论文作者:Andrey V oynov, Artem Babenko
发行时间:Submitted on 10 Feb 2020, last revised 18 Feb 2020
论文地址:https://arxiv.org/abs/2002.03754
代码开源:https://github.com/anvoynov/GanLatentDiscovery
一. 概要
本文首次提出使用无监督的方法来研究预先训练好的 GAN
中潜在空间的可解释性。这不同于其他如需要人为标签、预先训练的处理模型或某种形式的自我监督方法,无需花费较昂贵的代价就能有效地发现潜在编码的有效的可解释性移动方向。此外,提出的方法还能发现之前监督方法难以发现的方向:背景的去除。这说明可以用提出的方法来生成大规模的显著性实例检测的数据集,大大节省了人工力。
具体来说作者通过设置两组一定范围内的随机数来分别决定潜在编码的移动方向和移动幅度,然后用训练完毕的 GAN
模型中的生成器来生成原始潜在编码生成的图像和由沿着随机数确定的方向和位移移动了潜码生成的图像,然后通过一个重构组件得到预测的潜码移动方向和移动幅度。这样我们可以对其他图像的潜在编码进行预测到的移动,得到属性的操控。如 图1 所示,由无监督的方法在几个数据集上发现的可解释的方向。可见生成效果还是很不错的。
二. 实现方法
2.1. 方法阐述
如 图2 所示,作者仅仅使用预训练好的 GAN
的生成器 来将潜在编码生成图片(不使用其辨别器), 这个生成器是不可训练的,其参数在作者方法的处理阶段是固定的。同时作者还提出了两个可训练的组件 和 :
-
数组 ,其中 等于 中潜在空间的维度, 等于作者提出的方法试图解决的方向的数量(这取决于网络模型的选择和训练的数据集)。
-
重构器 ,其输入是图像对 ,其中 , 是移动了的潜在编码, 表示轴对齐单位向量 , 是一个标量;输出是一个标量对 ,其中 表示预测的方向的索引, 表示预测的移动幅度。 的目标是: 让潜码 往 的第 行决定的方向上移动 实现了图像转换,然后 试图重现这种在潜在空间上的偏移。
作者选择的优化目标的表达式如下:
上式中分别使用到了分类项 交叉熵损失和回归项 平均绝对误差。这里的 取值为 。
- 对于分类项,作者希望通过该损失使得该方向更容易和其他方向区分开来,换句话说该特征的解耦性可以更强。
- 对于回归项,这可以使得潜在编码沿着某方向移动产生的图像具有连续性,不会突变。
2.2. 实现细节
作者在几个不同类别的数据集下(手写数据集MNIST、动漫人脸数据集AnimeFaces、真实人脸数据集CelebA-HQ和自然景观数据集ImageNet)进行了本文方法的实验。
2.2.1. 重构器 架构
对于重构模型 :
- 对于
MNIST
和AnimeFaces
数据集,使用LeNet
骨干网络 - 对于
ImageNet
和CelebA-HQ
数据集,使用ResNet-18
作为骨干网络
在所有实验中,除能 MNIST
的输入通道为 外,其他数据集的输入通道都为 ,因为输入 的是图像对。作者还往其中加上了两个单独的 heads
分别用于预测方向索引和位移幅度。
2.2.2. 训练数据集的数据分布
由于当 时,由于位移幅度过小,几乎不会对位移后的生成图像造成影响,所以在实验中作者对 的取值做了以下约束:
2.2.3. 的取值
通常 的取值要等於潜在空间的维度(Spectral Norm GAN
维度是 ,BigGAN
维度是,ProgGAN
维度是)。但是由于模型的限制和数据集的限制,需要有一定的取舍,具体取值如下所示:
- 用
Spectral Norm GAN
处理MNIST
数据集时 ,因为若取值为 时模型很难讲较简单的数字图形弄出过多的不同的可解释性方向。 - 用
Spectral Norm GAN
处理AnimeFaces
数据集时 。 - 用
BigGAN
处理ImageNet
数据集时 。 - 用
ProgGAN
处理CelebA-HQ
数据集时 ,因为若取值为 时,作者提出的方法很重构出合理的评价指标值。
2.2.4. 的选择
在实验中作者用到了两种 :
- A is a linear operator with all matrix columns having a unit length:让矩阵的所有列都是单位长度,通过让每列除以其对应长度得到。
- A is a linear operator with orthonormal matrix columns:让矩阵的列都是正交的,即通过斜对称矩阵 ()来参数化 。
在实验中观察到,这两种 的效果都挺好,并且能发现一些相似的可解释性方向。通常更常使用单位向量的列的 ,因为其能发现更多的方向。但在某些数据集中,第二种 能发现一些更有趣的细节。
三. 实验
3.1. 实验配置
3.1.1. 数据集和生成器模型
MNIST
,包含 大小的图像,使用 个残差块的ResNet-like
生成器的Spectral Norm GAN
。AnimeFaces
,包含 大小的图像,使用 个残差块的ResNet-like
生成器的Spectral Norm GAN
。CelebA-HQ
,包含 大小的图像,使用预训练好的ProGAN
生成器 online available。ImageNet
,包含 大小的图像,使用在ILSVRC
数据集上预训练好的BigGAN
生成器 online available。
3.1.2. 优化器
全部使用 Adam
优化器,固定学习率 ,除了 ProGAN
使用梯度回传训练了 次外,其他都是 次。在 MNIST
上的 batch=128
,在 AnimeFaces
上的 batch=128
,在 CelebA-HQ
上的 batch=10
,在 ImageNet
上的 batch=32
。
3.1.3. 评估参数
- RCA越高,该方向表示的特征和其他特征的解耦度越低,区分性更高。
- DVN越高,该方向决定的特征的可解释性越强。
3.1.3.1. RCA
RCA,Reconstructor Classification Accuracy,重构分类准确率。作为重构模型中的分类头,其处理的是一个多分类问题。因此,RCA越高,该方向表示的特征和其他特征的解耦度越低,区分性更高。此外,RCA的计算上还能将我们方法和随机得到的方法(A:Random Matrix)或沿座标轴移动的方法(A:Identity Matrix)进行结果比对。
3.1.3.2. DVN
DVN,Direction Variation Naturalness,方向变化的自然度。表示在潜空间中让隐编码沿着特定方向变化其生成的图像的自然性。按照常识,自然性应该是沿着某个方向移动生成的图像和真实图像之间的变化因子应该是相同的,于是,作者通过使用如下方法达到自然性的计算:
- 将我们重构模型 得到的方向和位移组成的方向向量记为 ,便可构建一个适用于二分类任务的伪标签数据集 。
- 使用
LeNet
对该数据集进行训练,得到一个二分类模型 。 - 再利用训练好的 对对应的真实图像集 引入伪标签数据集 。
- 重新让这个二分类模型 在 数据集上重新训练,然后用新的 对 进行测试,得到准确性,即 DVN。
3.2. MNIST
图6是提出方法在 MNIST
上的定性分析,可见图像伴随着潜在编码沿着学习到的方向移动的效果还是很好的。
为了衡量方法的解耦能力,作者设计了如下实验:
- 固定 和 ,从训练次数上分别从 均分成 份取对应步数上的预测方向。即 。
- :做恒等变化
- :最终的预测矩阵
实验结果如 图7 所示,可见,随着训练步数逐渐接近 ,往该方向的移动不再改变数字类型,仅仅改变数字的粗细,充分表明我们将数字类型和数字粗细这俩特征解耦了。
3.3. Anime Faces
就是在这个数据集上发现将 的各列正交可增强方向的多样性。 但不提倡用这个方法到所有数据集上,因为未必都能取得这样的效果(作者对MNIST、CelebA上实验效果没这样好)。实验结果如 图8 所示。
3.4. Real Human Faces
图9 即为实验结果,这些方向为图像的处理提供了有用信息。
3.5. ImageNet
图10 便是提出的方法发现的一些方向。值得一提的是,上图中的 背景模糊 和 背景消除 这俩方向可为构建显著性实例分割任务轻松构建大规模的训练数据集。而这俩方向便是正交列矩阵 的功劳。