【阅读笔记】Unsupervised Discovery of Interpretable Directions in the GAN Latent Space

论文名称: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 所示,由无监督的方法在几个数据集上发现的可解释的方向。可见生成效果还是很不错的。

image-20200610101417283

二. 实现方法

2.1. 方法阐述

image-20200610101708404

图2 所示,作者仅仅使用预训练好的 GAN 的生成器 G:zIG:z\to I 来将潜在编码生成图片(不使用其辨别器), 这个生成器是不可训练的,其参数在作者方法的处理阶段是固定的。同时作者还提出了两个可训练的组件 AARR

  • 数组 ARd×KA \in \mathbb{R}^{d\times K},其中 dd 等于 GG 中潜在空间的维度,KK 等于作者提出的方法试图解决的方向的数量(这取决于网络模型的选择和训练的数据集)。
    z+A(εek) z+A(\varepsilon e_k)

  • 重构器 RR,其输入是图像对 (G(z),G(z+A(εek))(G(z),G(z+A(\varepsilon e_k)),其中 zN(0,I)z \sim \mathcal{N}(0,I)z+A(εek)z+A(\varepsilon e_k) 是移动了的潜在编码,eke_k 表示轴对齐单位向量 (0,,1k,,0)(0,\cdots,1_k,\cdots,0)ε\varepsilon 是一个标量;输出是一个标量对 (k^,ε^)(\hat{k},\hat{\varepsilon}),其中 k^\hat{k} 表示预测的方向的索引,ε^\hat{\varepsilon} 表示预测的移动幅度。RR 的目标是: 让潜码 zzAA 的第 kk 行决定的方向上移动 ε\varepsilon 实现了图像转换,然后 RR 试图重现这种在潜在空间上的偏移
    R(G(z),G(z+A(εek))=(k^,ε^) R(G(z),G(z+A(\varepsilon e_k))=(\hat{k},\hat{\varepsilon})

作者选择的优化目标的表达式如下:
minA,REz,k,εL(A,R)=minA,REz,k,ε[Lcl(k,k^)+λLr(ε,ε^)] \mathop{\min}\limits_{A,R}\mathop{\mathbb{E}}\limits_{z,k,\varepsilon}\mathcal{L}(A,R)=\mathop{\min}\limits_{A,R}\mathop{\mathbb{E}}\limits_{z,k,\varepsilon}[\mathcal{L}_{cl}(k,\hat{k})+\lambda\mathcal{L}_{r}(\varepsilon,\hat{\varepsilon})]
上式中分别使用到了分类项 Lcl(,)\mathcal{L}_{cl}(\cdot,\cdot) 交叉熵损失回归项 Lr(,)\mathcal{L}_{r}(\cdot,\cdot) 平均绝对误差。这里的 λ\lambda 取值为 0.250.25

  • 对于分类项,作者希望通过该损失使得该方向更容易和其他方向区分开来,换句话说该特征的解耦性可以更强。
  • 对于回归项,这可以使得潜在编码沿着某方向移动产生的图像具有连续性,不会突变。

2.2. 实现细节

作者在几个不同类别的数据集下(手写数据集MNIST、动漫人脸数据集AnimeFaces、真实人脸数据集CelebA-HQ和自然景观数据集ImageNet)进行了本文方法的实验。

2.2.1. 重构器 RR 架构

对于重构模型 RR

  • 对于 MNISTAnimeFaces 数据集,使用 LeNet 骨干网络
  • 对于 ImageNetCelebA-HQ 数据集,使用 ResNet-18 作为骨干网络

在所有实验中,除能 MNIST 的输入通道为 22 外,其他数据集的输入通道都为 66,因为输入 RR 的是图像对。作者还往其中加上了两个单独的 heads 分别用于预测方向索引和位移幅度。

2.2.2. 训练数据集的数据分布

  • zN(0,I)z \in \mathcal{N}(0,I)
  • kU{1,K}k \in \mathcal{U}\left \{ 1,K \right \}
  • εU[6,6]\varepsilon \in \mathcal{U}[-6,6]

由于当 ε0\varepsilon \to 0 时,由于位移幅度过小,几乎不会对位移后的生成图像造成影响,所以在实验中作者对 ε\varepsilon 的取值做了以下约束:
ε=sign(ε)max(ε,0.5) \varepsilon = {\rm sign}(\varepsilon)\cdot \max(|\varepsilon|,0.5)

2.2.3. KK 的取值

通常 KK 的取值要等於潜在空间的维度(Spectral Norm GAN维度是 128128BigGAN维度是120120ProgGAN维度是512512)。但是由于模型的限制和数据集的限制,需要有一定的取舍,具体取值如下所示:

  • Spectral Norm GAN 处理 MNIST 数据集时 K=64K=64,因为若取值为 128128 时模型很难讲较简单的数字图形弄出过多的不同的可解释性方向。
  • Spectral Norm GAN 处理 AnimeFaces 数据集时 K=128K=128
  • BigGAN 处理 ImageNet 数据集时 K=120K=120
  • ProgGAN 处理 CelebA-HQ 数据集时 K=200K=200,因为若取值为 512512 时,作者提出的方法很重构出合理的评价指标值。

2.2.4. AA 的选择

在实验中作者用到了两种 AA

  • A is a linear operator with all matrix columns having a unit length:让矩阵的所有列都是单位长度,通过让每列除以其对应长度得到。
  • A is a linear operator with orthonormal matrix columns:让矩阵的列都是正交的,即通过斜对称矩阵 SSST=SS^T=-S)来参数化 AA

在实验中观察到,这两种 AA 的效果都挺好,并且能发现一些相似的可解释性方向。通常更常使用单位向量的列的 AA,因为其能发现更多的方向。但在某些数据集中,第二种 AA 能发现一些更有趣的细节。

三. 实验

3.1. 实验配置

3.1.1. 数据集和生成器模型

  1. MNIST,包含 32×3232\times32 大小的图像,使用 33 个残差块的 ResNet-like 生成器的 Spectral Norm GAN
  2. AnimeFaces,包含 64×6464\times64 大小的图像,使用 44 个残差块的 ResNet-like 生成器的 Spectral Norm GAN
  3. CelebA-HQ,包含 1024×10241024\times1024 大小的图像,使用预训练好的 ProGAN 生成器 online available
  4. ImageNet,包含 128×128128\times128 大小的图像,使用在 ILSVRC 数据集上预训练好的 BigGAN 生成器 online available

3.1.2. 优化器

全部使用 Adam 优化器,固定学习率 0.00010.0001,除了 ProGAN 使用梯度回传训练了 10510^5 次外,其他都是 2×1052\times10^5 次。在 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,方向变化的自然度。表示在潜空间中让隐编码沿着特定方向变化其生成的图像的自然性。按照常识,自然性应该是沿着某个方向移动生成的图像和真实图像之间的变化因子应该是相同的,于是,作者通过使用如下方法达到自然性的计算:

  1. 将我们重构模型 RR 得到的方向和位移组成的方向向量记为 hFh_{\mathcal{F}},便可构建一个适用于二分类任务的伪标签数据集 DF={(G(z±hF),±1)}D_{\mathcal{F}}=\left \{ (G(z \pm h_{\mathcal{F}}),\pm1) \right \}
  2. 使用 LeNet 对该数据集进行训练,得到一个二分类模型 MF:G(z){1,1}M_{\mathcal{F}}:G(z)\to \left \{ -1,1 \right \}
  3. 再利用训练好的 MFM_{\mathcal{F}} 对对应的真实图像集 DD 引入伪标签数据集 DFreal={(I,MF(I)),ID}D_{\mathcal{F}}^{real}=\left \{ (I,M_{\mathcal{F}}(I)),I \in D \right \}
  4. 重新让这个二分类模型 MFM_{\mathcal{F}}DFrealD_{\mathcal{F}}^{real} 数据集上重新训练,然后用新的 MFM_{\mathcal{F}}DFD_{\mathcal{F}} 进行测试,得到准确性,即 DVN。

3.2. MNIST

image-20200610225719319

图6是提出方法在 MNIST 上的定性分析,可见图像伴随着潜在编码沿着学习到的方向移动的效果还是很好的。

为了衡量方法的解耦能力,作者设计了如下实验:

  • 固定 kkzz,从训练次数上分别从 01050\sim10^5 均分成 55 份取对应步数上的预测方向。即 A:Astep=0,,Astep=105A:A_{step=0},\cdots,A_{step=10^5}
    • Astep=0A_{step=0}:做恒等变化
    • Astep=105A_{step=10^5}:最终的预测矩阵

实验结果如 图7 所示,可见,随着训练步数逐渐接近 10510^5,往该方向的移动不再改变数字类型,仅仅改变数字的粗细,充分表明我们将数字类型和数字粗细这俩特征解耦了

image-20200610230808786

3.3. Anime Faces

就是在这个数据集上发现将 AA 的各列正交可增强方向的多样性。 但不提倡用这个方法到所有数据集上,因为未必都能取得这样的效果(作者对MNIST、CelebA上实验效果没这样好)。实验结果如 图8 所示。

image-20200610231154570

3.4. Real Human Faces

image-20200610231259927

图9 即为实验结果,这些方向为图像的处理提供了有用信息。

3.5. ImageNet

image-20200610231616109

图10 便是提出的方法发现的一些方向。值得一提的是,上图中的 背景模糊背景消除 这俩方向可为构建显著性实例分割任务轻松构建大规模的训练数据集。而这俩方向便是正交列矩阵 AA 的功劳。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章