卷积神经网络感受野的计算

article/2025/9/14 15:45:48

1 到底什么是“感受野”(接受野)?——Receptive Field

“感受野”的概念来源于生物神经科学,比如当我们的“感受器”,比如我们的手受到刺激之后,会将刺激传输至中枢神经,但是并不是一个神经元就能够接受整个皮肤的刺激,因为皮肤面积大,一个神经元可想而知肯定接受不完,而且我们同时可以感受到身上皮肤在不同的地方,如手、脚,的不同的刺激,如痛、痒等。这说明皮肤感受器是由很多不同的神经元控制的,那么每一个神经元所能够反映的那块感受器的区域就称之为“感受野”,感受野即每一个神经元所支配的区域,也可以说这个神经元的活动受到那一块区域的影响。
在卷积神经网络中,整个卷积运算的过程正好和上面的皮肤刺激过程类似,我们可以将原始图像对应看成感受器(皮肤),将最终的输出看成是做出反应的那个神经元。最终输出到底是什么状态(神经元的状态)所受到的初始图像哪一块区域的影响(受到那一块皮肤的刺激)不正是上面所描述的过程吗?于是我们给出感受野的定义如下:卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小;通俗点说,就是图像的最终输出的每一个特征(每一个像素)到底受到原始图像哪一部分的影响。
关于感受野的计算需要注意的是:padding并不影响感受野,stride只影响下一层featuremap的感受野,kernel size影响的是该层的感受野。

2 Down To Top计算感受野

为了更好地说明整个卷积神经网络的工作过程,下面以一个例子说明,原始图像的大小为10x10,一共设计了5个网络层,前面4个是卷积层,卷积核的大小为3x3,最后一个是池化层,大小为2x2,为了较简单的说明,本次所有的步幅stride均为1.
注意: 感受野在计算的时候不考虑“边界填充”,因为填充的边界已经不是原始图像本身的内容了,感受野描述的是输出特征到原始图像的映射关系,故而不考虑padding 。实际建模过程中可能需要填充边界,原理一样,只是计算稍微复杂点。

2.1 第一次卷积运算

在这里插入图片描述
从上面可以看出:第一层网络输出的图像中,输出结果为8x8,output1输出的每一个特征(即每一个像素)受到原始图像的3x3区域内的影响,故而第一层的感受野为3,用字母表示为
RF1=3 (每一个像素值与原始图像的3x3区域有关)

2.2 第二次卷积运算

在这里插入图片描述从上图可以看出,经历两次卷积运算之后,最终的输出图像为6x6,output2输出的每一个特征(即每一个像素)受到output1的范围影响为3x3,而output1中的这个3x3又收到原始图像的5x5的范围的影响,故而第二层的感受野为5,即 RF2=5 (每一个像素值与原始图像的5x5区域有关)

2.3 第三次卷积运算

在这里插入图片描述从上图可以看出,经历三次卷积运算之后,最终的输出图像为4x4,output3输出的每一个特征(即每一个像素)受到output2的范围影响为3x3,而output2中的这个3x3又受到output1的5x5的范围的影响,而output1中的这个5x5又受到原始图像的7x7的范围的影响,故而第三层的感受野为7,即
RF3=7 (每一个像素值与原始图像的7x7区域有关)

2.4 第四次卷积运算

在这里插入图片描述
从上图可以看出,经历四次卷积运算之后,最终的输出图像为2x2,output4输出的每一个特征(即每一个像素)受到output3的范围影响为3x3,而output3中的这个3x3又受到output2的5x5的范围的影响,而output2中的这个5x5又受到output1的7x7的范围的影响,而output1中的这个7x7又受到原始图形的9x9的范围的影响,故而第四层的感受野为9,即
RF4=9 (每一个像素值与原始图像的9x9区域有关)

2.5 第五次池化运算

从上图可以看出,经历四次卷积运算和一次池化运算之后,最终的输出图像为1x1,output5输出的每一个特征(即每一个像素)受到output4的范围影响为2x2,而output4中的这个2x2又受到output3的4x4的范围的影响,而output3中的这个4x4又受到output2的6x6的范围的影响,而output2中的这个6x6受到output1的8x8的范围的影响,而output1中的这个8x8受到原始图像的10x10的范围的影响,故而第五层的感受野为10,即
RF5=10 (每一个像素值与原始图像的10x10区域有关)

2.6 递推公式推导

从上面的过程可以看出,感受野的推导是一个递推的过程,下面将展示这一过程。

