无痛理解CNN中的感受野receptive field

在卷积神经网络CNN中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野receptive field。举个例子,在maxpooling层中,如果它的kenerl size是2x2,输出结果中的每一个元素都是其对应输入的2x2的区域中的最大值,所以这一层的感受野大小就是2。其实感受野的大小是由kernel size和stride size一起决定的,公式是:rfsize = f(out, stride, ksize) = (out - 1) * stride + ksize,其中out是指上一层感受野的大小。

计算的时候我们一般假定最后一层的感受野大小rfsize=1 ,以此倒推,以VGG16为例:

从全连接层开始倒推,全连接层中一个元素的rfsize=1

pool5的rfsize = f(1, 2, 2) = (1-1)*2+2=2

conv5_3: rfsize =f(2, 2, 2) = (2-1)*2+2=4

conv5_2: rfsize=f(4, 1, 3) = (4-1)*1+3=6

conv5_1: rfsize=f(6, 1, 3) = (6-1)*1+3=8

pool4: rfsize=f(8, 2, 2) = (8-1)*2+2=16


类推....

编辑于 2016-09-26 17:04