主要内容

Grad-CAM 揭示深度学习决策背后的原因

R2026b

此示例说明如何使用梯度加权类激活映射 (Grad-CAM) 技术来理解深度学习网络做出相应分类决策的原因。Grad-CAM 由 Selvaraju 及其合著者提出 [1],该技术利用分类得分相对于网络确定的卷积特征的梯度,来理解图像中哪些部分对分类最为重要。此示例使用适用于图像的 GoogLeNet 预训练网络。

Grad-CAM 是类激活映射 (CAM) 技术的推广。如需了解基于实时网络摄像头数据的激活映射技术,请参阅使用类激活映射调查网络预测。Grad-CAM 还可以应用于非分类示例,例如回归或语义分割。有关说明如何使用 Grad-CAM 来调查语义分割网络的预测的示例,请参阅Explore Semantic Segmentation Network Using Grad-CAM。

加载预训练网络

加载 GoogLeNet 网络。

[net,classNames] = imagePretrainedNetwork("googlenet");

对图像进行分类

读取 GoogLeNet 图像大小。

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

加载 sherlock.jpg,这是此示例中包含的一张金毛寻回犬图像。

img = imread("sherlock.jpg");

将图像大小调整为网络输入尺寸。

img = imresize(img,inputSize);

对于单个观测值输入,请使用 predict 函数进行预测。要使用 GPU 进行预测,请先将数据转换为 gpuArray。在 GPU 上进行预测需要 Parallel Computing Toolbox™ 许可证和受支持的 GPU 设备。有关受支持设备的信息,请参阅GPU 计算要求 (Parallel Computing Toolbox)。

if canUseGPU
    X = gpuArray(img);
end

scores = predict(net,single(img));
Y = scores2label(scores,classNames);

imshow(img);
title(Y);

Figure contains an axes object. The axes object with title golden retriever contains an object of type image.

GoogLeNet 正确地将图像分类为金毛寻回犬。但背后原因是什么?图像中的哪些特征使网络做出了这一分类?

Grad-CAM 解释原因

Grad-CAM 技术利用分类得分相对于最终卷积特征图的梯度,来识别输入图像中对分类得分影响最大的部分。此梯度较大的位置就是最终得分对数据依赖程度最大的位置。

gradCAM 函数通过求给定类的归约层输出相对于卷积特征图的导数,来计算重要性图。对于分类任务,gradCAM 函数会自动选择合适的层来计算重要性图。您还可以使用 'ReductionLayer' 和 'FeatureLayer' 名称-值参量来指定层。

计算 Grad-CAM 图。

channel = find(Y == categorical(classNames));
map = gradCAM(net,img,channel);

通过使用 'AlphaData' 值 0.5,在图像上叠加显示 Grad-CAM 图。在 'jet' 颜色图中,最低值为深蓝色,最高值为深红色。

imshow(img);
hold on;
imagesc(map,'AlphaData',0.5);
colormap jet
hold off;
title("Grad-CAM");

Figure contains an axes object. The axes object with title Grad-CAM contains 2 objects of type image.

可以清楚地看出,狗的上脸部和耳朵对分类的影响最大。

有关调查深度网络分类原因的另一种方法,请参阅occlusionSensitivity和imageLIME。

参考资料

[1] Selvaraju, R. R., M. Cogswell, A. Das, R. Vedantam, D. Parikh, and D. Batra."Grad-CAM:Visual Explanations from Deep Networks via Gradient-Based Localization."In IEEE International Conference on Computer Vision (ICCV), 2017, pp. 618–626.该文献可在 Computer Vision Foundation Open Access 网站上的 Grad-CAM 下查阅。

另请参阅

| | |

主题