RF1=3k1(第一层的感受野,永远等于第一个卷积核的尺寸大小)k表示第几个卷积层
RF2=5k1 + (k2-1)RF1+ (k2-1)
RF3=7k1 + (k2-1) + (k3-1)RF2+ (k3-1)
RF4=9k1 + (k2-1) + (k3-1) + (k4-1)RF3+ (k4-1)
RF4=10k1 + (k2-1) + (k3-1) + (k4-1) + (k5-1)RF4+ (k5-1)

2.7 总结:

从上面可以看出,感受野的大小的求解是一个不断递进的过程,因为第一层的每一个像素的感受野始终是第一个卷积核的大小,故而RF1总是最先确定,然后以此类推,逐步求出RF2、RF3、RF4、RF5……但是上面的所有步长均为 1 ,如果每一次卷积运算的步长 stride 不为1呢,同理,这里直接给出递推公式:
R F n = R F n − 1 + ( k n − 1 ) ∗ s t r i d e n RF_{n}=RF_{n-1} + (k_{n}-1)*stride_n RFn=RFn1+(kn1)striden
其中stride_n表示的是第n次卷积的移动步幅stride。求解过程是从RF1开始的。

3 Top To Down计算感受野

3.1 计算公式

TOP To Down 计算感受野时有下面几个知识点需要知道:

  • 最后一层(卷积层或池化层)输出特征图感受野的大小等于卷积核的大小。
  • 第i层卷积层的感受野大小和第i层的卷积核大小和步长有关系,同时也与第(i+1)层感受野大小有关。
  • 计算感受野的大小时忽略了图像边缘的影响,即不考虑padding的大小。

关于感受野大小的计算方式是采用从最后一层往下计算的方法,即先计算最深层在前一层上的感受野,然后逐层传递到第一层,使用的公式可以表示如下:

R F i = ( R F i + 1 − 1 ) × s t r i d e s i + K s i z e i RF_i = (RF_{i+1}-1) \times strides_i + Ksize_i RFi=(RFi+11)×stridesi+Ksizei
其中, R F i RF_i RFi是第i层卷积层的感受野, R F i + 1 RF_{i+1} RFi+1是(i+1)层上的感受野,stride是卷积的步长,Ksize是本层卷积核的大小。
注意: 此公式与上边的Down To Top的递归公式在原理上是一致的,一个向前计算一个向后计算。

3.2 计算VGG16网络每层的感受野

在这里插入图片描述我们从最后一层的池化层开始计算感受野:

