首页 > 解决方案 > 全卷积网络感受野

问题描述

关于感受野的计算有很多问题。StackOverflow 上解释得很好。

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

  1. 据我了解,剩余块和跳过连接对感受野没有贡献,可以跳过。从这里回答。

  2. 如何处理上采样层?例如,我们有 900 的有效感受野和一个上采样层,感受野会减半吗?

  3. 当与前一层的特征图连接时,感受野会改变吗?

提前致谢!

标签: machine-learningcomputer-visionconv-neural-networkconvolutionreceptive-field

解决方案


为了逐个回答你的问题,让我们首先从这个上下文中感受野的定义开始:

单个感觉神经元的感受野是感觉空间的特定区域(例如,体表或视野),其中刺激将改变该神经元的放电。

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

从视觉上看,在此图中,底层较暗的区域标记了输出中特定像素的感受野: 感受野的视觉描述

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

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

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

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

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

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

对于最后一个问题:这与第一个问题非常相关。事实上,感受野会查看影响输出的所有像素,因此根据您要连接的特征图,它可能会改变它。

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


推荐阅读