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

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博客

https://blog.csdn.net/u010725283/article/details/78593410/

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

https://blog.csdn.net/weixin_39912556/article/details/78366287?locationNum=2&fps=1

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

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

【5】Receptive field(感受野)

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

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

https://blog.csdn.net/kuaitoukid/article/details/46829355

2020-12-09 深度学习 卷积神经网络中感受野的详细介绍相关推荐

  1. 深度学习 卷积神经网络原理

    深度学习 卷积神经网络原理 一.前言 二.全连接层的局限性 三.卷积层 3.1 如何进行卷积运算? 3.2 偏置 3.3 填充 3.4 步长 3.5 卷积运算是如何保留图片特征的? 3.6 三维卷积 ...

  2. Lesson 12.1 深度学习建模实验中数据集生成函数的创建与使用

    Lesson 12.1 深度学习建模实验中数据集生成函数的创建与使用   为了方便后续练习的展开,我们尝试自己创建一个数据生成器,用于自主生成一些符合某些条件.具备某些特性的数据集.相比于传统的机器学 ...

  3. 深度学习 卷积神经网络-Pytorch手写数字识别

    深度学习 卷积神经网络-Pytorch手写数字识别 一.前言 二.代码实现 2.1 引入依赖库 2.2 加载数据 2.3 数据分割 2.4 构造数据 2.5 迭代训练 三.测试数据 四.参考资料 一. ...

  4. 毕设 深度学习卷积神经网络的花卉识别

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  5. 毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  6. 深度学习:神经网络中的激活函数

    http://blog.csdn.net/pipisorry/article/details/71157037 激活函数 神经网络神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数, ...

  7. 【深度学习】caffe 中的一些参数介绍

     [深度学习]caffe 中的一些参数介绍 标签: 深度学习caffe 2016-05-30 14:33 7122人阅读 评论(1) 收藏 举报 本文章已收录于: 分类: [机器学习&深度 ...

  8. 深入学习卷积神经网络中卷积层和池化层的意义(转)

    为什么要使用卷积呢? 在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量:需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用 ...

  9. 深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

    卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在大型图像处理方面有出色的表现,目前已经被大范围使用到图像分类.定位等领域中.相比于其他神经网 ...

最新文章

  1. usaco Telecowmunication(网络流)
  2. Java查询spark中生成的文件_java+spark-sql查询excel
  3. python基础知识思维导图-总结 Python 知识点思维导图
  4. iview form 表单 自定义参数验证 validate
  5. db2 sql执行历史_5 个免费的在线 SQL 数据库环境,比Navicat 香!
  6. html表ge模板_猿进化系列10——一文学会动态模板的套路
  7. 【EOS】2.4 EOS数据存储
  8. 我要注意的Java编码规范
  9. 文本分类pytorch Bert fine tune
  10. RS485电路原理以及设计
  11. unity内置浏览器插件UniWebView的使用(支持Android,ios,Mac)
  12. dos命令怎样进入计算机,怎么进DOS命令的方法
  13. 我的世界服务器彩虹云,《我的世界》彩虹云跑酷地图存档
  14. 题目:js实现求100以内的质数
  15. 如何从0到1搭建业务架构?
  16. ACdream 1069 无耻的出题人 无聊写着玩的题
  17. 一种NET软件加壳技术的设计与实现
  18. 超算计算机需要显卡吗,NVIDIA:中国超算性能世界第一认了 但省电我最强
  19. 求多个数最大公约数、最小公倍数的一种变换算法
  20. 应用于客户端的性能测试指标

热门文章

  1. Windows任务管理器 explorer 进程
  2. Redis分布式锁的正确实现方式(Java版)
  3. SpringBoot2.0新特性 - Quartz自动化配置集成
  4. 数据挖掘导论读书笔记6关联分析的高级概念
  5. 京东10亿级调用量背后的高可用网关系统架构实践!
  6. 京东应用架构设计与治理
  7. Jayway JsonPath实例
  8. 金融风控实战——信贷评分卡
  9. 李宏毅深度学习——分类
  10. 硬核! 逛了4年Github ,一口气把我收藏的 Java 开源项目分享给你