主要内容

occlusionSensitivity

通过屏蔽输入来解释网络预测

描述

例子

scoreMap= occlusionsentivity(X标签计算所指定的类的分类分数的变化的地图标签当部分输入数据X用面具遮挡。分类评分的变化相对于没有遮挡的原始数据。遮挡的遮罩在输入数据之间移动,为每个遮罩位置提供一个分类评分变化。使用遮挡图来识别输入数据中对分类评分影响最大的部分。地图中正数值较高的区域对应于输入数据中对指定分类标签有正贡献的区域。网络必须包含一个softmaxlayer.其次是A.classificationLayer

ActivationMap.= occlusionsentivity(X渠道计算指定层和通道在部分输入数据时的总激活变化的映射X用面具遮挡。激活评分的变化相对于没有遮挡的原始数据。图中具有较高正值的区域对应于输入数据区域,这些区域对指定的通道激活有正贡献,通过对该通道的所有空间维度进行求和获得。

___= occlusionsentivity(___名称,价值除了前面语法中的输入参数外,还使用一个或多个名称-值对参数指定选项。例如,“步”,50岁将遮挡掩模的步幅设置为50像素。

例子

全部收缩

导入佩带的网络googlenet。

网= googlenet;

导入图像并调整大小以匹配网络的输入大小。

x = imread(“sherlock.jpg”);InputSize = Net.Layers(1).InputSize(1:2);x = imresize(x,输入);

显示图像。

imshow(x)

图中包含一个坐标轴。轴包含类型图像的对象。

将图像分类以获取类标签。

标签=分类(NET,x)
标签=分类金毛猎犬

使用occlusionSensitivity确定图像的哪些部分积极影响分类结果。

scoremap = occlusionsity(net,x,标签);

在透明的原始图像上绘制结果,看看图像的哪些区域影响分类得分。

图imshow (X)显示亮度图像(scoreMap“AlphaData”,0.5);COLOROMAP.飞机

图中包含一个坐标轴。坐标轴包含2个image类型的对象。

地图的红色部分显示了对指定标签具有积极贡献的区域。狗的左眼和耳朵强烈影响网络的预测金毛猎犬

您可以使用梯度类激活映射(Grad-Cam)技术获得类似的结果。Grad-CAM使用分类得分的梯度相对于网络中的最后一个卷积层,以便理解图像的哪些部分对分类最重要。例如,看到Grad-Cam揭示为什么深入学习决策

输入参数

全部收缩

训练有素的网络,指定为系列网络对象或一个DAGNetwork目的。您可以通过导入预磨损的网络或使用您自己的网络使用培训的网络来获得培训的网络Trainnetwork.函数。有关预训练网络的更多信息,请参见预先训练的深度神经网络

必须包含单个输入层。输入层必须是一个imageInputLayer

观察闭塞,指定为数字数组。你可以一次计算一个观测的遮挡图。例如,指定单个图像以了解该图像的哪些部分影响分类结果。

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64

用于计算分类评分变化的类标签,指定为分类、字符数组或字符串数组。

如果您指定标签作为向量,软件独立地计算每个类标签的分类分数的变化。在这种情况下,Scoremap(:,:我)对应于遮挡图一世in标签

数据类型:char|字符串|分类

用于计算激活中的变化的层,指定为字符向量或字符串标量。指定作为图层的名称您要为其计算激活的更改。

数据类型:char|字符串

用于计算激活变化的通道,指定为标量或通道指数的向量。可能的选择渠道取决于所选层。例如,对于卷积层,NumFilters属性指定输出通道的数量。您可以使用分析检查网络,找出每一层的输出通道数量。

如果渠道被指定为向量,独立计算每个指定通道的总激活的变化。在这种情况下,activationMap(:,:,我)对应于遮挡图一世in渠道

该功能计算由于遮挡引起的总激活的变化。通过对该频道激活的所有空间维度进行求和来计算总激活。遮挡图对应于没有遮挡的原始数据的总激活与遮挡数据的总激活之间的差异。具有较高阳性值的地图中的区域对应于对指定信道激活贡献的输入数据区域。

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64

名称值对参数

指定可选的逗号分离对名称,价值论点。的名字是参数名称和价值为对应值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'masksize',75,'Outputups采样','最近'使用大小为75像素的遮罩,并使用最近邻插值将输出向上采样到与输入数据相同的大小

封闭掩码的大小,指定为逗号分隔对组成“MaskSize”以及以下之一。

  • '汽车'- 使用输入大小的20%的蒙版大小,舍入到最接近的整数。

  • 形式的矢量[w h]- 使用高度的矩形掩模H和宽度W.

  • 标量-使用高度和宽度等于指定值的方形掩码。

例子:'masksize',[50 60]

跨越输入数据遍历掩码的步长,指定为逗号分隔对'走吧'以及以下之一。

  • '汽车'- 使用10%的输入大小的步幅,舍入到最接近的整数。

  • 形式的矢量[b]- 使用垂直迈出一种和水平的跨步B.

  • 标量 - 在垂直和水平方向上使用指定值的步幅。

例子:'走吧',30

闭塞区域的替换值,指定为逗号分隔对组成'maskvalue'以及以下之一。

  • '汽车'- 用输入数据的通道方式替换遮挡像素。

  • 标量 - 用指定值替换遮挡像素。

  • 矢量 - 用针对每个通道指定的值替换遮挡像素。向量必须包含与图层的输出通道数相同数量的元素。

例子:“MaskValue”,0.5

输出上采样方法,指定为逗号分隔对组成'OutputupSampling'以及以下之一。

  • “双三次的”- 使用双向插值,产生平滑的映射与输入数据相同的尺寸。

  • '最近'- 使用最近的邻域插值将映射扩展到与输入数据相同的大小。该地图表示相对于输入数据的大小的遮挡计算分辨率。

  • '没有任何'- 使用没有上置采样。地图可以小于输入数据。

如果'OutputupSampling'“双三次的”'最近',计算的地图使用该映射到输入数据的大小imresize函数。

例子:'OutputupSampling','最近'

封闭掩模的边缘处理,指定为包括的逗号分隔对'massclipping'以及以下之一。

  • '在'- 将第一个遮罩的中心放在输入数据的左上角。数据边缘的掩码不是全尺寸。

  • '离开'—将第一个掩码的左上角放置在输入数据的左上角。面具总是全尺寸的。如果面具选项意味着一些遮罩超出了数据的边界,这些遮罩将被排除。

对于非图像输入数据,可以使用该选项确保始终遮挡相同数量的输入数据'mastclipping','关闭'。例如,对于Word Embeddings数据,您可以确保在每个点遮挡相同数量的单词。

例子:'mastclipping','关闭'

迷你批处理的大小用于计算分类分数的变化图,指定为逗号分隔的对组成“MiniBatchSize”和一个正整数。

迷你批处理是当屏蔽在输入图像上移动时的遮挡图像集的子集。所有遮挡图像都用于计算地图;mini-batch确定一次传递给网络的图像数。较大的小型批量尺寸导致更快的计算,以更高的内存成本。

例子:'minibatchsize',256

计算地图的硬件资源,指定为逗号分隔对'executionenvironment'以及以下之一。

  • '汽车'- 如果可用,请使用GPU。否则,使用CPU。

  • “cpu”- 使用CPU。

  • 'GPU'- 使用GPU。

GPU选项需要并行计算工具箱™。要使用GPU进行深度学习,您还必须具有支持的GPU设备。万博1manbetx有关支持设备的信息,请参阅万博1manbetxGPU通万博1manbetx过发布支持(并行计算工具箱)如果你选择了“ExecutionEnvironment”、“gpu的选项和并行计算工具箱或合适的GPU不可用,则软件返回错误。

例子:“ExecutionEnvironment”、“gpu的

输出参数

全部收缩

分类评分的更改映射,作为数字矩阵或数字数组返回。分类评分的变化是相对于原始输入数据计算而不闭塞。具有较高正值的地图中的区域对应于对指定分类标签贡献的输入数据区域。

如果标签被指定为向量,每个类标签的分类评分的变化是独立计算的。在这种情况下,Scoremap(:,:我)对应于遮挡图一世in标签

总激活更改的映射,以数字矩阵或数字数组的形式返回。

该功能计算由于遮挡引起的总激活的变化。通过对该频道激活的所有空间维度进行求和来计算总激活。遮挡图对应于没有遮挡的原始数据的总激活与遮挡数据的总激活之间的差异。具有较高阳性值的地图中的区域对应于对指定信道激活贡献的输入数据区域。

如果渠道被指定为向量,独立计算每个指定通道的总激活的变化。在这种情况下,activationMap(:,:,我)对应于遮挡图一世in渠道

在R2019B中介绍