主要内容

理解使用LIME进行网络预测

这个例子展示了如何使用局部可解释模型不可知解释(LIME)来理解深层神经网络做出分类决策的原因。

深层神经网络非常复杂,它们的决定很难解释。石灰技术使用更简单、更易解释的模型(如回归树)来近似深层神经网络的分类行为。解释这个简单模型的决策可以深入了解神经网络的决策[1]。简单模型用于确定输入数据特征的重要性,作为深度神经网络特征重要性的代理。

当某一特征对深度网络的分类决策非常重要时,删除该特征会显著影响分类分数。因此,该特征对简单模型也很重要。

深度学习工具箱提供映象石灰函数来计算由LIME技术确定的特征重要性的地图。图像的LIME算法通过:

  • 将图像分割为特征。

  • 通过随机包含或排除特征生成许多合成图像。排除的特征将每个像素替换为图像平均值,因此它们不再包含对网络有用的信息。

  • 利用深度网络对合成图像进行分类。

  • 拟合一个简单的回归模型,使用每个合成图像的图像特征的存在或不存在作为目标类分数的二元回归预测值。该模型近似于观察区域内复杂的深层神经网络的行为。

  • 使用简单模型计算特征的重要性,并将该特征的重要性转换为地图,以表明图像中对模型最重要的部分。

您可以将LIME技术与其他可解释性技术(如遮挡灵敏度或grado - cam)的结果进行比较。有关如何使用这些相关技术的示例,请参见下面的示例。

加载预训练的网络和图像

加载预训练网络GoogLeNet。

网= googlenet;

提取网络的图像输入大小和输出类别。

inputSize = net.Layers (1) .InputSize (1:2);类= net.Layers . class(结束);

加载图像。该图像是名为Sherlock的检索器的图像。请将图像大小调整为网络输入大小。

img = imread (“sherlock.jpg”);img = imresize (img, inputSize);

对图像进行分类,并在图像标题中显示分类分数最高的三个类别。

[YPred,分数]=(净,img)进行分类;[~,topIdx] = maxk(scores, 3);topScores =分数(topIdx);topClasses =类(topIdx);imshow(img) title = compose(“% s (% .2f)”,TopClass,TopCores');标题(sprintf)加入(标题串,"; ")));

GoogLeNet将夏洛克归类为金毛猎犬.可以理解的是,网络也把高概率分配给了拉布拉多寻回犬类。您可以使用映象石灰了解网络用于做出这些分类决策的图像的哪些部分。

识别网络用于分类的图像区域

您可以使用LIME找出图像的哪些部分对类很重要。首先,看一下预测的金毛猎犬. 图片的哪些部分暗示了这门课?

默认情况下,映象石灰通过将图像分割成超像素来识别输入图像中的特征。这种分割方法需要图像处理工具箱;但是,如果您没有“图像处理工具箱”,则可以使用该选项“分段”、“网格”将图像分割为方形特征。

使用映象石灰函数映射不同超级像素特征的重要性。默认情况下,简单模型是回归树。

map=imageLIME(净、img、YPred);

显示覆盖石灰贴图的夏洛克图像。

图imshow(img,“InitialMagnification”, 150)在…上显示亮度图像(地图,“AlphaData”, 0.5) colormap喷气式飞机色条标题(sprintf)(”的形象石灰(% s)”,...YPred)举行

这些地图显示了图像的哪些区域对图像分类很重要金毛猎犬.地图上的红色区域有更高的重要性-当这些区域被移除,得分为金毛猎犬课程下降。网络关注于狗的脸和耳朵来预测金毛寻回犬。这与其他可解释性技术(如遮挡敏感度或梯度摄像头)是一致的。

与其他类的结果进行比较

GoogLeNet预测,该项目的得分为55%金毛猎犬40%的学生拉布拉多寻回犬类。这些类非常相似。您可以通过比较为每个类计算的LIME地图来确定狗的哪些部分对两个类更重要。

使用相同的设置,计算模型的石灰贴图拉布拉多寻回犬类。

secondClass = topClasses (2);地图= imageLIME(网,img, secondClass);图;imshow (img,“InitialMagnification”, 150)在…上显示亮度图像(地图,“AlphaData”, 0.5) colormap喷气式飞机色条标题(sprintf)(”的形象石灰(% s)”二等舱

拉布拉多寻回犬在课堂上,网络更关注于狗的鼻子和眼睛,而不是耳朵。虽然这两张地图都突出了狗的前额,但网络已经确定狗的耳朵和脖子表示前额金毛猎犬类,而狗的眼睛和鼻子表示拉布拉多寻回犬类。

比较石灰和梯度凸轮

其他图像可解释性技术,如Grad CAM向上采样生成的贴图,以生成图像重要区域的平滑热图映象石灰,通过计算正方形或矩形特征的重要性,并对得到的地图进行上采样。

将图像分割成正方形特征网格而不是不规则的超像素,使用“分段”、“网格”名称-值对。通过设置,使用双三次插值对计算出的贴图进行上采样以匹配图像分辨率“OutputUpsampling”、“双三次的“

要增加最初计算的地图的分辨率,可以通过指定“NumFeatures”,100名称-值对。由于图像是方形的,因此会生成10×10的特征网格。

LIME技术通过随机选择一些特征并用平均图像像素替换这些特征中的所有像素,在原始观察的基础上生成合成图像,有效地去除了该特征。通过设置“NumSamples”,6000。当您增加特征数量时,增加样本数量通常会获得更好的结果。

默认情况下,映象石灰函数使用回归树作为其简单模型。相反,通过设置“模型”、“线性”

地图= imageLIME (img,净“金毛猎犬”,...“细分”,“网格”,...“OutputUpsampling”,“双三次”,...“NumFeatures”,100,...“NumSamples”,6000,...“模型”,“线性”); imshow(img,“InitialMagnification”,150)保持在…上显示亮度图像(地图,“AlphaData”, 0.5) colormap喷气式飞机头衔(斯普林特)("图像LIME (%s -线性模型)",...YPred)举行

与gradc - cam计算的梯度图类似,LIME技术也能很好地识别出狗的耳朵对预测的重要性金毛猎犬

仅显示最重要的功能

石灰结果通常通过仅显示最重要的几个特征来绘制映象石灰函数,还可以获取计算中使用的特征的映射以及每个特征的计算重要性。使用这些结果确定四个最重要的超级像素特征,并仅显示图像中四个最重要的特征。

计算石灰图,获得特征图和每个特征的计算重要性。

[map,featureMap,featureImportance]=ImageLame(净、img、YPred);

找到前四个特性的索引。

numTopFeatures=4;[~,idx]=maxk(feature重要性,numTopFeatures);

接下来,使用LIME地图遮罩图像,这样只有最重要的四个超像素的像素是可见的。显示蒙面图像。

掩码= ismember (featureMap idx);maskedImg = uint8(面具)。* img;图imshow (maskedImg);头衔(斯普林特)("Image LIME (%s - top %i feature)",...YPred, numTopFeatures))

工具书类

[1] Ribeiro, Marco Tulio, Sameer Singh,和Carlos Guestrin。“‘我为什么要相信你?’:解释任何分类器的预测。”在第22届ACM SIGKDD国际知识发现和数据挖掘会议论文集, 1135 - 44。美国加州旧金山:ACM, 2016。https://doi.org/10.1145/2939672.2939778。

另见

||||

相关话题