主要内容

gradcam揭示了Deep Learning决策背后的原因

这个例子展示了如何使用梯度加权类激活映射(grade - cam)技术来理解为什么深度学习网络会做出分类决策。Grad-CAM,由Selvaraju和合作者发明[1],使用分类评分相对于由网络确定的卷积特征的梯度,以理解图像的哪些部分对分类最重要。这个例子使用GoogLeNet预先训练的网络来处理图像。

grade -CAM是类激活映射(CAM)技术的推广。有关实时网络摄像头数据的激活映射技术,请参见使用类激活映射研究网络预测.grade - cam还可以应用于非分类示例,如回归或语义分割。有关如何使用gradcam来研究语义分割网络的预测的示例,请参见利用grado - cam研究语义分割网络

负载Pretrained网络

加载GoogLeNet网络。

网= googlenet;

图像的分类

阅读GoogLeNet的图像大小。

inputSize = net.Layers (1) .InputSize (1:2);

负载sherlock.jpg,本例中包含了一只金毛猎犬的图像。

img = imread (“sherlock.jpg”);

根据网络输入维度调整图像的大小。

img = imresize (img, inputSize);

对图像进行分类和显示,并对图像进行分类和分类评分。

[classfn,分数]=(净,img)进行分类;imshow (img);标题(sprintf (“% s (% .2f)”、classfn评分(classfn)));

GoogLeNet正确地将图片分类为金毛猎犬。但是为什么呢?图像的哪些特征导致网络进行这种分类?

Grad-CAM解释了为什么

梯度cam技术利用分类评分相对于最终卷积特征图的梯度,来识别输入图像中对分类评分影响最大的部分。梯度较大的地方正是最终得分最依赖于数据的地方。

gradCAM函数通过对给定类的约简层输出对卷积特征映射求导来计算重要性映射。对于分类任务,gradCAM函数自动选择合适的层来计算重要性图。属性也可以指定层“ReductionLayer”“FeatureLayer”名称-值参数。

计算grado - cam map。

地图= gradCAM(网,img, classfn);

在图像的顶部显示grado - cam地图“AlphaData”值为0.5。的“喷气机”颜色图以深蓝为最低值,深红为最高值。

imshow (img);持有;显示亮度图像(地图,“AlphaData”, 0.5);colormap飞机持有;标题(“Grad-CAM”);

显然,狗的上面部和耳朵对分类的影响最大。

关于研究深层网络分类原因的另一种方法,请参见occlusionSensitivityimageLIME

参考文献

[1] Selvaraju, R. R., M. Cogswell, A. Das, R. Vedantam, D. Parikh,和D. Batra。grado - cam:基于梯度定位的深度网络可视化解释。《计算机视觉与视觉》,2017年第3期。可以在Grad-CAM在计算机视觉基金会开放获取网站上。

另请参阅

||

相关的话题