感受野
概念
感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。即特征图上的一个点跟原图上有关系的点的区域。
感受野被称作是CNN中最重要的概念之一,目标检测流行的算法比如SSD,Faster RCNN等中的 prior box 和 anchor box的设计都是以感受野为依据做的设计。
计算
原始输入图大小为 $7 \times 7$
网络层 | kernel | deepth | strids | padding | input | output | feature |
---|---|---|---|---|---|---|---|
conv1 | [3,3] | 1 | 1 | VALID | [7,7,1] | [5,5,1] | $(7-3+1)/1=5$ |
conv2 | [3,3] | 1 | 1 | VALID | [7,7,1] | [5,5,1] | $(5-3+1)/1=3$ |
可以知道原始输入的感受野是1,conv1层感受野是3,conv2层感受野5。
最终我们可以得出,一个[5,5]卷积核感受野与两个[3,3]卷积核的感受野等效。一个[7,7]卷积核的感受野和3个[3,3]卷积核的感受野等效。
感受野的计算公式为
\begin{equation}
r_n = r_{n-1}+(k_n - 1)\prod_{i=1}^{n-1}s_i
\end{equation}
其中$r_{n-1}$表示上一层感受野大小,$k_n$表示本层卷积核尺寸,而$S_i$表示卷积步幅大小
例如,
conv1:$3 \times 3$ strides = 1 valid
conv2:$3 \times 3$ strides = 1 valid
conv3:$3 \times 3$ strides = 1 valid
conv4:$3 \times 3$ strides = 1 valid
maxp:$2 \times 2$ strides = 2
$(计算感受野时,maxp 看做 conv:2 \times 2, strides = 2)$
感受野:
原图:1
conv1:$1+(3-1)=3$
conv2:$3+(3-1) \times 1 = 5$
conv3:$5+(3-1) \times 1 \times 1 = 7$
conv4:$7+(3-1) \times 1 \times 1 \times 2 = 11$
maxp:$11+(2-1) \times 1 \times 1 \times 2 \times 1 = 13$