全卷积网络感受野

Fully Convolutional Network Receptive Field

关于感受野的计算问题很多。 它在 Whosebug 上的解释非常好

但是,没有关于如何在全卷积层(即残差块、特征图连接和上采样层(如特征金字塔网络))中计算它的博客或教程。

  1. 据我了解,残差块和跳过连接对感受野没有贡献,可以跳过。来自 .

  2. 的回答
  3. 如何处理上采样层?例如我们有 900 的有效感受野,然后是一个上采样层,感受野减半了吗?

  4. 当与来自先前层的特征图连接时感受野会改变吗?

提前致谢!

为了逐条回答你的问题,让我们先从这方面感受野的定义说起:

The receptive field of an individual sensory neuron is the particular region of the sensory space (e.g., the body surface, or the visual field) in which a stimulus will modify the firing of that neuron.

拍摄 from Wikipedia。这意味着我们正在寻找您输入中影响当前输出所有像素。从逻辑上讲,如果您执行卷积 - 例如使用单个 3x3 滤波器内核 - 单个像素的感受野是输入区域中在该特定步骤中进行卷积的相应 3x3 图像区域。

从视觉上看,在此图中,下面较暗的区域标记输出中特定像素的感受野:

现在,回答你的第一个问题:Residual blocks当然还是占感受野的!让我们将残差块表示如下:

  • F(X):残差块
  • g_i(X):单卷积块

然后我们可以将残差块表示为F(X) = g_3(g_2(g_1(X))) + X,因此在这种情况下我们将堆叠 3 个卷积(作为示例)。当然,这个卷积的每一层仍然会改变感受野,因为它与开始时解释的一样。 简单地再次添加X当然不会改变感受野。但是单独的添加并不能产生残差块。

类似地,跳过连接不会影响感受野,因为跳过层几乎总是会导致不同的(主要是更小的)感受野。正如您链接的答案中所解释的那样,如果您的跳过连接具有更大的感受野,那将会有所不同,因为感受野是不同区域的最大值(更具体地说,并集)通过流程图的路径。

关于上采样层的问题,您可以通过提出以下问题自行猜测答案: 输入图像的 区域 是否受到图像内任何位置上采样的影响?

答案应该是"obviously not"。本质上,您仍然在查看输入区域中的相同区域,尽管现在您拥有更高的分辨率,并且相似的像素实际上可能会查看相同的区域。回到上面的 GIF:如果绿色区域中的像素数量是原来的 4 倍,那么每个像素仍然必须查看蓝色区域中大小不变的特定输入区域。所以不,升级不会影响这一点。

最后一个问题:这个跟第一个问题关系很大。事实上,感受野会查看影响输出的所有像素,因此根据您连接的特征图,它可能会发生变化。

同样,生成的感受野是您要连接的特征图的感受野的并集。如果它们彼此包含(A subset of BB subset of A,其中 AB 是要连接的特征图),则感受野不会改变。否则,接受域将是 A union B.