【问题标题】:Fully Convolutional Network Receptive Field全卷积网络感受野
【发布时间】:2019-01-13 04:47:49
【问题描述】:

关于感受野的计算有很多问题。 在 StackOverflow 上很好地解释了 here

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

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

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

  3. 与前一层的特征图连接时感受野是否会发生变化?

提前致谢!

【问题讨论】:

    标签: machine-learning computer-vision conv-neural-network convolution receptive-field


    【解决方案1】:

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

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

    拍摄于from Wikipedia。这意味着我们正在寻找您的输入中所有影响当前输出的像素。从逻辑上讲,如果您执行卷积 - 例如使用单个 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

    【讨论】:

    • 非常感谢您的详细解释!
    • 不知道还能不能得到答案,但是Feature Pyramid Networks中的感受野是怎么计算的呢?我们有 P5、P4、P3 具有相同的感受野,而 P6 和 P7 具有更大的感受野(由于 3x3 转换)。现在,所有金字塔都将权重共享给盒子子网和类子网。我是取最大的感受野还是为每个金字塔计算它?
    • 我实际上对特征金字塔网络并不熟悉,对此感到抱歉。可能值得分享 a) 供人们查看的链接(更详细的网络描述),或 b) 在 Stackoverflow 上打开一个新问题,您可以在其中专门询问该问题。不过我会快速浏览一下,也许我能找到一些相关信息
    • Feature Pyramid Networks 在this 论文中进行了解释,我特别在谈论 RetinaNet(this 论文中的描述)。 “头部的参数在所有金字塔层之间共享”。
    猜你喜欢
    • 1970-01-01
    • 2020-03-26
    • 2020-03-27
    • 2019-01-18
    • 2019-02-11
    • 2016-11-13
    • 1970-01-01
    • 2021-02-14
    相关资源
    最近更新 更多