此篇延伸补充的源头文章链接:

  • 深度学习 + 论文详解: TCN_时间卷积网络_原理与优势

相关主题推荐文章

  • A guide to receptive field arithmetic for Convolutional Neural Networks
  • 你知道如何计算CNN感受野吗?这里有一份详细指南
  • 如何理解空洞卷积(dilated convolution)?

命名由来

Receptive Field 这个词最易开始是从生物领域被 Convolutional Neural Networks 借用到了它的原理描述上面,生物领域的意思在 wiki 上的原文是: The receptive field of an individual sensory neuron is the particular region of the sensory space in which a stimulus will modify the firing of that neuron. (各自独立的感知神经元组成的感受野是一个特殊的感知空间,此空间接受外部的刺激后会改变受刺激本身的神经单元)。

这就好比 CNN 搭建起来的神经网络,kernal 就像是一个类似 stimuli 的 Receptive Field,每当扫过一个整体图像的小块区域后,就会得出一个彼此经过卷积计算的结果,而此结果就好比 modifying the firing of that neuron.

CNN 的运算机制如下图:

直观的看,如果只简单的任由 Convolution Filter 去扫描一张原始图片数据,那经过几次计算后,很快的整个 output 就会变得非常小,output 显示出来的最终结果也就越来越失真,换个角度也可以解释为:由于单位数据涵盖的原始数据量越来越大了,也就越来越描述不清楚其本身涵盖的东西详细内容是什么。而涵盖量用个专业的名字给冠上就是题目名:Receptive Field

Receptive Field 面积

在设计 CNN architecture 的时候,我们期望的目的是能够尽可能不失真的条件下抓取越多面积的信息,并搜集成特征值归纳在新的矩阵中,因此单就 CNN 的特征抓取这件事情本身而言,设计者会希望在 Receptive Field 大一点的情况下去搜集局域特征会好些,这样考虑的因素就不单只有单一像素的信息,而 output 出来的矩阵会缩小的情况就用 zero padding 去克服,让经过 convolution 计算出来的 output 还是原来的尺寸。

一个 Receptive Field 里面的元素重要程度取决于 CNN 使用的 kernal 内部数值分布,一般而言,设计理念为:越接近 Receptive Field 中间的元素其重要程度越大,越加远离中间元素的其他元素,其影响力相对呈现 exponential 曲线递减。因为如此,了解每一层 kernal 的 Receptive Field 面积成为了一件在构筑框架的时候非常重要的事情,他能够让我们更加深刻的理解该层特征值矩阵是纵观了多少面积的原始数据后的出的结论。

计算 Receptive Field 面积前,先要探讨一个 input picture 经过 kernal 做 convolution 后得出的新矩阵大小,公式如下:

  • n_out = 新的矩阵的大小
  • n_in = 神经网络开始前作为输入的该原始数据(可以是图片或是上一层神经网络输出的结果)
  • p = padding 层数,表示我们在 input 数据上面围了多少层 0 元素(为了维持 input = output)
  • k = kernal 尺寸,扫描 input data 的核的长宽大小
  • s = stride,表示每次 kernal 在扫描的时候步伐长度,一次整体前进几格的设定

如果 kernal 在扫描的过程中,其内部元素都排列紧密(kernal 矩阵之间没有间隔),那么 Receptive Field 的大小也就跟上面的 kernal 本身大小相同了,想要增大 Field 的话,就只能够用更大的 kernal 去完成,但是这也意味着更多的计算量与更多的参数参与计算(占用计算资源的同时还同时占用了内存资源),有没有什么办法可以让计算量不变的情况下使得 Field 增大? 聪明的研究员们给出了一个好的答案:Dilated Convolution。

疏松的 Convolution

原本使用 kernal 的时候,都是让其内部的元素“无缝”排列进行 Convolution,为了 0 成本的增加 Receptive Field,原本“无缝”的排列需要预留一些等宽的空格去做 Convolution,详情如下图:

用疏松的 kernal 去扫描的话,原本适配最左边紧密 kernal 去推导的公式也就需要多一个维度的变量去计算最终的 Receptive Field。让原本紧密的 kernal 中间产生空洞的深入细节和目的下篇文章再详细深究 [点击前往(待开通)],这里还是继续关注公式的推导。

这些放在原本 kernal 元素之间的空格,在实际上代码操作的时候用 0 表示即可,每层 kernal 的感受野都可以被计算出来,但是由于不清楚前一层使用被 dilated 多大的 kernal ,所以我们需要知道前一层的 Receptive Field 大小前提下,才可以对下一层的 RF 做估算。公式如下:

j_out  =  j_in * s                     

r_out  =  r_in + (k - 1) * j_in

  • r_out = 新一层 kernal 的 Receptive Field
  • r_in = 前一层 kernal 的 Receptive Field
  • k = kernal 的尺寸,如果是 3×3 的 kernal,则 k = 3
  • j_out = 表示每个原始 pixel 经过 kernal 做 convolution 之后产生的 feature map 之间,其 map 内部每个结果点背后所消耗的每“坨”原始 pixel 之间的距离

