主要内容

occlusionSensitivity

通过封锁输入来解释网络预测

描述

例子

scoreMap= occlusionSensitivity (X标签为指定的类计算分类分数变化的映射标签当部分输入数据时X都戴着面具。分类分数的变化是相对于没有遮挡的原始数据。遮挡掩码在输入数据中移动,为每个掩码位置提供分类分数的变化。使用遮挡灵敏度图来识别输入数据中对分类分数影响最大的部分。地图中具有较高正值的区域对应于输入数据中对指定分类标签有积极贡献的区域。网络中必须包含classificationLayer

activationMap= occlusionSensitivity (X通道当部分输入数据时,计算指定层和通道的总激活变化的映射X都戴着面具。激活分数的变化相对于没有遮挡的原始数据。地图中具有较高正值的区域对应于输入数据中对指定通道激活有积极贡献的区域,这些输入数据是通过对该通道的所有空间维度求和得到的。总激活实现了分类任务中类别分数的作用,并将遮挡敏感技术推广到非分类任务中。

使用此语法可计算非分类任务(如回归)的遮挡灵敏度映射,或用于包含自定义分类层的网络。

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

例子

全部折叠

导入预先训练好的网络GoogLeNet。

Net = googlenet;

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

X = imread(“sherlock.jpg”);inputSize = net.Layers(1).InputSize(1:2);X = imresize(X,inputSize);

显示图像。

imshow (X)

图中包含一个轴对象。axis对象包含一个image类型的对象。

对图像进行分类以获得类标签。

标签=分类(net,X)
标签=分类金毛猎犬

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

scoreMap = occlusionSensitivity(net,X,label);

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

图imshow(X)稍等显示亮度图像(scoreMap“AlphaData”, 0.5);colormap飞机

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

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

使用梯度类激活映射(Grad-CAM)技术也可以得到类似的结果。Grad-CAM使用分类分数相对于网络中最后一个卷积层的梯度,以了解图像的哪些部分对分类最重要。有关示例,请参见Grad-CAM揭示深度学习决策背后的原因

输入参数

全部折叠

训练过的网络,指定为SeriesNetwork对象或DAGNetwork对象。可以通过导入预训练的网络或使用trainNetwork函数。有关预训练网络的更多信息,请参见预训练的深度神经网络

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

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

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

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

如果你指定标签作为一个向量,软件独立计算每个类别标签的分类分数变化。这样的话,scoreMap(:,:,我)的遮挡灵敏度映射第Th元素标签

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

用于计算激活变化的层,指定为字符向量或字符串标量。指定作为层的名称你想计算激活量的变化。

数据类型:字符|字符串

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

如果通道指定为向量时,则独立计算每个指定通道的总激活量的变化。这样的话,activationMap(:,:,我)的遮挡灵敏度映射第Th元素通道

该函数计算由于遮挡引起的总激活的变化。总激活是通过该通道激活的所有空间维度的总和来计算的。遮挡敏感性图对应的是原始数据无遮挡时的总激活量与被遮挡数据的总激活量之间的差异。图中具有较高正值的区域对应于输入数据中对指定通道激活有积极贡献的区域。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:“MaskSize”,75年,“OutputUpsampling”,“最近”在每边使用大小为75像素的闭塞掩模,并使用最近邻插值将输出上采样到与输入数据相同的大小

遮挡掩模的大小,指定为由逗号分隔的对组成“MaskSize”下面是其中之一。

  • “汽车”-使用输入大小的20%的掩码大小,四舍五入到最接近的整数。

  • 一个这样的向量[w h]-使用有高度的矩形口罩h和宽度w

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

例子:“MaskSize”,[50 60]

跨输入数据遍历掩码的步长,指定为逗号分隔的对,由“步”下面是其中之一。

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

  • 一个这样的向量[b]-使用的垂直步幅一个和一个水平的步幅b

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

例子:“步”,30岁

被遮挡区域的替换值,指定为由逗号分隔的对组成“MaskValue”下面是其中之一。

  • “汽车”-用输入数据的通道平均值替换被遮挡的像素。

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

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

例子:“MaskValue”,0.5

输出上采样方法,指定为由逗号分隔的对组成“OutputUpsampling”下面是其中之一。

  • “双三次的”-使用双三次插值生成与输入数据相同大小的平滑地图。

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

  • “没有”-不使用上采样。映射可以小于输入数据。

如果“OutputUpsampling”“双三次的”“最近的”方法将计算的映射上采样到输入数据的大小imresize函数。

例子:“OutputUpsampling”,“最近”

边缘处理的遮挡蒙版,指定为由逗号分隔的对组成“MaskClipping”下面是其中之一。

  • “上”—将第一个掩码的中心放置在输入数据的左上角。数据边缘的掩码不是全尺寸的。

  • “关闭”—将第一个掩码的左上角放在输入数据的左上角。口罩总是全尺寸的。的值MaskSize而且选项意味着某些掩码超出了数据的边界,这些掩码将被排除。

对于非图像输入数据,您可以使用该选项确保始终阻塞相同数量的输入数据“MaskClipping”,“关闭”.例如,对于单词嵌入数据,您可以确保在每个点上遮挡的单词数量相同。

例子:“MaskClipping”,“关闭”

用于计算分类分数变化图的小批的大小,指定为逗号分隔的对,由“MiniBatchSize”一个正整数。

当掩码在输入图像上移动时,迷你批处理是遮挡图像集的子集。所有遮挡图像用于计算地图;小批处理决定了一次传递到网络的图像数量。更大的迷你批处理大小导致更快的计算,但代价是更多的内存。

例子:“MiniBatchSize”,256年

用于计算映射的硬件资源,指定为逗号分隔的对,由“ExecutionEnvironment”下面是其中之一。

  • “汽车”—如果有图形处理器,请使用图形处理器。否则请使用CPU。

  • “cpu”—使用CPU。

  • “图形”—使用GPU。

GPU选项需要并行计算工具箱™。要使用GPU进行深度学习,还必须有支持GPU的设备。金宝app有关受支持设备的信息,请参见金宝appGPU支金宝app持版本(并行计算工具箱)如果你选择“ExecutionEnvironment”、“gpu的选项和并行计算工具箱或合适的GPU不可用,则软件返回一个错误。

例子:“ExecutionEnvironment”、“gpu的

输出参数

全部折叠

分类分数变化图,以数字矩阵或数字数组形式返回。分类分数的变化是相对于没有遮挡的原始输入数据计算的。地图中具有较高正值的区域对应于输入数据中对指定分类标签有积极贡献的区域。

如果标签指定为向量时,将独立计算每个类别标签的分类分数变化。这样的话,scoreMap(:,:,我)的遮挡灵敏度映射第Th元素标签

总激活变化的映射,以数值矩阵或数值数组形式返回。

该函数计算由于遮挡引起的总激活的变化。总激活是通过该通道激活的所有空间维度的总和来计算的。遮挡敏感性图对应的是原始数据无遮挡时的总激活量与被遮挡数据的总激活量之间的差异。图中具有较高正值的区域对应于输入数据中对指定通道激活有积极贡献的区域。

如果渠道指定为向量时,则独立计算每个指定通道的总激活量的变化。这样的话,activationMap(:,:,我)的遮挡灵敏度映射第Th元素通道

版本历史

R2019b引入