卷积神经网路之感受野(receptive field)的理解与计算
感受野,源于生物学中,是一个有界限的媒介,一些生理刺激可以在特定生物体中引起感觉神经元反应。定义,单个感受器与许多感觉神经纤维相联系,感觉信息是通过许多感受神经纤维得到神经冲动。一个神经元所反应的刺激区域就叫做神经元的感受野(receptive field)
图片来源 感受野
在卷积神经网络(CNN)。感受野被定义为输入中产生特征的区域的大小。基本上,它是(任何层的)输出特征与输入区域关联的度量。重要的是要注意感受野的概念适用于局部操作(即卷积、池化)
影响某个神经元输出的输入区域就是理论感受野,也就是我们平时说的感受野,但该输入区域的每个像素点对输出的重要性不同,越靠近中心的像素点影响越大,呈高斯分布,也就是说只有中间的一小部分区域对最后的输出有重要的影响,这个中间的一小部分区域就是有效感受野。
图片来源:感受野
可以看到在Layer2 中的每一个单元所能看到的原始图像范围是 3 ∗ 3 3*3 3∗3,而由于Layer3 的每个单元都是由 3 ∗ 3 3*3 3∗3范围的Layer2 构成,因此回溯到原始图像,其实是能够看到 5 ∗ 5 5*5 5∗5的原始图像范围的。因此我们说Conv1的感受野是3,Conv2的感受野是5. 输入图像的每个单元的感受野被定义为1,这应该很好理解,因为每个像素只能看到自己。
cnn感受野计算公式:
r
n
=
r
n
−
1
+
(
k
−
1
)
∗
∏
I
=
1
n
−
1
s
i
r_{n}=r_{n-1}+(k-1) * \prod_{I=1}^{n-1} s i
rn=rn−1+(k−1)∗I=1∏n−1si
注:
r
n
r_{n}
rn为本层感受野大小,
r
n
−
1
r
r_{n-1}r
rn−1r上层感受野大小,
s
i
s_{i}
si是第
i
−
1
i-1
i−1层之前卷积或者步长之乘积,
k
k
k卷积核大小。
对于前面图的案例,计算案例(初始的感受野大小为1),我们的结构顺序为(卷积、池化、卷积、卷积):
3x3的卷积(stride=1): r = 1 + ( 3 − 1 ) r = 1 + ( 3 − 1 ) r=1 + (3 -1)r=1+(3−1) r=1+(3−1)r=1+(3−1),感受野大小为 3 ∗ 3 3*3 3∗3
2x2的池化(stride=2): r = 3 + ( 2 − 1 ) ∗ 1 = 4 r = 3 + ( 2 − 1 ) ∗ 1 = 4 r = 3 + (2 - 1)*1 = 4r=3+(2−1)∗1=4 r=3+(2−1)∗1=4r=3+(2−1)∗1=4,感受野为 4 ∗ 4 4*4 4∗4
3x3的卷积(stride=3): r = 4 + ( 3 − 1 ) ∗ 2 ∗ 1 = 8 r = 4 + ( 3 − 1 ) ∗ 2 ∗ 1 = 8 r = 4 + (3-1)*2*1=8r=4+(3−1)∗2∗1=8 r=4+(3−1)∗2∗1=8r=4+(3−1)∗2∗1=8,感受野为 8 ∗ 8 8*8 8∗8
3x3的卷积(stride=2): r = 8 + ( 3 − 1 ) ∗ 3 ∗ 2 ∗ 1 = 20 r = 8 + ( 3 − 1 ) ∗ 3 ∗ 2 ∗ 1 = 20 r = 8 + (3-1)*3*2*1=20r=8+(3−1)∗3∗2∗1=20 r=8+(3−1)∗3∗2∗1=20r=8+(3−1)∗3∗2∗1=20,感受野为 20 ∗ 20 20*20 20∗20
参考文献 : receptive field