文章目录

  • 感受野
  • 增加感受野
  • 有效感受野
  • 与反卷积的区别
  • 总结

感受野

卷积核的大小(高度和宽度)定义了一个区域的空间范围,改区域可以被卷积核在每个卷积步骤中修改,因而卷积核的大小称为卷积核的“感受野”。
感受野(receptive field, RF),卷积神经网络每一层输出的特征图(feature map)上的特征点在原始图像上映射的区域大小,即特征点能“看”到的范围。越高(深)层的特征点描述的原图信息越全面,越能表述语义信息。

神经元之所以无法对原始图像的所有信息进行感知,是因为在卷积神经网络中普遍使用卷积层和pooling层,在层与层之间均为局部连接。

神经元感受野的值越大表示其能接触到的原始图像范围就越大,也意味着它可能蕴含更为全局,语义层次更高的特征;相反,值越小则表示其所包含的特征越趋向局部和细节。因此感受野的值可以用来大致判断每一层的抽象层次。

感受野计算公式:

其中,L 表示感受野大小,f 表示卷积核(kernel size),s 表示卷积步长(stride)。起始卷积层(F0),感受野大小等于。
lk=f+n(f−1)l_k=f+n(f-1)lk​=f+n(f−1)

其中,fkf_kfk​表示第n层的卷积核大小,sis_isi​表示每一个前一层的步幅长度,lk−1l_{k-1}lk−1​表示前一层的有效感受野。

对于上图,计算上图感受野:
F0层: L0 = f = 3;
F1层: L1 = 3 + (3-1) * 1 = 5;
特别的,当前特征层(feature map)感受野与之前层相关,与当前层卷积核大小相关,与步长(stride),填充(padding)无关。理论感受野尺寸可以大于网络输入尺寸。

增加感受野

为了实现具有相对减少的参数数量的非常深的模型,成功的策略是将许多具有较小的感受野的卷积层堆叠。但是限制了所学习的卷积核的空间大小,其仅与层数线性地成比例。

扩张卷积(空洞卷积)
是一种扩展感受野大小而不增加参数数量的方法。中心思想是引入新的空洞参数(d),其在执行卷积时决定卷积核权重之间的间隔。一个因子为d的空洞意味着原始卷积核在每个元素之间扩展d-1个空格,并且中间的空位置用零填充。
将尺寸为fxf的卷积核放大到大小为f+(d-1)(f-1).对应于具有预定义卷积核大小f、零填充幅度p、步幅s、空洞因子d且高度h和宽度w的输入的卷积运算的输出维度如下
h‘=(h−f−(d−1)(f−1)+s+2p)/sh^`={(h-f-(d-1)(f-1)+s+2p)/s}h‘=(h−f−(d−1)(f−1)+s+2p)/s
w‘=(w−f−(d−1)(f−1)+s+2p)/sw^`={(w-f-(d-1)(f-1)+s+2p)/s}w‘=(w−f−(d−1)(f−1)+s+2p)/s

第n层的有效感受野可以表示为:
RFn=RFn−1+d(f−1)RF^n=RF^{n-1}+d(f-1)RFn=RFn−1+d(f−1),满足RF1=fRF^1=fRF1=f
1)增加网络层数。特别的,增加网络层数时,对于 f!=1 的网络层数即使feature map大小没有改变,感受野也会增加。
2)增加池化层。成倍的增加感受野。
3)更大的卷积核。通常为了保持feature map的尺寸,更大的卷积核需要相应的padding作为补充。例如,卷积核(k=3,s=2,p=0)与(k=7,s=2,p=3)能够获得相同尺寸的feature map,但后者的感受野要大于前者。

有效感受野

有效感受野(effective receptive field, ERF),在卷积计算时,实际有效的感受野区域。在F0特征层中,特征点6可以描述其他所有特征点的部分信息,即图中交叠部分,特征点6代表的信息更“有效”。即越靠近感受野中心的区域越有效。在网络训练时,有效感受野对参数的影响更大。

与反卷积的区别

反卷积(deconv):
主要用于增大图像尺寸,是upsampling的一种,而空洞卷积并没有做upsampling,空洞卷积是为了增大感受野,可以不改变图像的大小。
对于反卷积简单理解就是在输入特征矩阵中插入空白点,再进行卷积,这样卷积后输出的特征矩阵就变大了。

对于标准k*k卷积核,stride为s,分三种情况:

1) s>1,在卷积同时伴随着downsampling操作,卷积后图像变小了(这种操作也可以增大感受野,但是输出的图像大小变小了)
2) s=1,在padding设置为stride大小时,卷积后图片大小不变;
3)s<1,相当于对原图作upsampling操作进行扩大原图,然后再卷积,这样得到的结果图就变大了。例如s=0.5s=0.5s=0.5意味着在原特征图的每相邻数据间插入一个空白数据,这样再进行卷积,它的输出特征图就变大了。

