可解释深度学习:从感受野到深度学习的三大基本任务:图像分类,语义分割,目标检测,让你真正理解深度学习

这篇具有很好参考价值的文章主要介绍了可解释深度学习:从感受野到深度学习的三大基本任务:图像分类,语义分割,目标检测,让你真正理解深度学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

 文章来源地址https://www.toymoban.com/news/detail-786358.html

前言

一、初识感受野

1.1猜一猜他是什么?

1.2人眼视觉系统下的感受野

1.3深度神经网络中的感受野

1.3.1感受野的性质

1.3.2感受野的定义

1.3.3举一个例子

1.3.4以VGG网络为例

二、感受野的计算

2.1 哪些操作能够改变感受野?

2.2 感受野的计算公式

2.3 感受野的中心位置计算

2.4 感受野中心计算示例

三、有效感受野

3.1有效感受野的概念

3.2有效感受野的计算

3.3感受野每个位置的贡献度

3.4有效感受野为什么重要?

3.5感受野越大越好?

四、用感受野来解释深度学习的基本任务

4.1分类网络

4.1.1分类网络的发展

4.1.2 感受野如何影响分类网络(Resnet为例)

4.1.3感受野是不是越大越好

4.2检测网络

4.2.1检测网络的发展

4.2.2感受野如何影响检测网络

4.3分割网络

4.3.1分割网络的发展

4.3.2你如何设计分割网络

 


 

前言

深度学习一直作为一个“盲盒”被大家诟病,我们可以借助深度学习实现端到端的训练,简单,有效,但是我们并不了解神经网络的中间层到底在做什么,每一层卷积的关注点是什么。

我在之前的专题浅谈图像处理与深度学习中提到,我们在深度学习刚开始的时候,我们要实现一个任务,比如:把不清晰的图像变清晰,我们随意的搭建了三层网络,然后开始训练,发现效果比传统的图像处理方法好,而且简单有效,然后我们再随意的搭建四层网络,发现四层网络比三层网络效果还好,我们也许有一种感性的认识:随着网络层的增加,网络的参数的增加,网络能够学习到更多的特征。这个结论有一定道理,但是又不完全的有道理。

2015年,Resnet网络横空出世,该网络表明不断地堆叠网络,网络反而会出现“退化”的情况,我们我们可以从公式的角度来推断残差网络如何规避梯度消失,即使在梯度很小的时候,残差网络的反向传播也很难得到一个小的梯度(我们需要明白一个关键:神经网路参数的更新的原动力就是梯度,我们需要沿着梯度的负方向进行迭代,如果反向传播的时候没有梯度,那网络就会停止更新),所以,网络的层数并不是越多越好。

感受野告诉我们:网络层越深,感受野越大(具体的我们接下来讲)。

根据这三个个结论:1.网络并不是越深越好  2.网络越深,感受野越大 3.我们需要在精度和性能两个方面做平衡  根据这三个结论,我们也许就能设计出自己的神经网络!

本专题主要参考B站UP启释科技,该UP对感受野的研究已经出神入化!

一、初识感受野

1.1猜一猜他是什么?

 

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 从左往右,图片越来越大,我们人眼看到的信息越来越多,我们在看第一幅图像的时候,我们也许识别不出他是蝴蝶,随着图像的增大,也就是我们人眼的视野越来越大,我们人眼接触到的信息越来越多,我们能够逐渐分辨出它的类别。

1.2人眼视觉系统下的感受野

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

 “感受野”这个词一开始来源于人眼视觉系统,如上图所示(该图是摄像机拍摄的),我们人眼聚焦这幅图像的中心点位置,我们发现我们只能看清楚中心区域的物体,而边缘的物体是模糊的,人眼真实看到的图如下图所示。

 

 

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

1.当盯着某个点看,保持眼球不转动的前提下,此时只有该点区域是“清晰的”,而其他周围区域是模糊的。

2.只有不停转动眼球,才能连续看清不同的区域。

