【CVPR2017周博磊】Network Dissection: Quantifying Interpretability of Deep Visual Representations

Network Dissection: Quantifying Interpretability of Deep Visual Representations

论文地址:https://arxiv.org/pdf/1704.05796.pdf
源代码和数据获取地址:http://netdissect.csail.mit.edu
AI科技大本营 采访周博磊:https://www.jianshu.com/p/cc9cdb4fd42b

摘要

我们提出了一种名为“Network Dissection”的通用框架,通过评估单个隐藏单元与一系列语义概念间的对应关系,来量化 CNN 隐藏表征的可解释性。对于任何 CNN 模型,我们提出的这种方法利用大量的视觉概念数据集来评估每个中间卷积层隐藏单元的语义。这些带有语义的单元被赋予了大量的概念标签,这些概念包括物体、组成部分、场景、纹理、材料和颜色等。
我们使用该方法测试了“单元的可解释性等同于单元的随机线性结合”的假设。接下来,在训练多种神经网络解决不同的监督和自监督训练任务时候,我们用此方法将这些神经网络在训练期间的隐藏表征(latent representations)进行了对比。我们进一步分析了训练迭代的影响,对比了用不同初始化训练的网络,探究了网络深度和宽度的影响,并估量了 dropout 和批规范化(batch normalization)对深度视觉表征可解释性的影响。我们证明了该方法可以揭示 CNN 模型和训练方法的特性,而不仅仅是衡量他们的判别能力。


1.Introduction

  • 对大型深度神经网络中隐藏单元的观察表明,人类可解释的概念有时会在这些网络中作为个体潜在变量出现: 例如,物体探测单元出现在训练识别[40]位置的网络中; 部件检测器出现在对象分类器[11]中;目标检测器出现在生成视频网络[32]中(图1)。这种内部结构出现在网络没有被限制以任何可解释的方式分解问题的情况下。
  • 可解释结构的出现表明,深层网络可能会自发地学习解耦的表征。虽然人们普遍认为网络可以学习一种有效的编码方式,这种编码方式可以经济地使用隐藏变量来区分其状态,但人们对解耦表示法的出现并没有很好的理解。解耦表示法将变量与潜在问题结构的有意义的分解对齐,鼓励解耦表示法是[5]研究的重要领域。如果深层网络的内部表示部分解耦,理解其机制的一个可能途径是检测解耦结构,并简单地读出分离的因子。
  • 然而,这一提议提出了我们在本文中讨论的问题:
    •什么是解耦表示,它的要素如何被量化和检测?
    •可解释的隐藏单元是否反映了特征空间的一种特殊排列,或者解释只是一种幻想?
    •在最先进的训练中,什么条件会导致更大或更小的纠缠表象?
    为了研究这些问题,我们提出了一个总体的分析框架,Network Dissection,以解释深层视觉表征和量化其可解释性。使用广泛而密集的标记数据集Broden,我们的框架为任何给定的CNN识别隐藏单元的语义,然后将它们与人类可解释的概念相结合。我们在各种训练过目标和场景识别的CNN (AlexNet, VGG, GoogLeNet, ResNet)上评估了我们的方法,并表明突发可解释性是一种表征的轴对齐属性,它可以被旋转破坏而不影响辨别能力。我们进一步研究了训练数据集、dropout[28]和批处理规范化[13]等训练技术以及不同主要任务的监督如何影响可解释性。

1.1Related Work

  • 越来越多的技术已经开发出来,通过可视化来理解卷积神经网络的内部表示。CNN的行为可以通过最大化激活隐藏单元的采样图像块来可视化[37,40],或者通过使用反向传播的变体来识别或生成显著的图像特征[17,26,37]。CNN特征隐藏层的鉴别能力也可以通过隔离部分网络,传输或限制它们,并在特定问题上测试它们的能力来理解[35,24,2]。可视化将网络的机制分解为必须被解释的图像;这激发了我们的工作,我们的目标是将CNN的表现与直接和自动的标记解释相匹配。
  • 与我们当前工作最相关的是探索神经网络中单个单位的作用。在[40]中,人类评价被用来确定单个单元作为目标探测器在网络中进行训练来分类场景。[20]通过学习特征反转映射,自动生成单个单元的原型图像;这与我们自动分配概念标签的方法相反。最近[3]提出了一种测试中间层的方法,通过训练简单的线性探针,分析层间的信息动态及其对最终预测的影响。
  • 在这里插入图片描述
    图1。40(分类位置)中的单元13检测台灯。11(分类物体)中的单元246检测自行车车轮。32中的一个单元(用于生成视频的自我监督)检测人。

