CNN中感受野的计算
感受野(receptive field),从可视化的角度来讲,就是输出featuremap 某个节点的响应对应的输入图像的区域就是感受野。
这个感受野的大小应该怎么去算,我们首先需要知道CNN中进行卷积和池化的操作时,参数的值应该怎么去计算,首先举一个特别简单的例子。我们的输入图像是5*5的图像,经过一个大小为2*2,步长为1的卷积核的处理后,得到的图像大小变成了4*4,再经过一个2*2,步长为2的池化操作后变成了2*2的大小。
当输入图像是n*n,卷积核大小是f*f,步长是s,填充为P,则输出图像大小为
具体的操作可以通过下图来展示:
有几点需要注意的是,padding并不影响感受野,stride只影响下一层featuremap的感受野,size影响的是该层的感受野。
了解完了怎么计算卷积和池化后,我们来看看怎么计算感受野。
举一个例子:
pool3的一个输出对应pool3的输入大小为2*2
那么我们可以得到对应的conv4的输入为4*4,因为2*2的每个角加上一个3*3的卷积核,就变成4*4,