所以,我们总结了

人眼视觉系统感受野的三大特性

A.视野大

B.关注中心

C.周围模糊

1.3深度神经网络中的感受野

1.3.1感受野的性质

在深度卷积神经网络中,每个神经元节点都对应着输入图像的某个确定区域,仅该区域的图像内容能对应神经元的激活产生影响,那么这个区域称之为该神经元的感受野。

 

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 如上图所示:浅灰色为输入图像(下),深灰色为卷积之后的特诊图(上),深灰色(特征图)上红色点在浅灰色(输入图像)像上的感受野就如浅灰色上的黑色区域表示。也就是所,红色点能够“看到”黑色区域的大小,这个黑色区域称为红点的感受野,或者说,该黑色区域影响了红点的输出,其中黑色区域中心的白色区域表示对红点的输出起决定性作用,这也表明,神经网络中的节点也关注感受野的中心区域,或者说,神经网路对感受野的每个区域的关注程度是不同的。

1.3.2感受野的定义

A.越靠近感受野中心的区域越重要

这一点,和人眼的感受野特性一直。

B.各向同性

就是沿着中心对称的位置,感受野对神经元的输出的影响程度是相同的。

C.由中心向周围的重要性衰减速度可以通过网络结构控制

这一点比较难理解,但这一点也是最关键的,他是引出“有效感受野”的关键。我们知道,神经元节点最关注感受野的中心区域(也就是黑色区域中的白色区域),而中心区域的其他区域或许神经元节点也能够“看到”,但是,这部分区域对神经元的输出起不到什么作用,就像我们在一开始讲人眼视觉系统下的感受野的时候,我们也可以注意到中心区域外的模糊区域,但是我们很难通过这个模糊区域判断出物体类别。感受野由黑色区域(不重要区域)和白色区域(中心区域)组成,从白色区域到黑色区域的过程就叫重要性的衰减速度。感受野一样大的前提下,白色区域越大,衰减速度越慢,而重要性的衰减速度又可以通过网络结构来控制,也就是我们可以通过设计网络,来调整重要性的衰减速度!

1.3.3举一个例子

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 如上图所示,这一个以卷积过程,不是一个全连接,大家要注意。

我们有15个输入节点,通过四层卷积运算,得到最后5个输出节点,其中,中间的绿色节点的感受野为11(红色节点)。这里我提一个问题:绿色节点的感受野是11个红色节点,那这11个红色节点对绿色节点的输出的影响程度是一样的吗?

显然是不一样的,我们根据之前的结论,中间的节点对神经元的输出起决定性作用。那么,我们如何计算或者如何描述11个节点对绿色节点的重要程度?我们可以用边数来表示,边数就是卷积的次数,我们有理由相信,卷积次数越多,对神经元的影响越大。我们一次计算这11个节点到绿色节点的边数。

输入点重要程度定义为:影响后续卷积计算的次数

如上图:感受野大小为11(最后的绿色输出有11个红色输入决定),其中每个节点重要程度依次为(11个节点与绿色输出形成的边):5-13-24-31-36-37(中间)-36-31-24-13-5。

通过重要程度的计算,我们也可以进一步验证感受野的几个特性,中间节点确实是最重要的,中间对称的位置的重要程度确实是一样的!

1.3.4以VGG网络为例

如右图所示,我们输入图像的大小为224x224,VGG13的感受野为348x348......

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 A.以VGG13(B)/VGG16(D)/VGG19(E)为例,计算分类前一层的神经元感受野大小。

B.分类准确率:VGG16要明显好于VGG13,而VGG19只是比VGG16高一点。

 

 这里我提两个问题

1.VGG13-19的感受野的大小都要大于输入图像(224x224),为什么?

神经网络的感受野和人眼一样,我们刚刚提到,我们一看到图像的部分信息的时候(如下图),我们很难判断他是什么,神经网络也是,我们要准确的判断图像的物体的时候,我们是不是要观察整幅图像?我们通过局部信息就来判断物体始终是不准确的。所以,神经网络的感受野起码要大于原图。

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

