主要内容

Grad-Cam揭示为什么深入学习决策

此示例显示如何使用梯度加权类激活映射(Grad-Cam)技术来理解为什么深度学习网络使其分类决策。Grad-Cam,由Selvaraju和Coauthings发明[1],使用对由网络确定的卷积特征的分类得分的梯度,以便理解图像的哪些部分对分类最重要。此示例使用Googlenet PretRims网络进行图像。

Grad-Cam是类激活映射(CAM)技术的概括。对于Live WebCAM数据上的激活映射技术,请参阅使用类激活映射调查网络预测。GRAC-CAM也可以应用于非分类示例,例如回归或语义分割。有关展示如何使用Grad-Cam来调查语义分段网络的预测的示例,请参阅使用Grad-Cam探索语义分割网络

负载净化网络

加载googlenet网络。

net = googlenet;

分类图像

读取googlenet映像大小。

InputSize = Net.Layers(1).InputSize(1:2);

加载sherlock.jpg.。,这个例子包括金毛猎犬的图像。

img = imread(“sherlock.jpg”);

将图像的大小调整为网络输入维度。

IMG = IMResize(IMG,INPUTSIZE);

分类图像并显示其分类和分类分数。

[classfn,score] =分类(net,img);imshow(img);标题(Sprintf(“%s(%.2f)”,classfn,分数(classfn)));

googlenet正确将图像分类为金毛猎犬。但为什么?图像的特征是导致网络进行此分类?

Grad-Cam解释了原因

GRAC-CAM技术利用相对于最终卷积特征图的分类评分的梯度,以识别大多数影响分类评分的输入图像的部分。这种渐变大的地方正是最终得分在数据上取决于最终分数的地方。

毕业生功能通过针对卷积特征映射取得给定类的减速层输出的衍生来计算重要性图。用于分类任务,毕业生功能自动选择合适的图层以计算重要性映射。您还可以使用该层指定图层'Reganslayer''featulexayer'名称值参数。

计算Grad-Cam Map。

地图= GradCam(Net,IMG,ClassFN);

通过使用使用A的顶部显示渐变凸轮映射'alphadata'值0.5。这'喷射'Colormap具有深蓝色,作为最低的值和深红色。

imshow(img);抓住;图像(地图,'alphadata',0.5);COLOROMAP.喷射抓住离开;标题(“Grad-Cam”);

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

对于调查深度网络分类的原因的不同方法,见咬合敏感性ImageLime.

参考

[1] Selvaraju,R. R.,M. Cogswell,A. Das,R. Vedantam,D. Parikh和D. Batra。“Grad-CAM:通过基于梯度的本地化的深网络视觉解释。“在IEEE计算机愿景(ICCV)的国际会议中,2017年,第618-626页。可用Grad-Cam在电脑Vision Foundation Open Access网站上。

也可以看看

||

相关话题