深度理解感受野(一)什么是感受野?

人工智能374

Introduction

经典目标检测和最新目标跟踪都用到了RPN(region proposal network),锚框(anchor)是RPN的基础,感受野(receptive field, RF)是anchor的基础。本文介绍感受野及其计算方法,和有效感受野概念

什么是感受野?

感受野与视觉

  • 感受野(receptive field)这一概念来自于生物神经科学,是指感觉系统中的任一神经元,其所受到的感受器神经元的支配范围。感受器神经元就是指接收感觉信号的最初级神经元
  • 视觉来自于光在个体感受器上的投射,它将客观世界的物理信息转化为人们可以感知的神经脉冲信号。
    [En]

    Vision comes from the projection of light on individual receptors, which converts the physical information of the objective world into nerve pulse signals that people can perceive.*

感受野的定义

One of the basic concepts in deep CNNs is the receptive field, or field of view, of a unit in a certain layer in the network. Unlike in fully connected networks, where the value of each unit depends on the entire input to the network, a unit in convolutional networks only depends on a region of the input.

This region in the input is the receptive field for that unit.

  • 在卷积神经网络中,感受野(receptive field)不像输出由整个网络输入所决定的全连接网络那样,它是可以存在于网络中任意某层,输出仅由输入部分决定
  • 就是指输出feature map上某个元素受输入图像上影响的区域

    [En]

    ! [] (https://img-blog.csdnimg.cn/20210525205712705.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDc1NjAwMA==,size_16,color_FFFFFF,t_70)

如图所示,共有3个feature map输出。该图说明了2个33的conv可以代替1个55的conv层

  1. Layer1中方格可看作是一个元素,33的绿色方格则是一个33的卷积核
  2. Layer2由一个33的卷积核经过卷积运算输出,输出尺寸是33(假设stride=1,padding=0)显而易见,layer2中的绿色方格是由layer1中3*3的绿色方格所决定的。那么这一位置的感受野就是layer1中的绿色方格区域
  3. Layer3由layer2经过3*3的conv层输出,只有一个

; 理论感受野

https://distill.pub/2019/computing-receptive-fields/

如何计算?

卷积层的理论感受野可以由递推公式计算出来。首先定义下参数意义,r r r代表感受野l l l代表层数k k k代表卷积核大小s s s代表步长
r l = r l − 1 + ( k l − 1 ) ∗ ∏ i = 0 l − 1 s i r_l = r_{l-1}+(k_l - 1)*\prod_{i=0}^{l-1}{s_i}r l ​=r l −1 ​+(k l ​−1 )∗i =0 ∏l −1 ​s i ​
最大池化层的理论感受野
r l = r l − 1 + ( k l − 1 ) r_l = r_{l-1}+(k_l - 1)r l ​=r l −1 ​+(k l ​−1 )
深度理解感受野(一)什么是感受野?

图中,由1个conv33(stride=1,pad=1),1个ReLu层,1个22MaxPooling层(k=2,s=2,p=0)组成。f 0 f_0 f 0 ​为输入层,f 4 f_4 f 4 ​层 为输出层。很明显能够发现,f 4 f_4 f 4 ​层的感受野为6。推导过程如下

  1. f 1 f_1 f 1 ​默认感受野为1,即r 0 = 1 r_0=1 r 0 ​=1
  2. f 2 f_2 f 2 ​层为33conv层,r 1 = r 0 + ( k 1 − 1 ) ∗ ∏ i = 0 0 s 0 r_1=r_0+(k_1-1)\prod_{i=0}^{0}{s_0}r 1 ​=r 0 ​+(k 1 ​−1 )∗∏i =0 0 ​s 0 ​即r 1 = 1 + ( 3 − 1 ) ∗ 1 = 3 r_1=1+(3-1)*1=3 r 1 ​=1 +(3 −1 )∗1 =3
  3. f 3 f_3 f 3 ​层为激活函数层ReLu,不改变理论感受野大小(也不是没作用,有效感受野里面会提到它的作用)r 2 = 3 r_2=3 r 2 ​=3
  4. f 4 f_4 f 4 ​层为33conv层,和上一个conv层一样,r 3 = 3 + ( 3 − 1 ) ∗ 1 = 5 r_3=3+(3-1)1=5 r 3 ​=3 +(3 −1 )∗1 =5
  5. f 5 f_5 f 5 ​层为22maxpooling层,r 4 = 5 + ( 2 − 1 ) ∗ 1 = 6 r_4=5+(2-1)1=6 r 4 ​=5 +(2 −1 )∗1 =6

按照上述方法可以计算出主流的backbone理论感受野大小,如下图所示。 数据来自https://distill.pub/2019/computing-receptive-fields/
深度理解感受野(一)什么是感受野?
从感受野的计算公式很明显能够看出, stride kernel_size rf_size都会对其产生影响,其中 srtide对感受野大小起决定性作用。

; 有效感受野

有效感受野是在NIPS2016中的Understanding the Effective Receptive Field in Deep Convolutional Neural Networks提出的。

  • 有效感受野是一种超参数, 无法像理论感受野那样被精确计算。但是文献[2]中采用求偏导数的方法对每个图像上的像素点,计算出他们对输出特征图的贡献值,并可视化。
  • 有限感受野往往比理论感受野要小一些,关系大概是 anchor
  • 有效感受野呈 高斯分布,并不是所有像素点的贡献都相同。直观的来说, *感受野中间的像素对于输出会有更大的影响

以下内容整理自:https://blog.csdn.net/DD_PP_JJ/article/details/104448825

深度理解感受野(一)什么是感受野?
采用不同初始化权重的方法和添加ReLU作为激活函数进行实验。Uniform初始化方法使卷积核的权重都为1,没有非线性性质。引入ReLU之后,网络中增加了非线性性,分布变得 a bit less Gaussian

深度理解感受野(一)什么是感受野?

深度理解感受野(一)什么是感受野?
不同的激活函数对ERF的分布也有影响,这说明ERF的分布也取决于 input。ReLU的高斯分布没有另外两个平滑,生成了一个较少的高斯分布,ReLU导致很大一部分梯度归零。上采样和空洞卷积可以增大感受野

深度理解感受野(一)什么是感受野?
文章中也给出了答案,见上图,随着网络层数的加深,实际有效的感受野是程n \sqrt{n}n ​ 级别增长。而右图展示了随着网络层数的加深,有效感受野占理论感受野的比例是按照1 n \frac{1}{\sqrt{n}}n ​1 ​级别进行缩减的。其中需要注意的是实际感受野的计算方式:若像素值大于(1-96.45%)的中心像素值,就认为该像素处于实际感受野中

哪些操作可以改变感受野?

  • Convolution
  • DeConvolution
  • Pooling
  • Residential connection
  • Concatenation

参考文献

[1] A guide to convolution arithmetic for deep learning
[2] Understanding the Effective Receptive Field in Deep Convolutional Neural Networks

Original: https://blog.csdn.net/weixin_40756000/article/details/117264194
Author: 黑夜里游荡
Title: 深度理解感受野(一)什么是感受野?

Original: https://blog.csdn.net/weixin_40756000/article/details/117264194
Author: 黑夜里游荡
Title: 深度理解感受野(一)什么是感受野?

相关文章
人工智能

多模态数据融合

1.多模态数据含义: 狭义:多媒体数据,如文本,音频,视频 广义:对原始数据集采用不同的特征提取方法得到的不同特征组合 2.数据融合: 整合从多模态数据中得到的补充信息,以提升模型分类性能,被视为 多...
人工智能

聚类分析①

1、概念 1.1 聚类的定义 聚类(Clustering)是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽...
人工智能

语音交互的基本概念和设计实践

语音技术的发展,将会给我们的产品设计带来极大的改变。未来的产品方向,或者说是人机交互的方式,极可能是视觉与听觉的更加立体的交互,我们会有机会来设计一种完全不一样的用户体验,和完全不同的产品认知。 一、...
人工智能

语音算法相关 CTC

CTC 解决输出和label(token)不对齐的问题 单向RNN 流式实时 双向RNN 整句 CTC的原理 比如 w的音频帧 x1 -------------->w 噪声(静音&识别不...
人工智能

2020中国人工智能「舆情分析」TPO20

TOP20推荐榜单 ; 行业融资图谱 何为舆情 舆情二字,闻之者寡,也鲜有人能完整描述它。 或许我们可以换个词来理解,即"舆论",也是当今互联网时代时常萦绕大众耳旁的代表性词汇。 而舆情就是"舆论情况...