感受野(Receptive Field)的原理与计算

感受野Receptive Field的原理与计算

一、感受野概念

       在卷积神经网络中,感受野(Receptive Field) 的定义是:卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像(即输入图像经过预处理后)上映射的区域大小。网络内部的不同位置的神经元对原图像的感受范围的大小。通俗解释就是这一层受到原始图像影响的大小。
       因此神经元感受野的值与接触到原始图像范围成正比,RF越大意味着它可能更为全局,语义层次更高的特征;若是值越小则表示其所包含的特征越趋向局部和细节,语义层次更低的特征。因此感受野的值也可以用来大致判断每一层的抽象层次。


举例:原始图像为5×5,卷积核(Kernel Size)为 3×3 ,padding为 1,stride为 2,连续做两次卷积,则整个过程图为:

①第一次卷积后: 最后得到3×3的特征图,感受野RF=3×3;
                            0

                                                  1
②第二次卷积后: 最后得到2×2的特征图,感受野RF=7×7;
                                                  2
下图有助于理解:
                                                  3

二、感受野计算

                                                        4
其中 l k 1 l_{k-1} 为第 k 1 k-1 层的感受野大小, f k f_{k} 为第 k 层的卷积核大小或者是池化层尺寸大小, s k s_{k} 则是第k层卷积的stride。

例如:分别理解如何求出下面各层的感受野RF?

Layer Kernel size Stride RF
conv1 3×3 1 3
pool1 2×2 2 4
conv2 3×3 1 8
conv3 3×3 1 12

感受野初始值 l 0 l_{0} =1,每层感受野计算过程为:
 
                       l k = { l k 1 + [ ( f k 1 ) ] ( k = 1 ) l k 1 + [ ( f k 1 ) × i = 1 k 1 s i ] ( k 2 ) l_{k}=\left\{\begin{matrix} &l_{k-1}+[(f_{k}-1)]……………(k=1) \\ &l_{k-1}+[(f_{k}-1)\times\prod_{i=1}^{k-1}s_{i}]……(k\geqslant2) \end{matrix}\right.
 
    l 0 l_{0} = 1
    l 1 l_{1} = 1 + (3-1) = 3
    l 2 l_{2} = 3 + (2-1) × 1 = 4
    l 3 l_{3} = 4 + (3-1) × 1 × 2= 8
    l 4 l_{4} = 8 + (3-1) × 1 × 2 × 1= 12

三、感受野计算检验

      若害怕自己RF算错的话,可以推荐看下面这个网站:Fomoro AI
      我已经做好上述例子检验,如下图所示;
5

Reference:

发布了36 篇原创文章 · 获赞 5 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_40520596/article/details/104434449