卷积神经网络基础
如何计算多层卷积、池化网络每一层的感受野(Receptive Field)?
1.感受野:
感受野(Receptive Field)指的是卷积神经网络中每一层输出的特征图上的像素点在输入图像上的映射区域的大小,通俗点讲就是特征图在输入图像上所能看到的区域大小。
2.感受野的计算
感受野计算的知识点:
- 最后一层(卷积层或池化层)输出特征图感受野的大小等于卷积核的大小。
- 第i层卷积层的感受野大小和第i层的卷积核大小和步长有关系,同时也与第(i+1)层感受野大小有关。
- 计算感受野的大小时忽略了图像边缘的影响,即不考虑padding的大小。
关于感受野大小的计算方式是采用从最后一层往下计算的方法,即先计算最深层在前一层上的感受野,然后逐层传递到第一层,使用的公式可以表示如下:
R
F
i
=
(
R
F
i
+
1
−
1
)
×
s
t
r
i
d
e
i
+
K
s
i
z
e
i
RF_i=(RF_{i+1}-1)\times stride_i+Ksize_i
RFi=(RFi+1−1)×stridei+Ksizei
其中,
R
F
i
RF_i
RFi是第i层的感受野,
R
F
i
+
1
RF_{i+1}
RFi+1是第(i+1)层上的感受野,stride是卷积的步长,Ksize是本层卷积核的大小。
3.感受野计算例子
从最后一层的池化层开始计算感受野:
pool3:RF=2(最后一层池化层输出特征图的感受野大小等于卷积核的大小)
conv4:RF=(2-1)*1+3=4。
conv3:RF=(4-1)*1+3=6。
pool2:RF=(6-1)*2+2=12。
conv2:RF=(12-1)*1+3=14。
pool1:RF=(14-1)*2+2=28。
conv1:RF=(28-1)*1+3=30。
因此,pool3输出的特征图在输入图片上的感受野为30*30。