2. Network Dissection

  • 我们如何量化一个想法的清晰度?解开表象的概念是基于人类对概念混淆的理解。因此,当我们量化可解释性时,我们根据与一组人类可解释的概念的一致性来定义它。我们对深度视觉表示的可解释性的测量分三步进行:
  • 1.确定一系列人类标注的视觉概念。
  • 2.收集隐藏变量对已知概念的反应。
  • 3.量化隐藏变量的对齐-概念对。
  • 这个Network Dissection的三步过程让人想起神经科学家用来理解生物神经元中类似表征问题的程序[23]。由于我们的目的是测量一个表示被解开的程度,我们集中于量化一个潜在变量和一个视觉概念之间的对应关系。
  • 在一个完全可解释的局部编码中,比如一个hot-encoding,每个变量将与一个人类可解释的概念完全匹配。尽管我们期望网络在内部层学习部分非局部表示[5],过去的经验表明,一个涌现的概念通常会与几个隐藏单元的组合对齐[11,2],我们目前的目标是评估一个表示的混乱程度。因此,我们衡量单个单元和单个可解释概念之间的一致性。这并不能衡量表象的辨别能力;相反,它量化了它的可解释性。正如我们将在Sec.3.2中展示的那样,完全等同的辨别能力的两种表示有可能具有非常不同的可解释性水平。
  • 为了评估任何给定CNN的可解释性,我们从一个新的广泛和密集标记的图像数据集中提取概念,该数据集统一了来自标记数据源的异构集合的标记视觉概念,如Sec.2.1所述。然后,我们通过评估作为每个概念的分割模型的每个单独单元的特征激活,来测量CNN的每个隐藏单元与每个概念的对齐。为了量化一个层作为一个整体的可解释性,我们计算了与该层中的一个单元对齐的不同视觉概念的数量,详见Sec.2.2.

2.1 Broden: Broadly and Densely Labeled Dataset

  • 为了能够确定与低级概念(如颜色)和高级概念(如对象)的一致性,我们组装了一个新的异构数据集。

  • The Broadly and Densely Labeled Dataset (Broden)统一了几个不同的标签数据集:ADE[43], Open-Surfaces [4], Pascal-Context [19], Pascal-Part [6]和the Describable Textures Dataset。这些数据集包含各种环境中的各种对象、场景、对象部分、纹理和材质的示例。大多数例子被分割到像素级,除了纹理和场景是全图像。此外,数据集中的每个图像像素都根据van de Weijer [31]分类的人类感知用11种常见颜色名称中的一种进行注释。Broden数据集中的标签类型示例如图2所示。
    在这里插入图片描述
    图2。Broden数据集的样本。每个概念的ground truth是像素级的密集注释。

  • 布洛登的目的是为广泛的视觉概念提供一组基本的真实样本。Broden中的概念标签被标准化,并从它们的原始数据集中合并,以便每个类对应一个英语单词。标签基于共享的同义词进行合并,忽略位置差异,如“左”和“上”以及避免黑名单中包含29个过于笼统的同义词(如“汽车”的“机器”)。多个Broden标签可以应用于同一个像素:例如,具有Pascal-Part 标签“left front cat leg”的黑色像素在Broden有三个标签:代表跨数据集的猫的统一“cat”标签;类似的统一“leg”标签;和颜色标签“black”。仅包含至少有10个图像样本的标签。表1显示了每个标签类别的平均图像样本数。
    在这里插入图片描述

2.2 Scoring Unit Interpretability

  • 所提出的network dissection 方法评估CNN中的每个单独的卷积单元,作为对Broden中每个视觉概念的二进制分割任务的解决方案(图3)。我们的方法可以应用于任何使用前向传播的CNN,而不需要训练或反向传播。
    在这里插入图片描述
    图3 网络剖析图,用于测量给定CNN中单元的语义对齐。这里,给定CNN的最后一个卷积层的一个单元通过评估其在1197个分段任务上的性能来探测。我们的方法可以探测任何卷积层。
  • 对于Broden数据集中的每个输入图像 X X X,收集每个内部卷积单元 k k k的激活图 A k ( X ) A_{k}(X) Ak(X)。然后计算单个单元激活 a k a_{k} ak的分布。对于每个单位 k k k,确定最高分位数水平 T k T_{k} Tk,使得在数据集中激活图的每个空间位置上, P ( a k > T k ) = 0.005 P(a_{k}> T_{k}) = 0.005 P(ak>Tk)=0.005
  • 为了将低分辨率单元的激活图与某些概念 c c c的输入分辨率注释掩码 L c L_{c} Lc进行比较,使用双线性插值将激活图从 A k ( X ) A_{k}(X) Ak(X)按比例放大到掩码分辨率 S k ( X ) S_{k}(X) Sk(X),将插值锚定在每个单元感受野的中心。

猜你喜欢

转载自blog.csdn.net/weixin_38072029/article/details/112675081