pool3:RF=2(最后一层池化层输出特征图的感受野大小等于卷积核的大小,#pool3在前一层特征图上的感受野是2x2

conv4:RF=(2-1)*1+3=4。#pool3在conv4输出的特征图上的感受野是4x4

conv3:RF=(4-1)*1+3=6。 #pool3在conv3输出的特征图上的感受野是6x6

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。

总结

熟悉感受野的计算可以帮助分析网络结构,上面两种计算感受野的方式,可以哪种方便使用哪种。

参考文献

  1. 卷积神经网络中感受野的理解和计算
  2. 看完还不懂卷积神经网络“感受野”?那你来找我

http://chatgpt.dhexx.cn/article/RFJLUhts.shtml

相关文章

深度学习-感受野与有效感受野

文章目录 感受野增加感受野有效感受野与反卷积的区别总结 感受野 卷积核的大小(高度和宽度)定义了一个区域的空间范围,改区域可以被卷积核在每个卷积步骤中修改,因而卷积核的大小称为卷积核的“感受野”。 感受野(receptive field, RF),卷积…

3.3.2 感受野

3.3.2 感受野 1962年Hubel和Wiesel通过对猫视觉皮层细胞的研究,提出了感受野(receptive field)的概念,Fukushima基于感受野概念提出的神经认知机(neocognitron)可以看作是卷积神经网络的第一个实现网络。 3.3.6 卷积网络的感受野Receptive field (RF)以…

目标检测和感受野的总结

目录 1、感受野 2、理论感受野计算 2.1、自上而下感受野计算 2.2、自下而上的计算方法 3、作用 4、关系 5、总结 6、参考文献 经典目标检测和最新目标跟踪都用到了RPN(region proposal network),锚框(anchor)是RPN的基础,感受野(receptive field…

CNN中的感受野

CNN中有一个概念叫局部感受野(local receptive field),那什么是感受野呢?一般的CNN结构都是卷积-池化这样重复下去,比如下表: layers size stride input100*100*1---conv13*31pool12*22conv23*31pool22*2…

详解CNN的感受野

目录 前言 CNN特征图可视化 感受野计算公式 计算Receptive Field Size的小程序 前言 感受野(receptive field,RF)也许是CNN中最重要的概念之一,从文献上来看,它应当引起足够的重视。目前所有最好的图像识别方法都是…

感受野计算问题

我觉得以下两篇文章,在感受野的含义和计算上,说的是比较好的。 1、深度学习:VGG(Vision Geometrical Group)论文详细讲解_HanZee的博客-CSDN博客 2、关于感受野的总结 - 知乎 我们知道一个图片经过了一个7 * 7卷积…

目标检测中的感受野

一、定义 卷积神经网络输出特征图上的像素点 在原始图像上所能看到区域的大小,输出特征会受感受野区域内的像素点的影响 在卷积神经网络中,感受野(Receptive Field)是指特征图上的某个点能看到的输入图像的区域,即特征图上的点是由输入图像中感受野大小区域的计算…

感受野的理解与调研

问题来源 讲论文的时候,突然被别人问到感受野是个什么东东? 就百度查了一下: 重要知识链接总结 画深度学习的模型图方法:知网链接 神经网络模型图网站:画模型 感受野 一、感受野的概念 感受野(Receptive Field&am…

卷积的感受野

title: 卷积的感受野 date: 2022-06-14 19:52:38 tags: 深度学习基础 卷积的感受野 文章目录 title: 卷积的感受野 date: 2022-06-14 19:52:38 tags: 深度学习基础卷积的感受野什么是感受野为什么浅层特征预测小目标,深层特征预测大目标深层特征检测大目标&#xf…

感受野

感受野 先图解一下啥是感受野 感受野具体就是通过卷积核扫描原始图片之后一个feature map的格子代表原始图片的范围大小。 如上图,这是一个55的原始图片padding11,卷积核33,步距2。卷积扫描两次的示意图。 (2个33的卷积核扫描两次…

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

"微信公众号" 本文同步更新在我的微信公众号里面,地址:https://mp.weixin.qq.com/s/qMasyxRILzyEF3YyLvjzqQ 本文同步更新在我的知乎专栏里面,地址:https://zhuanlan.zhihu.com/p/39184237 1. 感受野的概念 在卷积神经…

感受野详解

目录 概念举例感受野的计算规律两种计算感受野的方法从前往后从后往前 推导VGG16网络的感受野结构从后往前从前往后 感受野大于图片为什么要增大感受野 概念 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征…

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

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

感受野的含义及计算方法

1 感受野(Receptive Field)的概念 感受野(Receptive Field)的概念:在卷积神经网络中,感受野的定义是 卷积神经网络每一层输出的特征图(feature map)上的像素点在原始输入图像上映射的区域大小。第一层卷积层的输出特征图像素的感…

感受野是什么?

在卷积神经网络中,感受野(Receptive Field)是指特征图上的某个点能看到的输入图像的区域,即特征图上的点是由输入图像中感受野大小区域的计算得到的。神经元感受野的值越大表示其能接触到的原始图像范围就越大,也意味着它可能蕴含更为全局,语义层次更高的…

细说卷积神经网络(CNN)中所谓的“感受野”(Receptive Field)

感受野 一、感受野1.全连接网络与卷积神经网络2.进一步体验“感受野”3.计算感受野通用方式4.综合实例5.总结 一、感受野 感受野:卷积神经网络中每个网络层输出的特征图中的单个元素映射回原始输入特征中的区域大小,网络层越深,其输出特征的元…

【Kafka】10道不得不会的 Kafka 面试题

博主介绍: 🚀自媒体 JavaPub 独立维护人,全网粉丝15w,csdn博客专家、java领域优质创作者,51ctoTOP10博主,知乎/掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和副业。🚀 公众号&…

Java程序员必备的50道Kafka面试题及解析,面试再也不怕问Kafka了

前言 Apache Kafka的受欢迎程度很高,Kafka拥有充足的就业机会和职业前景。此外,在这个时代拥有kafka知识是一条快速增长的道路。所以,在这篇文章中,我们收集了Apache Kafka面试中常见的问题,并提供了答案。因此&#…

Kafka面试题总结

1、kafka是什么? 可以用来做什么? Kafka 是一个分布式的、高吞吐量的、可持久性的、自动负载均衡的消息队列。 它不仅可以实现传统意义上MQ功能,异步、解耦、削峰。 还可以作为大数据的流处理平台。 2、为什么kafka安装需要依赖Zookeeper? 配置中心&#xf…

kafka面试题知识点整理

kafka-面试题整理 刚刚学了kafka,整理一些面试题知识点,帮助记忆1、什么是kafka2、什么是消息队列3、kafka通信流程4、Leader选举流程5、副本及同步原理6、消费者消费数据的方式7、分区分配策略以及原理8、如何保证消息的可靠性9、数据有序/乱序10、幂等…