主要内容

occlusionSensitivity

通过遮挡输入来解释网络预测

描述

例子

太纪念碑= occlusionSensitivity (,X,标签为指定的类计算分类分数变化的地图标签当部分输入数据时X用面具堵塞。分类评分的变化相对于未闭塞的原始数据。封闭掩码在输入数据上移动,为每个掩码位置的分类分数进行更改。使用遮挡图来识别输入数据的部分,这些数据大部分影响分类分数。具有较高正值的地图中的区域对应于对指定分类标签贡献的输入数据区域。网络必须包含一个softmaxLayer紧随其后的是一个分类层

activationMap= occlusionSensitivity (,X,,通道计算输入数据的部分时,计算指定图层和通道的总激活的变化的映射X用面具堵塞。激活分数的变化是相对于没有闭塞的原始数据。具有较高正值的地图中的区域对应于通过对该频道的所有空间维度进行求和而获得的输入数据区域积极贡献。

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

例子

全部折叠

导入经过训练的网络GoogLeNet。

net = googlenet;

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

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

显示图像。

imshow (X)

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

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

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

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

scoreMap = occlusionSensitivity(净,X,标签);

绘制原始图像的结果,具有透明度,以查看图像的哪个区域会影响分类分数。

图imshow(x)持有ImageC(ScoreMap,'alphadata', 0.5);colormap喷射

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

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

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

输入参数

全部折叠

训练有素的网络,指定为aSeriesNetwork对象或A.Dagnetwork.对象。您可以通过导入预先训练过的网络或通过使用trainNetwork函数。有关佩带网络的更多信息,请参阅普里德深度神经网络

必须包含单个输入层。输入层必须是imageInputlayer.

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

数据类型:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32.|UINT64

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

如果您指定标签作为矢量,软件独立计算每个类别标签的分类评分变化。在这种情况下,scoreMap(:,:,我)对应的遮挡映射th元素标签

数据类型:字符|细绳|分类

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

数据类型:字符|细绳

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

如果通道指定为向量,则独立计算每个指定通道的总激活量的变化。在这种情况下,ActivationMap(:,:,i)对应的遮挡映射th元素通道

该函数计算由于闭塞而引起的总激活的变化。总的激活是通过对通道激活的所有空间维度的求和来计算的。遮挡图对应于未遮挡的原始数据的总激活量与被遮挡数据的总激活量之间的差异。图中具有较高正值的区域对应于输入数据区域,这些区域对指定的通道激活有正贡献。

数据类型:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32.|UINT64

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。姓名参数名和价值是相应的价值。姓名必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“MaskSize”,75年,“OutputUpsampling”,“最近”每侧使用具有大小75像素的遮挡掩模,并使用最近的邻插值将输出上置与输入数据相同的大小

闭塞掩模的大小,指定为逗号分隔对,由'masksize'下面是其中之一。

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

  • 这种形式的向量[H W]-使用有高度的矩形遮罩h和宽度w

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

例子:“MaskSize”,[50 60]

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

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

  • 这种形式的向量[A B]-使用垂直步幅一个一个水平的步幅b

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

例子:“步”,30岁

封闭区域的替换价值,指定为逗号分隔的配对“MaskValue”下面是其中之一。

  • “汽车”-用输入数据的信道均值替换闭塞像素。

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

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

例子:'maskvalue',0.5

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

  • 'bicubic'—使用双三次插值生成与输入数据大小相同的平滑映射。

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

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

如果“OutputUpsampling”'bicubic'或者“最近的”,将计算的映射上采样到输入数据的大小imresize函数。

例子:“OutputUpsampling”,“最近”

封闭掩模的边缘处理,指定为逗号分隔对,由“MaskClipping”下面是其中之一。

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

  • “关闭”- 将第一个面罩的左上角放在输入数据的左上角。面具总是全尺寸。如果是值的MaskSize步行选项意味着一些掩模延长了数据的边界,这些掩码被排除在外。

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

例子:“MaskClipping”,“关闭”

用于计算分类评分变化图的迷你批的大小,指定为逗号分隔对组成'minibatchsize'一个正整数。

当蒙版在输入图像上移动时,迷你批处理是闭塞图像集的子集。所有被遮挡的图像被用来计算地图;迷你批处理确定一次传递到网络的映像数量。更大的小批处理会导致更快的计算,但代价是更多的内存。

例子:“MiniBatchSize”,256年

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

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

  • '中央处理器'—使用CPU。

  • “图形”—使用GPU。

GPU选项需要并行计算工具箱™。要使用GPU进行深度学习,您还必须有支持的GPU设备。金宝app有关支持的设备的信息,请参见金宝appGPU支金宝app持情况(并行计算工具箱)如果你选择'executionenvironment','gpu'选项和并行计算工具箱或合适的GPU不可用,然后软件返回错误。

例子:'executionenvironment','gpu'

输出参数

全部折叠

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

如果标签指定为向量,则独立计算每个类别标签的分类评分变化。在这种情况下,scoreMap(:,:,我)对应的遮挡映射th元素标签

总激活的变化映射,返回为数字矩阵或数字数组。

该函数计算由于闭塞而引起的总激活的变化。总的激活是通过对通道激活的所有空间维度的求和来计算的。遮挡图对应于未遮挡的原始数据的总激活量与被遮挡数据的总激活量之间的差异。图中具有较高正值的区域对应于输入数据区域,这些区域对指定的通道激活有正贡献。

如果渠道指定为向量,则独立计算每个指定通道的总激活量的变化。在这种情况下,ActivationMap(:,:,i)对应的遮挡映射th元素通道

介绍了R2019b