2.感受野是不是越大越好?

对于这个问题,等介绍了有效感受野之后再解释。

二、感受野的计算

2.1 哪些操作能够改变感受野?

A.卷积

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

B.反卷积

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

C.空洞卷积

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

D.池化

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

上面几个操作很好理解,下面两个操作我认为是容易被忽略的:

E.残差结构

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

F.Concat操作

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

2.2 感受野的计算公式

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 通过这个公式,我们可以发现:感受野的大小主要和卷积的步长有关!

感受野的增速,是直接和步长的累乘相关,想要网络更快速的达到某个感受野尺度,可以让步长大于1的卷积核更靠前,这样做还有一个好处就是大大增加了网络的推理速度,因为特征图的分辨率会迅速变小。

2.3 感受野的中心位置计算

 

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

刚刚计算了感受野的大小,我们还要确定感受野的坐标。比如,我么确定了感受野的大小,我们再来确定该感受野上,左上角的坐标。

 

2.4 感受野中心计算示例

 

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

三、有效感受野

3.1有效感受野的概念

1.有效感受野指的是一种现象:

感受野(RF,Receptive Field)中的每个位置均会对相应神经元的激活产生影响,但并不是所有位置的贡献都相等。这种位置‘歧视’现象就是有效感受野(ERF,Effective Receptive

Field)的主要内涵。

2.有效感受野是神经网络的能在属性,当网络结构确定,有效感受野的相关特性即确定。

3.即使感受野大小一样的情况下,因网络结构的不同,其有效感受野的特性也会有所不同

如下图所示,有效感受野其实就是白色区域,在下面两幅图中,我们发现,即使两个网络不同,但是他们的感受野是一样大的,最主要的区别就是他们的有效感受野不同,而有效感受野决定了神经元的输出,在分类、检测、分割任务中,有效感受野越大,网络捕获的信息越大,识别的精度越大,所以右图的网络的识别精度是要好于左边的。

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 W. Luo, Y. Li, R. Urtasun, and R. Zemel, “Understanding the effective receptive field in deep convolutional neural networks,” in Proc. 30th Int. Conf. Neural Inf. Process. Syst., 2016, pp. 4905–4913.

3.2有效感受野的计算

1.有效感受野是一种现象,其本身是无法被计算的,但是感受野中的每个位置的重要程度是可以被计算的,所有位置的重要程度能够反映有效感受野的存在。

2.目前,比较主流的做法是(图论):把CNN的整个计算看成一个3D的有向图,从低层节点指向高层节点。计算RF中某个输入节点对于高层某个神经元节点的贡献度:

A.计算输入节点到神经元节点的所有路径

B.统计所有路径包含的边,去掉重复的边

C.边的条数即为该输入节点的贡献度

这种图论的方法就是之前计算过得,数他的“边数”。

3.3感受野每个位置的贡献度

将每个感受野中位置的贡献画出来,就会呈现出一个类似二元高斯函数的三维图像。

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 我们通过该图,我们也可以验证,感受野的三个特性:

A.中间贡献度最大

B.各向同性

C.向四周逐渐衰减

3.4有效感受野为什么重要?

1.通过有效感受野,可以知道神经网络到底在关注哪里,有多关注!

2.知道分类、检测、分割网络的设计(多深)->在性能和精度上做平衡!

3.一个进一步探索网络可解释性的有效手段

神经网络一直被大家诟病是一个黑盒,输入到结果中间完全不可知。有效感受野有可能是一把钥匙,帮助我们去理解神经网络的行为

3.5感受野越大越好?

这是前面遗留下来的问题,我们之前提到,当神经网络能够看到整幅图像的时候,识别能力是最准确的,即使VGG13-19网络的感受野都大于了原图,但是,他们的有效感受野并不一定大于原图。我们知道,有效感受野才决定了神经元节点的输出,所以,感受野越大越好,我们不断增大感受野,才能相对增大有效感受野,当有效感受野能够覆盖全图的时候,神经网络的识别能力才是最强的!

