卷积网络中的感受野详解

  1. 感受野的概念

在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域,如图1所示。
卷积网络中的感受野详解_第1张图片
2. 感受野的例子

(1)两层3X3的卷积核卷积操作之后的感受野是5X5,其中卷积核(filter)的步长(stride)为1、padding为0,如图2所示:

卷积网络中的感受野详解_第2张图片
图2:两层3X3卷积核操作的感受野是5x5
(2)三层3x3卷积核操作之后的感受野是7x7,其中卷积核的步长为1,padding为0,如图3所示:
卷积网络中的感受野详解_第3张图片
图3:三层3x3卷积核操作之后的感受野是7x7
3. 感受野的计算

感受野计算时有下面几个知识点需要知道:

最后一层(卷积层或池化层)输出特征图感受野的大小等于卷积核的大小。第i层卷积层的感受野大小和第i层的卷积核大小和步长有关系,同时也与第(i+1)层感受野大小有关。计算感受野的大小时忽略了图像边缘的影响,即不考虑padding的大小。

关于感受野大小的计算方式是采用从最后一层往下计算的方法,即先计算最深层在前一层上的感受野,然后逐层传递到第一层,使用的公式可以表示如下:

[公式]
其中, [公式] 是第i层卷积层的感受野, [公式] 是(i+1)层上的感受野,stride是卷积的步长,Ksize是本层卷积核的大小。
4. 计算VGG16网络每层的感受野

(1)引例。

VGG16网络有点复杂,我们先来计算一个简单的例子,先学会计算感受野,在来分析复杂的网络。
卷积网络中的感受野详解_第4张图片
我们从最后一层的池化层开始算感受野:

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。
转自于

feature map的理解

在cnn的每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起(像豆腐皮竖直的贴成豆腐块一样),其中每一个称为一个feature map。

feature map 是怎么生成的?

输入层:在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片(RGB),一般就是3个feature map(红绿蓝)

你可能感兴趣的:(深度学习)