MATLAB应用之深度学习网络到底在看哪里?
你有没有想过,你经常使用的深度学习网络在看图像的什么部分进行分类?
例如下图:
如果深度学习网络将此图像分类为"圆号",你认为图片的哪个部分对分类最重要?
我们使用预训练好的 ResNet-50 网络进行此实验。
He, Kaiming, Zhang, Xiangyu, Ren, Shaoqing, Sun, Jian. "Deep Residual Learning for Image Recognition." In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 770-778. 2016
获取 MATLAB 中 ResNet-50 网络的方法是启动 Add-On Explorer并搜索 resnet。 net = resnet50;
我们需要注意 ResNet-50 需要输入特定尺寸的图像。网络的初始层提供了这一信息: sz = net.Layers(1).InputSize(1:2)sz = 224 224
所需的图像尺寸可以直接传递给 imresize 函数。 rgb = imread(url); rgb = imresize(rgb,sz); imshow(rgb)
在网络中调用 classify ,查看图片可能的分类: classify(net,rgb)ans = categorical French horn
ResNet-50 认为这是圆号。
Birju 在一篇关于卷积神经网络可视化技术的论文中,了解到遮挡敏感性的概念。如果阻挡或遮挡图像的一部分,将如何影响网络的预测得分?遮挡不同的部分又将如何影响结果?
Birju 做了如下尝试: rgb2 = rgb; rgb2((1:71)+77,(1:71)+108,:) = 128; imshow(rgb2)
classify(net,rgb2)ans = categorical notebook
Hmm...估计网络"认为"灰色方块看起来像笔记本。被遮挡的区域对于图像分类来说应该很重要。再试试不同的遮挡位置: rgb3 = rgb;rgb3((1:71)+15,(1:71)+80,:) = 128;imshow(rgb3)
classify(net,rgb3)ans = categorical French horn
好吧,脑袋并不重要。
Birju 编写了一些 MATLAB 代码来系统地量化不同图像区域对分类结果的相对重要性。他使用 MATLAB 构建了大量图像,并对遮挡不同区域的图像进行批处理。对于遮挡的不同位置,记录预期类(本例为"法国号")的概率得分。
我们制作一批带有 71x71 遮挡区域的图像。首先计算所有遮挡模块的顶点,用 (X1,Y1) 和 (X2,Y2) 表示。
mask_size = [71 71];[H,W,~] = size(rgb);X = 1:W;Y = 1:H;[X1, Y1] = meshgrid(X, Y);X1 = X1(:) - (mask_size(2)-1)/2;Y1 = Y1(:) - (mask_size(1)-1)/2;X2 = X1 + mask_size(2) - 1;Y2 = Y1 + mask_size(1) - 1;
注意不要让遮挡区域的顶点偏离图像边界。 X1 = max(1, X1); Y1 = max(1, Y1); X2 = min(W, X2); Y2 = min(H, Y2);
批处理: batch = repmat(rgb,[1 1 1 size(X1,1)]); for i = 1:size(X1,1) c = X1(i):X2(i); r = Y1(i):Y2(i); batch(r,c,:,i) = 128; % gray mask. end
注意:这一批包含 50,000 多张图像。你需要大量的 RAM 才能同时创建和处理如此大量的图像。
这里有一些遮挡的图像:
现在,我们将使用 predict(而不是 classify)来获取每个图像在每个类别中的预测分数。MiniBatchSize 参数是用来限制 GPU 内存的使用,意味着 predict 函数将一次发送 64 个图像到 GPU 进行处理。 s = predict(net, batch, "MiniBatchSize",64);size(s)ans = 50176 1000
我们获得了很多的概率得分!其中 51,529 个图像,共有 1,000 个类别。矩阵 s 具有每个类别和每个图像的预测分数。
我们重点关注预测原始图像类别的预测分数: scores = predict(net,rgb); [~,horn_idx] = max(scores);
这里是每一个圆号类别中的图像预测分数: s_horn = s(:,horn_idx);
将圆号类别的分数转换为图像显示: S_horn = reshape(s_horn,H,W); imshow(-S_horn,[]) colormap(gca,"parula")
最亮的区域表示遮挡对概率得分影响最大的遮挡区间。
下面我们找到了最影响圆号概率得分的遮挡位置: [min_score,min_idx] = min(s_horn); rgb_min_score = batch(:,:,:,min_idx); imshow(rgb_min_score)
结果可见,识别圆号的关键在于螺旋形管身和阀键,而不是号嘴。
面包多代码
https://mbd.pub/o/GeBENHAGEN
此外,知乎付费咨询:哥廷根数学学派
擅长现代信号处理(改进小波分析系列,改进变分模态分解,改进经验小波变换,改进辛几何模态分解等等),改进机器学习,改进深度学习,机械故障诊断,改进时间序列分析(金融信号,心电信号,振动信号等)
台州这座城市的前途如何?台州其实有着不错的地理位置,有着较好的发展前景,目前也存着着很大的不足首先,台州靠海,也有不错的港口位置,目前也正在投入港口建设,也可通过港口来促进贸易的发展,从而提升经济实力。其
如何看待全军出击游戏热度下滑到不足刺激战场的五分之一?全军的人气确实没有刺激高,个人觉得造成这一现象的原因主要是游戏刚上线那会,全军不管是画面还是手感都比不了刺激。另外刺激战场的风格相比全军更贴近于端游,很多玩吃鸡手游的玩家,都是为了
4岁孩子即将入园,宝妈你是觉得终于松口气了还是会独自抹眼泪?4岁才进幼儿园的确实比较少见了,绝大多数孩子一般都是3岁入读幼儿园小班,3年以后升小学,现在很多家长工作很忙,所以相当多的私立幼儿园和幼托机构开设了小小班,接收2岁以上的孩子入托全
扫黑风暴里你觉得孙红雷的演技怎样?最近,孙红雷大哥又出演了电视节目,备受大家的关注,说起孙红雷,大家都不陌生了,曾经的孙红雷可以说是非常的励志,并且为我们塑造了很多的经典人物,受到了无数好评,其中最值得一提的就是孙
哪位足球球员的衰退程度最令你感到意外?为什么?看到大家都提到了很多大牌球星或者是天才,我只来说一位知名度不是很高的球员吧。不知道有多少球迷朋友还能记得这个瘦瘦高高,面容清秀的西班牙人。米盖尔佩雷斯库埃斯塔(MiguelPere
郎平走了,我们的女排还有希望吗?朗平走了,中国的女排照样前进,还是世界强队。请不要个人崇拜,个人的能力总是有限的。在史历的长河中,个人就像大河滩游一粒沙子,也像天上的一个星星,有你不多,无你不少。没有你,地球照样
新赛季雄鹿有多大可能性卫冕冠军?先来看看NBA新赛季博彩网站给几支强队开出的夺冠赔率第一名篮网,1赔2。6第二名湖人,1赔3。25第三名雄鹿,1赔9。0第四名勇士,1赔12。0可以看到明年冠军大热门依然是篮网和湖
国足03输给澳大利亚,前锋为啥不用阿兰和洛国富?李铁不愿意,今天撤下了韦世豪,董路给想了一大堆理由,赢球了就是神仙,输球找喷也难免许多人觉得中国球迷难缠,事实上是误解,你赢球了被捧杀,输球了被骂也很正常,事实上各国的球迷都是这样
什么时候买羽绒服比较合适?什么时候买羽绒服最便宜最合适?服装店老板说漏嘴,这3个月份便宜一半,什么时候买羽绒服最便宜?服装店老板透露,这3个月份买最省钱小的时候我们一到冬天,自己身上总是穿的厚厚的,很暖和。
你用过哪些5000元以内,日差在三秒以内的机械表?导读1万以内的腕表误差3秒这不现实,百达翡丽PP和劳力士这样专注精准度的腕表品牌日误差只能达到2秒,天文台认证的腕表一般在4秒以内,所以严谨的说五千元的腕表达到日误差3秒是非常困难
大家都知道武汉由三大镇武昌汉口汉阳组成,那么这三个镇哪个发展潜力更大呢?武昌因为涵盖了泛光谷区域,近年来一直在高速增长,未来会有一个比较持续的成长。汉口的发展,必须向金融中心商业中心发展,以武汉的区域位置,如果整个城市能持续高速发展,这个金融中心的地位