原文链接:https://blog.csdn.net/doufangzheng/article/details/104023161
目录
前言
感受野是卷积神经网络(CNN)重要概念之一,它起源于人类神经系统,后随神经网络模型在计算机视觉(CV)领域的应用引入到计算机视觉领域。在卷积神经网络占领CV领域绝对地位之后,感受野成为CV领域研究中最重要的概念之一。而随着CNN在其他领域,如自然语言处理领域的应用,感受野的概念也不断扩大。
在人类神经系统中,一个感觉神经元的感受野是指这个位置里适当的刺激能够引起该神经元反应的区域。感受野一词主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质[1]。在CNN中,感受野通俗的理解是:每一层输出的特征图上的像素点在原始图像上映射的区域大小。它表达的含义是:特征输出受感受野区域内的像素点的影响。
感受野计算
对于CNN的第一个隐藏层,感受野的非常简单,对于自底向上的其他所有隐藏层,感受野的理解会越来越复杂,但满足逐层递推的关系。
一维
下面用简单的一维CNN网络介绍感受野以及感受野大小的计算。下图,只展示CNN的前三个隐藏层,每层卷积核大小kernel=3, stride=1,pad=1
第一层的感受野为3(=1+(3-1))
第二层感受野为5(=3+(3-1)*1)
第三层为7(=5+(3-1)11)
感受野公式:
特别的,输入层:
如果采用空洞卷积:
二维
展示形式和递推计算公式参考2
有效感受野
参考资料:4
直观理解
首先,我们从直观上理解一下,感受野范围内的像素对输出的不同影响。
我们以一维展示为例,x41的感受野包括x11~x17,其中x11只能通过x21-x31(1条路径)影响x41;而x13可以通过(x21,x22,x23)~(x31,x32,x33)(6条路径)来影响x41,显然x13与x11对x41的影响相差很大,并且越靠近中间的像素对输出影响越大,图中影响最大的像素是x14(假设卷积核权重均匀分布)。
理论证明
上述结论的理论证明可以参考论文:Understanding the Effective Receptive Field in Deep Convolutional Neural Networks NIPS 2016,论文对有效感受野进行了细致的研究。
论文结论:实际有效的感受野和理论上的感受野差距比较大,实际有效的感受野是一个高斯分布。
验证方法:从输出映射的中心像素向网络反向传播一个梯度,并将所有其他梯度设置为零,检查应用于输入层的梯度。
有效感受野
感受野范围内的像素对于输出的贡献不同,梯度的性质是高斯的,中心像素梯度信号强,离中心越远梯度信号越弱,且衰减是呈指数的,从中间衰减得非常快,这使得理论感知域中的有效部分占比非常小。如图,白色点表示有效感受野(高斯分布)ERF,正方形区域为理论感受野RF。
1、卷积核权值均匀分布(Uniform)高斯分布
2、卷积核随机分布(Random)高斯分布
3、激活函数会改变有效感受野ERF的分布,如图ReLU使部分梯度为0,高斯分布的密度下降
4、添加层使ERF增长,此处需要注意ERF变化和ERF占比的变化:
(1) 第一,ERF随层数增加而增长;
(2) 第二,虽然ERF在增长,但ERF/RF在减小,图中白色区域与正方形的面积比值;
(3) 第三,虽然ERF/RF在减小,但收缩速度放缓,图中10layers到20layers,再到40layers,比值减小的比例基本一致,但层数增加翻倍(10层,20层),表明收缩速度放缓。下图为实验验证的ERF绝对值以及占比的变化趋势
不同激活函数的有效感受野分布不同
训练对有效感受野的影响
训练过程中,ERF扩展到RF的更大部分,说明网络在学习过程中把越来越大的权重放在感受野区域中靠近边缘的像素上。在CamVid中,ERF从100增加到150直径,而理论RF为505 x 505
其他
stride卷积和dilated卷积都显示出可以扩展ERF
如何有效的对抗感知野的高斯分布
1、权重的初始化:优化权重矩阵最大化有效感知野的大小,使卷积核中心的权值更小,外部的权值更大。如何设置合适实验表明会酵素训练过程,但是注意,不要暴力将卷积核四角之外的值设为0,太多的权重为0会减慢学习速度。
对权重初始化的操作,只是解决了部分问题,有效感受野仍然类似高斯分布。
2、CNN的结构:该方法从基础上解决问题,理论上更好。
(1) 下采样,稀疏连接如dilate conv或者非网格形式的稀疏连接思想能够增大ERF
(2) 注意skip-connection使ERF更小,dropout 并不会改变ERF。
思考
感受野可用于指导深层卷积神经网络的搭建,在论文A practical theory for designing very deep convolutional neural networks中也给出了具体的计算公式,但是需要注意的是这篇论文中所说的感受野只是理论感受野,因此需要结合本文有效感受野的概念和思想进行设计,也就是说理论感受野如果与图像大小相似,那么有效感受野可能会远小于图像大小,可能会因为有效感受野太小,导致网络学习能力不高。
增大感受野需要从两个方面考虑,即如何增大理论感受野,以及如何增大有效感受野。
anchor与感受野
以Fast-RCNN中的RPN为例,我们对比一下理论感受野与有效感受野:
在RPN中,anchor最大为648 = 512,使用https://fomoro.com/research/article/receptive-field-calculator#,计算得到理论感受野RF=1335。根据之前的实验推测ERF=RF1/3=445,即RPN中512×512锚点只有大约445×445个输入数据,略小于锚框,RPN的效果非常好的一点原因是有效感受野与最大的锚点尺寸相近。
如何增大感受野
首先需要说明的是,增大理论感受野,有效感受野也会随之增大,而在理论感受野不变的前提下增大有效感受野,也会提高网络的学习能力。因此,增大感受野需要同时考虑这两个方面。
增大理论感受野方法:下采样+增加网络深度、适度增大卷积核大小
增大有效感受野的方法:权重初始化、空洞卷积等稀疏连接思想
深度学习网络设计中感受野的作用
在网路设计中,我们需要对最顶层特征层的感受野大小进行限制,因为如果感受野过大说明层数过多,网络过拟合的风险会增大,而如果感受野过小,往往学习不到高层的复杂特征,导致网络学习能力较差。
可参考论文:A practical theory for designing very deep convolutional neural networks以及博客
参考资料
[1] https://wiki2.org/en/Receptive_field
[2] https://www.linkedin.com/pulse/receptive-field-effective-rf-how-its-hurting-your-rosenberg/
[3] https://www.cnblogs.com/shine-lee/p/12069176.html
[4] Understanding the Effective Receptive Field in Deep Convolutional Neural Networks
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。