GAN dissection: Visualizing and understanding generative adversarial networks
公众号:EDPJ
目录
0. 摘要
生成对抗网络 (GAN) 最近在许多实际应用中取得了令人印象深刻的结果,并且出现了许多 GAN 变体,在样本质量和训练稳定性方面都有所提高。 然而,它们还没有被很好地可视化或理解。 GAN 在内部如何代表我们的视觉世界? 是什么导致 GAN 结果出现伪影? 架构选择如何影响 GAN 学习? 回答这些问题可以使我们获得新的见解和更好的模型。
在这项工作中,我们提出了一个分析框架,用于在单元、对象和场景级别可视化和理解 GAN。 我们首先使用基于分割的网络剖析方法来识别一组与对象概念密切相关的可解释单元。 然后,我们通过测量干预措施控制输出对象的能力来量化可解释单元的因果效应。我们通过将发现的对象概念插入到新图像中来检查这些单元与其周围环境之间的上下文关系。 我们展示了我们的框架支持的几个实际应用,从比较不同层、模型和数据集的内部表示,到通过定位和删除造成伪影的单元来改进 GAN,再到交互式地操作场景中的对象。 我们提供开源解释工具来帮助研究人员和从业者更好地理解他们的 GAN 模型。https://github.com/CSAILVision/gandissect
1. 简介
对于 GAN,仍有许多问题有待解答。 例如,要生成教堂图像(图1a),GAN 需要学习哪些知识? 或者,当 GAN 有时会生成非常不真实的图像(图 1f)时,是什么导致了错误? 为什么一种 GAN 变体比另一种效果更好? 它们的权重中有哪些根本差异?
在这项工作中,我们研究了 GAN 的内部表示。 对于人类观察者来说,训练有素的 GAN 似乎已经了解了图像中物体的事实:例如,门可以出现在建筑物上,但不能出现在树上。 我们希望了解 GAN 如何表示这样的结构。 这些对象是否以纯像素模式出现,而没有任何对象(例如门和树)的明确表示,或者 GAN 是否包含与人类感知的对象相对应的内部变量? 如果 GAN 确实包含门和树的变量,那么这些变量是否会导致这些对象的生成,或者它们只是相关? 对象之间的关系如何表示?
我们提出了一种通用方法,用于可视化和理解不同抽象级别的 GAN,从每个神经元到每个对象,再到不同对象之间的上下文关系。 我们首先确定一组与对象概念相关的可解释单元(图 1b)。 这些单元的特征图与特定对象类(例如树)的语义分割紧密匹配。 其次,我们直接干预网络,以识别导致某种对象消失(图 1c)或出现(图 1d)的单元集。 我们使用标准因果关系度量来量化这些单位的因果效应。 最后,我们检查这些因果对象单元与背景之间的上下文关系。 我们研究了可以在新图像中插入对象概念的位置以及这种干预如何与图像中的其他对象相互作用(图 1d)。 据我们所知,我们的工作为理解 GAN 的内部表示提供了第一个系统分析。
最后,我们展示了该分析框架支持的几个实际应用,包括比较不同层、GAN 变体和数据集的内部表示; 通过定位和消除“伪影”单元来调试和改进 GAN(图 1e); 理解场景中物体之间的上下文关系; 通过交互式对象级控制来操作图像。
2. 相关工作
可视化深度神经网络。 人们已经开发了各种方法来理解网络的内部表示,例如 CNN(Zeiler & Fergus,2014)和 RNN(Karpathy 等人,2016;Strobelt 等人,2018)的可视化。 我们可以通过定位和重建显着图像特征(Simonyan et al., 2014;Mahendran & Vedaldi, 2015)或通过挖掘最大化隐藏层激活的补丁(Zeiler & Fergus, 2014)来可视化 CNN,或者我们可以合成输入图像来反转一个特征层 (Dosovitskiy & Brox,2016)。 或者,我们可以通过测量单元激活和对象分割掩模之间的一致性来识别每个单元的语义(Zhou et al., 2015; Bau et al., 2017; Zhou et al., 2018a)。 RNN 的可视化还揭示了跟踪远程依赖性的可解释单元(Karpathy 等人,2016)。 之前大多数关于网络可视化的工作都集中在训练分类网络上。 我们的工作探索了为图像生成而训练的深度生成模型。
解释深度神经网络的决策。 我们可以使用信息热图(Zhou et al., 2018b; 2016; Selvaraju et al., 2017)或修改后的反向传播(Simonyan et al., 2014; Bach et al., 2015; Sundararajan et al., 2017)来解释各个网络决策。 热图突出显示了哪些区域对网络给出的分类预测贡献最大。 最近的工作还研究了特征向量(Kim 等人,2017;Zhou 等人,2018b)或单个通道(Olah 等人,2018)对最终预测的贡献。Morcos 等人(2018)通过消融单个单位来检查其效果。 这些方法解释了判别性分类器。 我们的方法旨在解释网络如何生成图像,而这方面的探索却少之又少。
3. 方法
我们的目标是分析 GAN 生成器 G: z→x 的内部表示如何对树木等对象进行编码。 这里 z ∈ R^|z|表示从低维分布采样的隐向量,x ∈ R^H*W*3 表示生成的 H*W 图像。 我们使用表示来描述生成器 G 的特定层的张量 r 输出,其中生成器通过层的组合从随机 z 创建图像 x:r = h(z) 和 x = f(r) = f(h(z)) = G(z)。
由于 r 具有生成图像 x = f(r) 所需的所有数据,因此 r 当然包含推断图像中任何可见类 c 的存在的信息。 因此,我们要问的问题不是有关 c 的信息是否存在于 r 中(确实存在),而是这些信息如何编码到 r 中。 特别是,对于概念域 c ∈ C 中的任何类,我们试图了解 r 是否以某种方式明确表示 c,其中可以将位置 P 处的 r 分解为两个分量。
其中位置 P 处对象 c 的生成主要取决于单元 r_U,P,对其他单元 r_~U,P 不敏感。 这里我们将特征图的每个通道称为一个单元:U 表示感兴趣的单元索引的集合,~U是其补集; 我们将写 U 和 P 来指代 r 中的整组单元和特征图像素。 我们分两个阶段研究 r 的结构:
- 解剖:从一个大的对象类字典开始,我们通过测量 r 的各个单元与每个类 c 之间的一致性来识别在 r 中具有显式表示的类(图 1b)。
- 干预:对于通过解剖确定的代表类别,我们识别单元的因果集,并通过强制单元集打开和关闭来测量单元和对象类之间的因果效应(图1c,d)。
3.1 通过解剖表征单元
我们首先关注代表性的各个单位。 回想一下,r_u,P 是卷积生成器中单元 u 的单通道 h*w 特征图,其中 h*w 通常小于图像大小。 我们想知道特定单元 r_u;,P 是否编码语义类,例如“树”。 对于图像分类网络,Bau 等人(2017)观察到,当单元被上采样和阈值化时,许多单元可以近似地定位涌现(emergent)对象类。 本着这种精神,我们选择一个概念域 c ∈ C,其中每个类都有一个语义分割 s_c(x)。 然后,我们使用以下交集并集 (intersection-over-union, IoU) 度量来量化单元 u 的阈值特征图和概念 c 的分割之间的空间一致性:
其中 ^ 和 v 表示交集和并集运算,x = G(z) 表示从 z 生成的图像。 单通道特征图 r_u,P 在单元 u 处对整个特征图 r = h(z) 进行切片。
如图 2a 所示,将 r_u,P 上采样为输出图像分辨率 r↑_u,P。 (r↑_u,P > t_u,c) 通过在固定级别对 r↑_u,P 进行阈值化来生成二进制掩码 t_u,c。s_c(x) 是一个二元掩码,其中每个像素指示生成图像 x 中 c 类的存在。通过最大化信息质量比 I/H(使用 一个单独的验证集),也就是说,它最大化联合熵 H 的部分,即互信息 I (Wijaya et al., 2017)。
我们可以使用 IoU_u,c 对与每个单元相关的概念进行排序,并用最匹配的概念来标记每个单元。 图 3 显示了具有高 IoU_u,c 的可解释单元的示例。 它们并不是唯一匹配桌子和沙发的单元:餐厅生成器的第 3 层有 31 个(共 512 个)匹配桌子和桌子部件的单元,客厅生成器的第 4 层有 65 个(共 512 个)沙发单元。
一旦我们确定了一组单元紧密匹配的对象类,我们接下来会问:哪些单元负责触发该对象的渲染? 与输出对象高度相关的单元实际上可能不会导致该输出。 此外,任何输出都将共同取决于表示的几个部分。 我们需要一种方法来识别导致对象的单元组合。
3.2 使用干预措施衡量因果关系
为了回答上述关于因果关系的问题,我们使用干预来探测网络:我们通过强制 U 的单元打开和关闭来测试 r 中的一组单元 U 是否导致 c 的生成。
回想一下,r_U,P 表示单元 U 和位置 P 处的特征图 r。我们通过强制 r_U,P = 0 来消除这些单元。类似地,我们通过强制 r_U,P = k 来插入这些单元,其中 k 是每类常量 ,如 6.4 节所述。 我们将特征图 r 分解为两部分
其中,后一部分是 r 的非受迫分量:
如果某个对象出现在 xi 中并从 xa 中消失,则该对象是由 U 引起的。 图 1c 演示了删除树木的单元的消融,图 1d 演示了在特定位置插入单元以使树木出现。 这种因果关系可以通过比较 xi 和 xa 中树木的存在以及对所有位置和图像的平均影响来量化。 根据之前的工作(Holland,1988;Pearl,2009),我们将单元 U 对 c 类生成的平均因果效应(ACE)定义为:
其中 s_c(x) 表示分割,指示图像 x 中 P 处存在类 c。为了允许比较罕见的类 c 之间的 δ_U→c,我们通过 E_z,P[s_c(x)] 标准化我们的分割 s_c。 虽然这些措施可以应用于单个单元,但我们发现对象往往依赖于多个单元。 因此,我们需要确定一组单元 U,使对象类 c 的平均因果效应 δ_U→c 最大化。
寻找具有高 ACE 的单位组。 给定一个具有 d 个单元的表示 r,彻底搜索具有高 δ_U→c 的固定大小集合 U 是禁止的,因为它具有的子集数为
相反,我们优化连续干预 α ∈ [0,1]^d,其中每个维度 α_u 表示对单位 u 的干预程度。 我们最大化以下平均因果效应公式 δ_U→c:
其中 r_U,P 表示位置 P 处的全通道特征图,r_U~P 表示其他位置 ~P 处的全通道特征图,并将每通道缩放向量应用于特征图 r_U,P。 我们通过 L2 正则化优化以下损失:
其中控制每个术语的相对重要性。 当我们寻求最小的休闲单位集时,我们添加了 L2 损失。 我们使用随机梯度下降进行优化,在 z 和特征图位置 P 上采样并将系数限制在范围 [0,1]^d 每一步(d 是单元总数)。6.4 节讨论了此优化的更多细节。 最后,我们可以按 α*_u 对单元进行排序,并在连续消除树引发的较大的单元集时实现更强的因果效应(即删除树),如图 4 所示。
4. 结果
我们研究了在 LSUN 场景数据集(Yu 等人,2015)上训练的 ProGAN(Karras 等人,2018)的三种变体。 为了分割生成的图像,我们使用在 ADE20K 场景数据集(Zhou 等人,2017)上训练的最新模型(Xiao 等人,2018)。 该模型可以将输入图像分割为 336 个对象类、29 个大对象部分和 25 种材质。 为了进一步识别专门研究对象部分的单元,我们将每个对象类 c 扩展为附加对象部分类 c-t、c-b、c-l 和 c-r,它们表示连接组件的边界框的上、下、左或右半部分 。
下面,我们使用解剖来分析和比较跨数据集、图层和模型的单元(第 4.1 节),并定位伪影单元(第 4.2 节)。 然后,我们从一组主要对象类开始,并使用干预来定位可以在不同图像中删除和插入对象的因果单元(第 4.3 和 4.4 节)。
4.1 跨数据集、层和模型的单位比较
单个单元对象检测器的出现。我们对与具有不同视觉外观的对象类实例相关的任何单元特别感兴趣; 这些表明 GAN 使用与人类类似的抽象来生成这些对象。 图 3 展示了两个这样的单元。 在餐厅数据集中,出现了一个与餐桌区域相匹配的单元。 更有趣的是,匹配的桌子具有不同的颜色、材料、几何形状、视角和杂乱程度:这些区域之间唯一明显的共同点是桌子的概念。 该单元的特征图与完全监督的分割模型(Xiao et al., 2018)相关,IoU 高达 0.34。
不同场景类别的可解释单元。与 GAN 单元匹配的所有对象类的集合提供了 GAN 所了解的数据内容的映射。 图 5 检查了在四个 LSUN 场景类别上训练的 GAN 的单元(Yu 等人,2015)。 出现的单元是适合场景类型的对象类:例如,当我们检查在厨房场景上训练的 GAN 时,我们会找到与炉灶、橱柜和高厨房凳子腿相匹配的单元。 另一个引人注目的现象是,许多单元代表物体的一部分:例如,会议室 GAN 包含一个人的身体和头部的单独单元。
不同网络层的可解释单元。 在分类器网络中,信息类型明确表示层与层之间的变化(Zeiler & Fergus,2014)。 我们在 GAN 中发现了类似的现象。 图 6 比较了具有 14 个内部卷积层的渐进式 GAN 的早期、中期和晚期层。 第一个卷积层的输出距离输入 z 一步之遥,仍然处于纠缠状态:除了偏向房间天花板的两个单元之外,各个单元与任何对象类都没有很好的相关性。 中层 4 至 7 有许多与语义对象和对象部分匹配的单元。 第 10 层及更高层中的单元与材质、边缘和颜色等局部像素模式匹配。 所有层均显示在 6.7 节中。
不同 GAN 模型的可解释单元。 可解释单元可以提供有关 GAN 架构选择如何影响 GAN 内部学习结构的见解。 图 7 比较了 Karras 等人的三个模型。 (2018):基线渐进式 GAN,引入小批量 stddev 统计数据的修改,以及添加像素归一化的进一步修改。 通过检查单元语义,我们确认向判别器提供小批量 stddev 统计数据不仅增加了结果的真实性,而且还增加了单元所表示的概念的多样性:匹配单元的对象、零件和材料的类型数量增加了超过 40%。 像素归一化将匹配语义类别的单元数量增加了 19%。
4.2 诊断和改进 GAN
虽然我们的框架可以揭示 GAN 如何成功生成逼真的图像,但它也可以分析其结果失败的原因。 图 8a 显示了几个带注释的单元,它们导致不同图像中一致出现的典型伪影。 我们可以通过人工注释有效地识别这些单元:在 1000 个图像的样本中,我们可视化每个单元的前十个最高激活的图像,并手动识别该组中具有明显伪影的单元。 通常需要 10 分钟才能从第 4 层的 512 个单元中找到 20 个造成伪影的单元。
更重要的是,我们可以通过消除上述 20 个造成伪影的单元来修复这些错误。 图 8b 显示伪影已成功消除,并且无伪影的像素保持不变,从而改善了生成的结果。 在表 1 中,我们报告了两个标准指标,将改进后的图像与原始伪影图像以及消除 20 个随机选择的单元的简单基线进行比较。
- 首先,我们计算生成图像和真实图像之间广泛使用的 Fr´echet Inception Distance (Heusel et al., 2017)。 我们使用 50,000 张真实图像并生成在这些单元上具有高激活度的10,000 张图像。
- 第二,我们在 Amazon MTurk 上对每种方法的 1,000 个图像评分,收集 20,000 个关于修改后的图像是否比原始图像看起来更真实的人工注释。
这两个指标都显示出显着的改进。 引人注目的是,这种对网络的简单手动更改击败了最先进的 GAN 模型。伪影单元的手动识别可以通过每个单元的真实性的自动评分来近似,如 6.1 节中详述。
4.3 通过消融定位因果单元
错误并不是直接干预 GAN 会影响的唯一输出类型。 通过消融 GAN 中的一组单元,还可以从 GAN 输出中删除各种特定对象类型。 在图 9 中,我们应用 3.2 节中的方法来识别对会议室场景中的常见对象类有因果影响的 20 个单元组。 我们发现,通过关闭这些小单元组,可以从生成的场景中删除大部分人物、窗帘和窗户的输出。 然而,并不是所有的物体都可以被删除:桌子和椅子不能被移除。 删除这些单元会减小这些物体的尺寸和密度,但很少会消除它们。
对象移除的难易程度取决于场景类型。 图 10 显示,虽然可以很好地从会议室中移除窗户,但从其他场景中移除窗户则更困难。 特别是,卧室的窗户与会议室的桌椅一样难以删除。 我们假设移除的难度反映了 GAN 对某个概念的选择程度:会议室是由椅子的存在定义的,因此它们不能改变。 现代建筑规范规定所有卧室都必须有窗户; GAN 似乎已经抓住了这种模式。
4.4 通过插入表征上下文关系
我们还可以通过强制打开单元并将这些特征插入到场景中的特定位置来了解 GAN 的操作。 图11展示了在教堂场景中插入20个 layer4 因果门单元的效果。 在此实验中,我们通过将这些单元的激活设置为门的固定平均值来插入这些单元(更多详细信息请参阅第 S-6.4 节)。 尽管这种干预在每种情况下都是相同的,但效果因对象周围环境的不同而有很大差异。 例如,添加到图 11 中的五座建筑物的门具有多种视觉属性,每个门都具有与建筑物相匹配的方向、尺寸、材料和风格。
我们还观察到大多数位置无法添加门。 可以添加门的位置用黄色框突出显示。 图 11 中的条形图显示了插入门单元的平均因果效应,以干预位置的背景对象类为条件。 我们发现 GAN 允许在建筑物中添加门,特别是在可能的位置,例如有窗户或有砖块的地方。 相反,不可能触发天空或树上的门。 干预措施让我们深入了解 GAN 如何强化对象之间的关系。 即使我们尝试在第 4 层添加一扇门,如果该对象不适合上下文,则稍后可以否决该选择。6.5 节进一步探讨了这些下游影响。
5. 讨论
通过仔细检查表示单元,我们发现 GAN 表示的许多部分不仅可以解释为与对象概念相关的信号,还可以解释为对输出中对象的合成有因果影响的变量。 这些可解释的效果可用于比较、调试、修改和推理 GAN 模型。 我们的方法可以潜在地应用于其他生成模型,例如 VAE(Kingma & Welling,2014)和 RealNVP(Dinh 等人,2017)。
我们关注的是生成器而不是判别器(正如 Radford 等人(2016)中所做的那样),因为生成器必须表示近似目标分布所需的所有信息,而判别器只能学习捕获真假之间的差异 图片。 或者,我们可以训练编码器来反转生成器(Donahue et al., 2017; Dumoulin et al., 2017)。 然而,这会带来额外的复杂性和错误。 许多 GAN 也没有编码器。
我们的方法并不是为了比较 GAN 的质量而设计的,也不是为了替代经过充分研究的 GAN 指标(例如 FID),FID 通过测量生成的图像分布与真实分布之间的距离来估计真实性 (Borji (2018) 对这些方法进行了调查)。 相反,我们的目标是识别可解释的结构并提供了解 GAN 内部机制的窗口。
先前的可视化方法(Zeiler & Fergus,2014;Bau et al.,2017;Karpathy et al.,2016)为 CNN 和 RNN 研究带来了新的见解。 受此启发,在这项工作中,我们朝着理解 GAN 的内部表示迈出了一小步,并且我们发现了许多目前方法尚无法回答的问题。 例如:为什么天上不能插入门? GAN如何抑制后面层的信号? 需要进一步的工作来理解 GAN 各层之间的关系。 尽管如此,我们希望我们的工作能够帮助研究人员和实践者更好地分析和开发自己的 GAN。
参考
Bau D, Zhu J Y, Strobelt H, et al. GAN Dissection: Visualizing and Understanding Generative Adversarial Networks[C]//International Conference on Learning Representations. 2018.
6. 补充材料
6.1 伪影单元的自动识别
在 4.2 节中,我们通过手动识别和消除造成伪影的单元来改进 GAN。 现在我们描述一个使用特定于单元的 FID 分数来识别伪影单元的自动过程。
为了计算单元 u 的 FID 分数(Heusel 等人,2017),我们生成 200,000 张图片并选择 10,000 个最大化单元 u 激活的图像,使用 FID 比较这个 10,000 个图像的子集与真实分布(50,000 个真实图像)。 尽管每个这样的单元最大化图像子集都代表偏态分布(skewed distribution),但我们发现每个单元的 FID 分数范围很广,大多数单元在 FID 中得分良好,而少数单元的 FID 分数很差:其中许多单元也由人类手动标记,因为它们倾向于在具有清晰可见伪影的图像上激活。
图 12 显示了 FID 分数作为手动标记伪影单元的预测因子的性能。 每个单元的 FID 分数可以达到 50% 的精确度和 50% 的召回率。 也就是说,在 FID 最差的 20 个单元中,有 10 个也是手动判断为具有最明显伪影的 20 个单元之一。 此外,通过消除最高 FID 单元来修复模型是可行的:定性结果如图 13 所示,定量结果如表 2 所示。
6.2 人类对解剖的评估
作为一项健全性检查,我们针对一个模型评估了与单元相关的对象概念的人工标记与基于分割的自动标记之间的差距,如下所示。
对于“客厅”Progressive GAN 的第 4 层的 512 个单元中的每一个,收集了 5 到 9 个人类注释(总共 3728 个标签)。 在每种情况下,AMT 工作人员都被要求提供一个或两个单词来描述一个单元的一组最活跃图像中突出显示的补丁。 在 512 个单元中,50% 或更多的人类标签中的 201 个单元被描述为相同的一致词(例如“沙发”、“壁炉”或“柳条”)。 这些单元是人类可以解释的。
应用我们基于分割的解剖方法,其中 154/201 个单元也通过解剖用 IoU > 0.05 的置信标签进行标记。 在 104/154 例中,基于分割的模型给出了与人类注释者相同的标签词,而其他大多数情况下在特异性上略有变化。 例如,当一个人标记“沙发”或“窗户”或“图片”时,分割分别标记“奥特曼”或“窗帘”或“绘画”。 进行了第二次 AMT 评估,以评估分割衍生标签和人类衍生标签的准确性。 人类来源的标签得分为 100%(在 201 个人类标记的单位中,所有标签都被大多数评估者评为一致)。 在 154 个分段生成的标签中,有 149 个 (96%) 被大多数 AMT 评估者评为准确。
这五个失败案例(分割是有信心的,但被人类评为不准确)是由于人类评估者在仅观察 20 个最活跃图像后看到一个概念,而算法在评估 1000 个图像时将另一个概念视为主导。 图 14a 显示了一个示例:在顶部图像中,大部分沙发被突出显示,很少有天花板,而在较大的示例中,大部分天花板被触发。
还有 47/201 的情况,分割器不自信,而人类却达成共识。 其中一些是由于分割器中缺少概念造成的。 图 14b 显示了一个典型示例,其中一个单元专用于信箱(图像顶部和底部的白色条纹),但分割没有可为其分配的置信标签。 我们期望随着未来语义分割模型的发展能够识别更多的概念,例如抽象形状,更多的这些单元可以被自动识别。
6.3 保护分割模型免受不真实图像的影响
我们的方法依赖于分割函数 s_c(x),该函数识别输出 x 中 c 类的像素。 然而,在 x 与 s_c 的原始训练集不相似的情况下,分割模型 s_c 的性能可能会很差。 在分析早期的 GAN 模型时,这种现象是显而易见的。 例如,图 15 可视化了 LSUN 卧室 WGAN-GP 模型(Gulrajani 等人,2017 年)中的两个单元(该模型由 Karras 等人(2018 年)训练,作为原始论文中的基线)。 对于这两个单元,分割网络似乎被扭曲的图像混淆了。
为了防止这种虚假的分割标签,我们可以使用类似于 6.1节中描述的技术:自动识别产生不真实图像的单元,并从语义分割中忽略那些“不真实”单元。 应用的适当阈值将取决于所建模的分布:在图 16 中,我们展示了应用过滤器(忽略 FID 55 或更高的单元上的分割)如何影响此基本 WGAN 模型的分析。 一般来说,与单元相关的不相关标签较少(fewer irrelevant labels are associated with units)。
6.4 计算因果单元
在本节中,我们提供有关 3.2 节中描述的 ACE 优化的更多详细信息。
指定每类正干预常数 k。 在等式 3 中,负干预被定义为将干预单位归零,正干预被定义为将干预单位设置为某个大的类特定常数 k。 对于 c 类的干预,我们将 k 设置为平均特征图激活,条件是输出中该位置存在 c 类,每个像素按 c 类覆盖的特征图位置部分进行加权。 将像素处的所有单位设置为 k 往往会强烈导致目标类别出现。 优化的目标是找到与 c 有因果关系的单位子集。
对 c 相关位置 P 进行采样。优化因果目标(等式 5)时,从各个特征图位置对干预位置 P 进行采样。 当 c 类很少时,大多数特征图位置都没有信息:例如,当 c 类是教堂场景中的门时,天空、草地和树木的大多数区域都是门不会出现的位置。 因此,我们将优化重点如下:在训练期间,小批量是通过对与类 c 相关的位置 P 进行采样而形成的,通过包含类 c 出现在输出中的位置(因此是通过消融单元子集来删除的候选者),以及等量的位置,其中类 c 不存在于 P 处,但如果所有单元都设置为常数 k(用于插入单元子集的候选位置),则类 c 会存在。 在评估过程中,使用均匀样本评估因果效应:在测量消融时将区域 P 设置为整个图像,在测量单像素插入时将区域 P 设置为均匀采样的像素 P。
用 IoU 初始化 α。用等式 7 为 c 类初始化因果关系 α。
也就是说,我们设置初始值 α,使最大分量对应于 c 类具有最大 IoU 的单元,然后对分量进行归一化,使该最大分量为 1。
应用学习到的干预措施。在应用干预措施时,我们通过仅保留其前 n 个分量并将其余分量归零来剪辑 α。 为了在平等的基础上比较不同类别和不同模型的干预措施,我们检查了设置 n = 20 的干预措施。
6.5 追踪干预措施的效果
为了研究抑制第 4.4 节中看到的一些干预措施的可见影响的机制,在本节中,我们在第 4 层的各个特征图位置样本上插入 20 个门因果单元,并测量在后面的层中引起的变化。
为了量化对下游特征的影响,每个特征通道的变化通过该通道的平均 L1 幅度进行标准化,并且我们检查每层这些标准化特征图的平均变化。 在图 17 中,传播到第 14 层的这些效果被可视化为热图:当门干预位于建筑物附近而不是树木或天空时,较亮的颜色表示对最终要素图层的影响更强。 此外,我们在图 17 右侧绘制了每一层的平均效果,将具有明显效果的干预措施与没有明显效果的干预措施区分开来。 第 4 层的小幅相同干预会放大为更大的变化,直至第 12 层达到峰值。
6.6 训练期间监控 GAN 单元
解剖还可用于通过量化可解释单元的出现、多样性和质量来监控训练进度。 例如,在图 18 中,我们展示了在卧室上训练的渐进式 GAN 模型的第 4 层表示的解剖,在这些模型训练期间的一系列检查点处捕获。 随着训练的进行,匹配对象的单元数量会增加,具有匹配单元的对象类别的数量也会增加,并且通过单元上的平均 IoU 来衡量的对象检测器的质量也会增加。 在这次成功的训练中,解剖表明,随着越来越多的单元趋向于有意义的卧室概念,模型正在逐渐学习卧室的结构。
6.7 GAN 的所有层
在 4.1 节中,我们展示了 GAN 的一小部分层; 在图 19 中,我们展示了该模型(在 LSUN 客厅图像上训练的渐进式 GAN)所有内部卷积层的完整列表。 可以看出,与高级对象概念匹配的单元的多样性在第 4 层到第 6 层达到顶峰,然后在后面的层中下降,后面的层以纹理、颜色和形状为主。
S. 总结
S.1 主要思想
使用基于分割的网络剖析方法来识别一组与对象概念密切相关的可解释单元,对单元的干预会影响输出图像中的相应对象,例如:把发现的对象插入到其他图像中,删除造成伪影的单元来改进 GAN,或者交互式地操作场景中的对象。
该方法并不是为了比较 GAN 的质量而设计的,也不是为了替代经过充分研究的 GAN 指标(例如 FID),而是为了识别可解释的结构并提供了解 GAN 内部机制的窗口。
S.2 方法
对于生成器 G 的特定层的输出张量 r,位置 P 处的 r 可以分解为两个分量,一个对类别 c 有影响单元,另一个对类别 c 无影响或者影响较小的单元。分两个阶段研究 r 的结构:
- 解剖:从一个大的对象类字典开始,通过测量 r 的各个单元与每个类 c 之间的一致性来识别在 r 中具有显式表示的类。
- 干预:对于通过解剖确定的类别,我们识别单元的因果集,并通过强制单元集打开和关闭来测量单元和对象类之间的因果效应
S.3 分析
GAN 使用与人类类似的抽象来生成对象。在餐厅数据集中,出现了一个与餐桌区域相匹配的单元。匹配的桌子具有不同的颜色、材料、几何形状、视角和杂乱程度:这些区域之间唯一明显的共同点是桌子的概念。
不同场景类别的可解释单元。厨房场景上训练的 GAN,会找到与炉灶、橱柜和高厨房凳子腿相匹配的单元;会议室 GAN 包含一个人的身体和头部的单独单元。
不同网络层的可解释单元。第一个卷积层的输出仍然处于纠缠状态:除部分单元外,其他各个单元与任何对象类都没有很好的相关性。 中层 4 至 7 有许多与语义对象和对象部分匹配的单元。 第 10 层及更高层中的单元与材质、边缘和颜色等局部像素模式匹配。
作者展示模型(在 LSUN 客厅图像上训练的渐进式 GAN)所有内部卷积层的完整列表。 其中,与高级对象概念匹配的单元的多样性在第 4 层到第 6 层达到顶峰,然后在后面的层中下降,后面的层以纹理、颜色和形状为主。
不同 GAN 模型的可解释单元。向判别器提供小批量 stddev 统计数据不仅增加了结果的真实性,而且还增加了单元所表示的概念的多样性;像素归一化增加了匹配语义类别的单元数量。
S.4 应用
诊断和改进 GAN。可视化每个单元的前十个最高激活的图像,并手动识别造成明显伪影的单元,然后可以通过消除造成伪影的单元来修复这些错误。通过消除最高 FID 单元来修复模型也是可行的(伪影单元的自动识别)。
删除图中特定对象。通过消融 GAN 中的一组单元,还可删除 GAN 输出中各种特定对象类型,例如,会议室场景中的大部分人物、窗帘和窗户。
然而,并不是所有的物体都可以被删除,对象移除的难易程度取决于场景类型,例如,卧室的窗户与会议室的桌椅。作者假设移除的难度反映了 GAN 对某个概念的选择程度:会议室是由椅子的存在定义的,因此它们不能改变。 现代建筑规范规定所有卧室都必须有窗户; GAN 似乎已经抓住了这种模式。
图中添加特定对象。通过强制打开单元并将特征插入到场景中的特定位置,例如,为建筑物添加门。
然而,大多数位置无法添加门。GAN 允许在建筑物中添加门,特别是在可能的位置,例如有窗户或有砖块的地方。 相反,不可能触发天空或树上的门。GAN 抓住了某个概念的模式。
解剖还可用于通过量化可解释单元的出现、多样性和质量来监控训练进度。随着训练的进行,匹配对象的单元数量会增加,具有匹配单元的对象类别的数量也会增加,越来越多的单元趋向于有意义的卧室概念,模型正在逐渐学习卧室的结构。