首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

卷积神经网络中感受野的详细介绍

目录:

感受野的概念

感受野的例子

感受野的计算

计算VGG16网络每层的感受野

Reference

1. 感受野的概念

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

图1:用图形理解感受野概念

2.感受野的例子

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

图2:两层3*3卷积核操作之后的感受野是5*5

(2)三层3*3卷积核操作之后的感受野是7*7,其中卷积核的步长为1,padding为0,如图3所示:

图3:三层3*3卷积核操作之后的感受野是7*7

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。

(2)VGG16网络每层感受野计算

图5:VGG16网络结构

在VGG16网络中,我们从全连接层开始倒推,直到输入层,过程如下:

pool5:RF=2。(最后一层池化层输出特征图感受野的大小等于卷积核的大小)

conv5_3:RF=(2-1)* 2+2=4。

conv5_2:RF=(4-1)*1+3=6。

conv5_1:RF=(6-1)*1+3=8。

pool4:RF=(8-1)*2+2=16。

... ... ... ... ... ... ...

类推...

因此我们可以得出:pool5输出的特征图在输入图片上的感受野为212*212;conv5_3输出的特征图在输入图片上的感受野为196*196,其它层依次类推。

图6:VGG16网络感受野计算结果

5.Reference

【1】卷积神经网络物体检测之感受野大小计算 - machineLearning - 博客园

http://www.cnblogs.com/objectDetect/p/5947169.html

【2】对CNN感受野一些理解 - CSDN博客

【3】感受野的详细介绍 - CSDN博客

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

https://zhuanlan.zhihu.com/p/22627224

【5】Receptive field(感受野)

https://www.jianshu.com/p/2b968e7a1715

【6】CNN中感受野的计算 - CSDN博客

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180708G0LET100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券