四、用感受野来解释深度学习的基本任务

4.1分类网络

4.1.1分类网络的发展

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 Resnet网络其本质就是增大特征图的感受野!

4.1.2 感受野如何影响分类网络(Resnet为例)

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 我们可以发现:随着网络层数增多,感受野增大,识别误差减小!

4.1.3感受野是不是越大越好

这里系统说一下:

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

A.当有效感受野的区域能够覆盖全图时,这时候神经网络的表征能力是最强的。

B.感受野的大小并不完全决定性能,而是和有效感受野相关,而有效感受野的特性由网络结构决定

C.有效感受野和网络的结构有关,网络结构确定,有效感受野便确定了,所以提高结构的优越性比单纯增加感受野更感受野更加有效。

4.2检测网络

4.2.1检测网络的发展

 

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 4.2.2感受野如何影响检测网络

 

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

分类网络的输出是一个值,检测网络的输出是多个值(3x3=9个值)。这3x3的输出代表什么?它对应了9个位置的感受野,如上图所示,上面的特征图(蝴蝶),下面是原图(灰色矩形),红色的9个点就是3x3的输出,每个红点对应了原图上的一个区域,这个区域就是感受野。

检测网络的训练,可以视为一种高效率的分类网络训练,框的回归可视为附带干的事情。每个感受野对应一幅输入图像,每个用于预测的神经元节点都会有一个类别标签所有的输入图像都共享着同样一个分类网络。

那么“高效”体现在哪里?

9个值对应9个区域的感受野,就可以识别9个区域的类别。相比图像识别,我们一幅图只能输出一个值,也就是一个类别。

4.3分割网络

4.3.1分割网络的发展

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

 

4.3.2你如何设计分割网络

 我要去确定该该像素的类别,我们怎么做?

一个像素没有其他的关联信息,很难做出判断,所以我们要以该像素为中心,裁剪出不同大小的图像,然后针对不同大小图像设置单独的分类器(图像的尺寸会影响最后全连接层的设计),最后进行集成(非常耗时,而且效率低,准确率低)。

 

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 

方法1:针对不同尺寸的block训练单独的分类器,然后将所有的block的分类结果进行集成。

方法1就是上面提到的传统的做法。

方法2:设计一种网络结构,能够同时耦合不同block的特征表示,然后直接在耦合特征图上进行分类。

我们同时耦合不同的block其实就是耦合不同的感受野,那我们之前提到,什么结构可以耦合不同的感受野?

一种固定大小的感受野就可视为一种尺寸的block,耦合不同大小感受野的特征

A:使用空洞卷积(不同的rate可以获取不同的感受野大小)或直接用Pyramid Pooling,然后跳连或者拼接

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

我们可以控制空洞卷积的rate,来融合不同大小的感受野!

B:使用encode-decode结构,将encode阶段的特征图拼接至decode阶段的特诊图上。

深度学习任务,深度学习理论篇,深度学习,神经网络,人工智能,pytorch,计算机视觉

 如何高效耦合更多尺寸感受野特征是分割网络考虑的重点

 

