从直观上讲,感受野就是视觉感受区域的大小。在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。
感受野计算时有下面的几个情况需要说明:
a)第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小;
b)深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系;
c)计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小。
此外,关于每一层的strides的说明,这个strides是之前所有层stride的乘积,即
strides(i)= stride(1) * stride(2) * ...* stride(i-1)
对于单层卷积网络,其feature map上每个特征点对应原图上的感受野大小等于卷积层滤波器的大小;对于多层卷积网络,可由此逐层往回反馈,通过反复迭代获得原始输入图像中感受野大小,即后面深层的卷积层感受野大小就和之前所有网络层的滤波器大小和步长有关系了,在计算的时候,忽略图像Padding的大小。使用的公式可以表示如下:
r(i) = (r(i+1) - 1) * stride(i) + c(i)
其中, r(i)表示第i层感受野大小,stride(i)表示第i层步长,c(i)表示第i层卷积核大小。
此外,对于卷积网络中的激活函数层(ReLU/Sigmoid/...)等,感受野迭代公式为:
r(i)=r(i+1)
其他参考
http://blog.cvmarcher.com/posts/2015/05/17/cnn-trick/
https://zhuanlan.zhihu.com/p/23358015
http://stackoverflow.com/questions/37136829/receptive-fields-on-convnets-receptive-field-size-confusion/37143998#37143998