上面3)所描述的就是反卷积,它的核心是在原来图像上插入空白数据。而空洞卷积就是在卷积核插入空白数据,或是说在卷积是跳过特征图的部分数据。

总结

神经网络中,感受野可以描述特征点的最大信息量,有效感受野则可以描述信息的有效性。充分理解感受野与有效感受野的概念,在设计网络时,可以依据此计算网络层数,卷积核大小,卷积步长。甚至根据任务不同,自动生成backbone。

深度学习-感受野与有效感受野相关推荐

  1. 2020-12-09 深度学习 卷积神经网络中感受野的详细介绍

    卷积神经网络中感受野的详细介绍 1. 感受野的概念 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射 ...

  2. 学习笔记之——基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  3. 基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  4. 深度学习之学习(1-2)感受野(receptive field)

    参见:原始图片中的ROI如何映射到到feature map? - 知乎 1 感受野的概念 在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像 ...

  5. [人工智能-深度学习-30]:卷积神经网络CNN - 感受野,特征的提取与范围的扩散

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  6. 深度学习到底有哪些卷积?

    深度学习到底有哪些卷积? 深度学习中不同种类的卷积(比如 2D / 3D / 1x1 /转置/扩张(Atrous)/空间可分/深度可分/平展/分组/混洗分组卷积),能帮理解实际的工作方式. 总结深度学 ...

  7. 深度学习调参体验(一)

    深度学习调参体验(一) 基本原则: 快速试错 一.一些大的注意事项: 1.先上小规模数据, 模型往大了放, 只要不爆显存, 能用256个filter就别用128个.直接奔着过拟合去.就是训练过拟合网络 ...

  8. 深度学习中的一些英文解释

    A: (1)anchors:锚点.(anchors(锚点)定义在RPN网络中) B: (1)bounding box:预测边界框. (2)Botton-up 3D proposal generatio ...

  9. 基于深度学习的目标检测综述

    基于深度学习的目标检测算法归类和总结 整体框架 目标检测算法 主要包括:[两阶段]目标检测算法.[多阶段]目标检测算法.[单阶段]目标检测算法 什么是两阶段目标检测算法,与单阶段目标检测有什么区别? ...

  10. 深度学习--TensorFlow(8)CNN卷积神经网络理论(计算机视觉)

    目录 计算机视觉介绍 1.计算机视觉应用 2.计算机视觉技术 图像分类 目标检测 目标跟踪 语义分割 实例分割 BP神经网络的缺点 一.卷积神经网络简介 1.卷积 2.全连接与局部感受野 3.权值共享 ...

最新文章

  1. c语言运行时显示内存不足,请问:c或c++运行时 遇到虚拟内存不足时咋办,帮优化下代码...
  2. java中异常处理机制
  3. JPA中实现单向多对一的关联关系
  4. 我父亲是个盖世英雄,你父亲亦如是!
  5. (三)用docker-compose部署postgres+ postgis
  6. php tp框架做选中删除,关于thinkphp框架实现删除和批量删除的分析
  7. 【算法竞赛学习】资金流入流出预测-挑战Baseline_数据探索与分析1
  8. Javascript性能优化【内联缓存】 V8引擎特性
  9. 数据预处理与数据分类预测
  10. 与内存管理相关的几个宏
  11. 付忠庆的练习小笔记-Codeforces #276 Div2 C
  12. 绝对不能错过!计算机视觉Polygon Mesh Processing读书笔记——4微分几何中的曲线
  13. python安装opencv库、提示找不到pip_OpenCV Python importorror:DLL加载失败:找不到指定的模块...
  14. ACM基础与精选2018
  15. swift的if语句
  16. 基于Java的Android计算器设计与实现
  17. python爬虫之Scrapy CrawlSpider说明——以阳光平台为例
  18. Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
  19. Oracle11g下载
  20. Component name XXX should always be multi-word

热门文章

  1. 360安全浏览器总是锁屏解锁后自启动打开网页,烦~
  2. SX1278调试记录
  3. 80核处理器_【装机帮扶站】第690期:12核amp;16核怪兽CPU配置推荐
  4. win10设置共享文件夹局域网访问
  5. android拦截所有短信源码,拦截垃圾短信咱可别手软 安卓和苹果系统手机处理方法不同...
  6. linux运维是做什么的
  7. ios模拟器装ipa包_用iOS模拟器安装App的方法
  8. ajax errorthrown属性,【技术】error:function (XMLHttpRequest, textStatus, errorThrown)
  9. 机房收费系统心得总结
  10. 基于物联网的智慧农业监测系统(前端界面有web端和微信小程序端)