主要内容

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

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

grade -CAM是类激活映射(CAM)技术的推广。有关实时网络摄像头数据的激活映射技术,请参见使用类激活映射调查网络预测。GRAC-CAM也可以应用于非分类示例,例如回归或语义分割。有关如何使用GRAC-CAM调查语义分段网络的预测的示例,请参阅使用Grad-Cam探索语义分割网络

负载Pretrained网络

加载googlenet网络。

net = googlenet;

分类图像

读取googlenet图像大小。

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

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

img = imread(“sherlock.jpg”);

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

img = imresize(img,输入);

对图像进行分类并显示它,以及其分类和分类分数。

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

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

Grad-Cam解释了原因

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

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

计算grado - cam map。

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

在图像的顶部显示grado - cam地图'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网站上。

也可以看看

|||

相关的话题