感受野

感受野(Receptive Field),指的是神经网络中神经元“看到的”输入区域,在卷积神经网络中,feature map上某个元素的计算受输入图像上某个区域的影响,这个区域即该元素的感受野。

理解简化:在卷积神经网络的某feature map上的某个元素,它存在一个感受野,感受野大小为输入图像的某块区域。这块区域的像素值一层层卷积、pooling等操作最终计算出了这个元素的值。输入图像中其它的非其感受野的区域,与该元素的计算完全无关>

网上关于感受野的文章有很多,可以自行阅读。这里只说几个关键点

1.感受野是一个相对概念,某一层feature map上的某个元素,相对之前不同层的感受野是不同的。越往输入层方向,感受野越大。不特殊说明的情况下,感受野指的是看到的输入图像的区域

2.感受野的计算是个递推公式,这篇文章写的很详细https://cloud.tencent.com/developer/article/1557374

3.空洞卷积时,相当于改变了卷积核的大小,会改变感受野。

4.pooling层是一个特殊的卷积层,会增大感受野。非线性激活层不改变感受野。

空洞卷积

空洞卷积(也称为膨胀卷积或atrous卷积),是一种在卷积神经网络中使用的技术。它通过在卷积层引入一个名为“扩张率”(dilation rate)的新参数来扩大卷积核的间距。这个参数定义了卷积核处理数据时各值之间的间距。空洞卷积的主要优势在于:它能够在不进行下采样操作(如使用pooling层)的情况下,保持或增大特征图的尺寸,同时增加感受野(receptive field)的大小,从而能够在图像分割等任务中捕获更广泛的信息。

原文:MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS

在传统的卷积中,感受野的大小与卷积核的大小和步长有关,而与卷积的层数成线性关系。相比之下,空洞卷积的感受野与扩张率成指数级关系,这意味着即使使用较小的卷积核,也能获得较大的感受野。贴出论文原图来解释:

看图的时候,你可以忽略红点,红点只是想说明空洞卷积时卷积的样子。如果非要理解,可以这样来看,F0层到F1层,由于是正常卷积,红点就是 3×3的,感受野也是 3×3。F1层到F2层,空洞卷积,所以我们会发现红点中间都隔了一个0值,又由于用每个红点卷积F1层时感受野都是3×3的,所以浅绿色在外层又多了一圈变为了 7×7。F2层到F3层,红点中间隔了3个,每个红点由覆盖了F2层的 7×7,所以感受野就变为了15×15

  • (a) F1 是通过从 F0 应用一个空洞率为 1 的空洞卷积产生的;F1 中的每个元素具有 3×3 的感受野。
  • (b) F2 是通过从 F1 应用一个空洞率为 2 的空洞卷积产生的;F2 中的每个元素具有 7×7 的感受野。
  • (c) F3 是通过从 F2 应用一个空洞率为 4 的空洞卷积产生的;F3 中的每个元素具有 15×15 的感受野。

再解释一遍,假设步长均为1。假设我们有图(a)这样一个输入层(白色格子),首先应用一个普通的 3×3卷积核(空洞率为1)卷积到F1层,那么显然F1层的每个值的感受野都是3×3(图a中的浅绿色)。从F1层到F2层,我们应用一个空洞率为2的3×3卷积核,那么F2层的每个值的感受野,变为了7×7(图b中的浅绿色)。从F2层到F3层,我们应用一个空洞率为4的3×3卷积核,那么F3层的每个值的感受野,变为了15×15(图c中的浅绿色)。感受野在指数级增长:空洞率又2变4,视野也由7变为了15。

重要的是,尽管感受野在指数级地增长(从 3×3 到 7×7 再到 15×15),但每一层与之相关的参数数量是恒定的。这是因为空洞卷积只是通过在卷积核的元素之间插入零来增加感受野,而不是增加卷积核的实际大小或数量。这种特性使得空洞卷积在需要大感受野但又要控制模型复杂性的任务中特别有用,例如图像分割、目标检测等。通过系统地调整空洞率,可以在不增加计算成本的情况下有效地捕获多尺度的上下文信息。

空洞卷积的缺点和注意事项

1.网格效应:空洞卷积时元素之间产生了间隔,有些元素参与运算次数多,有一些元素参与运算次数少,分布是不均匀的。参与计算次数多的像素位置的特征,可能对分割结果产生了更多的影响。例如一个树,它真值附近也会得到一些结果为树并呈现网格分布的分割结果。

2.局部信息丢失:空洞卷积的棋盘格式计算,某一层的卷积结果实际上来自上一层的独立的集合,相邻像素没有相互依赖。因此该层卷积的结果之间没有相关性,导致局部信息丢失。例如第2层的第n个像素可能来自于第1层的1、3、5号位置,而n+1个像素来自于上层的2、4、6。

3.远距离信息不相关:空洞卷积扩大了感受野,但是稀疏采样的方式让两个较远的像素点过早地运算在了一起。原本的卷积神经网络在较深层,才会去处理两个间隔较远的像素特征,而空洞卷积让间隔较远的特征早早地发生了相关运算,导致远距离的信息特征可能提取不好。

4.小物体分割效果不好:显然,如果空洞率过大,小物体分割可能效果不错,但是小物体效果就会非常糟糕。因为小物体可能无法被足够大的感受野覆盖。

空洞卷积的改进

混合空洞卷积

叠加空洞卷积时,扩张率的组合应该避免出现公约数(除了1)

混合空洞卷积(HDC,原文:Understanding Convolution for Semantic Segmentation)

当连续使用空洞卷积时,可以通过设置不同的膨胀系数(dilation rate)来避免网格效应(gridding effect)和局部信息丢失的问题。HDC通过交替使用不同膨胀率的空洞卷积层,可以确保每个像素点都能被多个不同膨胀率的卷积核所覆盖,从而捕获到更丰富的上下文信息。

如上图,作者采用了空洞率依次为【1,2,3】【1,2,3】的多个HDC,来保证感受野的连贯性

参考:https://blog.csdn.net/qq_41076797/article/details/114593840