Receptive field
-
一般认为,人类的对外界的感知都是从局部到全局的,而对于图像来说,也是局部的像素在空间上的联系较为紧密(比如离得近的像素可能具有相同的颜色纹理),距离较远的像素相关性较弱。
-
因而,每个神经元没有必要对全局进行感知,只需要对局部进行感知,然后在高层将这些局部信息组合起来,就得到了全局信息。
-
所以说,局部感知野就是指卷积层的神经元只和上一层的feature map局部相联系。
The fixed-sized CNN feature map visualization
每个维度输出feature map的数量可以用下列公式计算:
——> the number of output features in each dimension:
Example
为了简化,下图假设CNN结构是对称的正方形。所以两个维度对于所有的变量都有相同的值,如果CNN结构或者输入图片不对称,可以分开计算feature map的属性。
1、一般可视化CNN feature map
卷积(kernel_size k=3x3,padding_size p=1x1, stride s=2x2)
-
上图 5×5 input (蓝色)通过卷积,我们可以得到输出的 feature map 3x3(绿色)
-
下图 采用相同的卷积核在 3x3 feature map上继续卷积,我们可以得到 2x2 feature map(橙色)。
-
在此方法中,通过观察feature map我们可以知道他包含了多少特征,但是我们很难知道每个特征具体在哪里(感受野center)、那个区域有多大(感受野size)。
2、固定size的CNN feature map
卷积(kernel_size k=3x3,padding_size p=1x1, stride s=2x2)
- 固定size的CNN可视化,从而能够使所有尺度的feature map大小保持不变且都和输入图像一致。
- 每个特征用center location标记,因为所有feature map当中的feature都有同样大小的感受野size,我们可以简单的画出bounding box来代表这一个感受野。feature map和输入层相同size,那么我们就不必将bounding box一直向底层映射了。
3、另一个固定size的CNN feature map
卷积(kernel_size k=3x3,padding_size p=1x1, stride s=2x2)
- 3D(左) 2D(右)
- 更大的input map 9×9(原文说是7×7,可是我看是9×9呀),围绕中心特性绘制了接受域边界框,并删除了填充网格以获得更清晰的视图。
- 感知野size增长很快,第二层feature layer就几乎覆盖了整个输入图像。这一点被用来改进DCNN的设计。
Receptive Field Arithmetic
为了计算每一层的感受野,除了每一维度的n,还需要一些额外的信息:
- 当前感受野size:r
- 相邻特征的距离(jump):j
- 左上角feature的中心坐标:start
特征的中心坐标被定义为其receptive field的中心坐标
the attributes of the output layer :
- 等式1:计算输出特征数 “ n ”
- 等式2:计算输出特征之间的 jump,相邻特征之间 “ j ” =1 不是0
- 等式3:计算输出feature map的receptive field “ r ”
- 等式4:计算第一个输出feature的感受野center position(左上角feature的中心坐标)“ start ”
fixed-sized CNN feature map 为例
Inference
[CNN感知野]A guide to receptive field arithmetic for CNN
图文来源:A guide to receptive field arithmetic for Convolutional Neural Networks