实际运算可以参考上面相关文章下面的链接,内容有 python 的代码提供给大家做操练。整体计算过程中并不关心该 kernal 被放大了几个单位,只关心放大后的 kernal 作为一个新的 kernal 整体,其 Receptive Field 是多少。

大的 Receptive Field 感受野可以让每个单位输出的 convolution 计算结果包含了较大面积的信息,有些图像需要更多的全局信息,或是例如声音信号与文字信号等需要更多更深刻参考前后关系的信息,也都有非常正面的帮助。例如物体识别方面的研究就非常注重感受野的大小,同时也是 Dilated Convolution 扩增卷积的发明所属领域,主要原因在于需要探讨到每个 pixel 所属的分类问题,这时候如果用了一般没被放大的 kernal 的话,感受野不够大的同时,还被 pooling 流程给直接砍掉一大半“较大感受野”信息导致无法还原。

论文详解 + TCN 篇知识点补充: Receptive Field_感受野相关推荐

  1. GeniePath:Graph Neural Networks with Adaptive Receptive Paths 论文详解 AAAI2019

    文章目录 1 相关介绍 1.1 感受野的定义 贡献 2 图卷积网络GCN GCN.GraphSAGE.GAT Discussions 3 GeniePath 3.1 Permutation Invar ...

  2. STP和RSTP详解-原理篇

    STP和RSTP详解-原理篇 一.STP 1.1 STP基本概念 1.2 STP三个定时器 1.3 STP BPDU报文 1.3.1 配置 BPDU 1.3.2 TCN BPDU 1.3.3 BPDU ...

  3. 智能城市dqn算法交通信号灯调度_博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型...

    原标题:博客 | 滴滴 KDD 2018 论文详解:基于强化学习技术的智能派单模型 国际数据挖掘领域的顶级会议 KDD 2018 在伦敦举行,今年 KDD 吸引了全球范围内共 1480 篇论文投递,共 ...

  4. ShuffleNetv2论文详解

    ShuffleNet v2 论文详解 近期在研究轻量级 backbone 网络,我们所熟悉和工业界能部署的网络有 MobileNet V2.ShuffleNet V2.RepVGG 等,本篇博客是对 ...

  5. MSTP详解- 原理篇

    MSTP详解-原理篇 一. MSTP产生背景 二. MSTP基本概念 三.MSTP端口角色 四.MSTP的端口状态与收敛机制 五. MSTP 拓扑计算原理 5.1 MSTP 向量优先级 5.2 CIS ...

  6. 【论文精读3】MVSNet系列论文详解-P-MVSNet

    P-MVSNet全名为"P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo ...

  7. Spark RDD 论文详解(三)Spark 编程接口

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  8. Spark RDD 论文详解(一)摘要和介绍

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  9. swin-Transformer论文详解

    swin-Transformer论文详解 – 潘登同学的深度学习笔记 文章目录 swin-Transformer论文详解 -- 潘登同学的深度学习笔记 前言 网络架构 Swin transformer ...

最新文章

  1. Django ORM操作
  2. Google正式将网速列为网站排名因素
  3. openssl生成自签证书
  4. 【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )
  5. Win10如何打开软键盘?
  6. 经销商生意平台化是趋势
  7. 菜狗收到了图后很开心,玩起了pdf 提交格式为flag{xxx},解密字符需小写
  8. iOS 支付宝授权登录,思路
  9. php 视频添加水印,记php调用ffmpeg给视频加文字水印
  10. 闰秒及其对计算机系统影响,闰秒原理及其对计算机系统影响
  11. 6.2 龙格—库塔法
  12. xp 开机画面【欢迎使用】四个字更改方法
  13. IA-32寄存器基本介绍
  14. HmacSHA1签名
  15. 高数---第十章无穷级数---幂级数---收敛区间,函数展开
  16. 【计算机组成原理】如何理解计算机系统的层次结构?
  17. [附源码]Nodejs计算机毕业设计校内考研互助网站Express(程序+LW)
  18. 计算机毕业设计asp.net企业合同管理系统(源码+系统+mysql数据库+Lw文档)
  19. MATLAB实现自编码器(六)——变分自编码器(VAE)官网代码的改进
  20. 矢量插画已成为一个受欢迎的技术

热门文章

  1. VBS调用Windows API函数
  2. 怎么在网上赚钱?7种方法总有一种适合你!
  3. 2022年中国互联网婚恋交友行业发展现状及重点交友平台对比分析:百合佳缘优势明显[图]
  4. mac按键和图标_前进的火车_新浪博客
  5. 标签打印软件如何制作医院输液卡
  6. MySQL海量数据存储与优化(上)
  7. 【饥荒mod制作吧第二篇】mod制作工具下载资源!
  8. 移动端rem单位换算
  9. ASP.NET网上选课系统的设计与实现
  10. 本地与linux互传文件方式