到了这里,关于可解释深度学习:从感受野到深度学习的三大基本任务:图像分类,语义分割,目标检测,让你真正理解深度学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文理解深度学习中的多尺度和不同感受野(视野)信息

    如何理解深度学习中的多尺度和不同视野信息 在进行图像处理的深度模型中,合理理解并利用不同尺度信息和不同视野信息将对图像结果有意想不到的结果,那么具体什么是多尺度信息,什么是不同视野信息 1.不同尺度信息 多尺度是指不同尺度的信号采样,在不同尺度下可

    2024年02月16日
    浏览(48)
  • [深度学习]Open Vocabulary Object Detection 部署开放域目标检测模型使用感受

    Open Vocabulary Object Detection (OpenVOD) 是一种新型的目标检测方法,它使用开放词汇的概念来识别和检测图像中的对象。与传统的目标检测方法相比,OpenVOD具有更高的灵活性和可扩展性,因为它允许用户自定义对象类别和词汇,从而能够适应各种不同的应用场景和需求。 OpenVOD的核

    2024年01月22日
    浏览(53)
  • 3D视觉专用名词概念解释,深度图、点云图、IR图、RGB图像

    🌞欢迎来到深度学习的世界  🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢! 1. 深度图 深度图中的单个像素值是空间中物体的某个点到垂直于左红外镜头光轴并通过镜头光

    2024年01月20日
    浏览(49)
  • 动手学深度学习—卷积神经网络(原理解释+代码详解)

    多层感知机对图像处理是百万维度,模型不可实现。 如果要在图片中找到某个物体,寻找方法应该和物体位置无关。 适合 计算机视觉 的神经网络架构: 平移不变性 :不管检测对象出现在图像中的哪个位置,神经网络前几层应该对相同图像区域有相似的反应。 局部性 :神

    2024年02月14日
    浏览(55)
  • 配置Pytorch(深度学习)环境极其详细教程,解释按钮和命令

     打开  依次点击下面这个  开始创建 下面几个选项分别是 已经安装的 没有安装的 可以更新的 已经删除的 所有的  然后去pycharm里选到把这些新创建的环境下的python.exe这个解释器添加进去,就成功让程序在这个环境里运行了  先点圆圈里的内容,然后那两个随便点一个 点

    2024年02月08日
    浏览(45)
  • 【深度学习】多任务学习

    多任务学习是一个很火的话题,在自动驾驶领域以及其他对存储资源要求较高的端侧任务,都会考虑这种方式。之前面试的时候也有被问题多任务学习。前几天看到一个写得很好的例子,在此记录一下,也好久没有写博客了。 论文是2018年的CVPR。 论文:https://arxiv.org/pdf/1705

    2024年02月16日
    浏览(28)
  • 深度学习-分类任务---经典网络

    一种典型的用来识别数字的卷积网络是LeNet-5。 1.1 模型结构 1.2 模型结构 LeNet-5共有7层(不包含输入层),每层都包含可训练参数;每个层有多个Feature Map,每个FeatureMap通过一种卷积滤波器提取输入的一种特征,然后每个FeatureMap有多个神经元。 C1层是一个卷积层 输入图片:

    2024年02月19日
    浏览(34)
  • 深度学习之图像分割—— SegNet基本思想和网络结构以及论文补充

    原文链接:SegNet SegNet是2016年cvpr由Cambridge提出旨在解决自动驾驶或者智能机器人的图像语义分割深度网络,开放源码,基于caffe框架。SegNet基于FCN,修改VGG-16网络得到的语义分割网络,有两种版本的SegNet,分别为SegNet与Bayesian SegNet,同时SegNet作者根据网络的深度提供了一个b

    2024年02月06日
    浏览(43)
  • 深度学习与图像识别:如何使用深度学习进行图像识别

    深度学习与图像识别:如何使用深度学习进行图像识别 深度学习是一种基于多层神经网络的机器学习方法,能够从大量的数据中自动提取特征和规律,从而实现复杂的任务,如图像识别。图像识别是指让计算机能够理解和分析图像中的内容,如物体、人脸、场景等。使用深度

    2024年02月05日
    浏览(45)
  • 『点云处理任务 』用PCL库 还是 深度学习模型?

    1、点云滤波 :用于去除噪音、下采样和平滑等操作,入统计滤波、体素滤波和高斯滤波等。 2、特征提取和描述 :用于捕获地点云数据的表面特征,入法线估计、曲率计算、局部特征描述子(如FPFH、SHOT)等。 3、点云配准 :,用于将不同视角或不同时间的点云数据对齐,如

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包