卷积神经网络(CNN)中感受野的计算问题

感受野

在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上每个像素点在原始图像上映射的区域大小,这里的原始图像是指网络的输入图像,是经过预处理(如resize,warp,crop)后的图像。

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

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

总而言之,我们感受野就额是要求神经网络中间某一层的输出特征图上的一个元素所在原图上的覆盖大小.

感受野的计算

如下图所示的原始图像,经过kernel_size=3, stride=2的Conv1,kernel_size=2, stride=1的Conv2后,输出特征图大小为2×2,很明显,原始图像的每个单元的感受野为1,Conv1的每个单元的感受野为3,而由于Conv2的每个单元都是由范围的Conv1构成,因此回溯到原始图像,每个单元能够看到大小的区域范围。

那么卷积神经网络的每一层感受野应该如何计算呢?很明显,深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系,而涉及到这两个参数的有卷积层和pooling层。我们用分别kn,sn,rn表示第n层的kernel_size,stride,receptive_field,通过对n-1层输出特征图的kn×kn个感受野为rn−1的特征单元卷积得到的n层输出特征单元最大的感受野为rn−1×kn,但在对n-1层输入特征图进行卷积时,经常会由于sn−1小于kn−1而存在重叠,因此要减去个重叠部分(kn=2存在一个重叠部分,kn=3存在两个重叠部分)。

重叠的部分怎么算呢?显然重叠的部分一定是与你的stride的有关的,如果你的stride很大,显然是不会有重合,所以,越小重合越多.(注意:这里计算的是在原图上的重合)

显然,kn−sn表示的是一次重合的多少。如果要计算在原图上的重合,则

(kn−sn)×rn−1

是不是很简单啊,由此我们可以知道要求第n层输出的感受野,就要知道前一层n-1的感受野,以及本层的kernel和stride大小,这是一个不断递推的过程.

对于卷积神经网络,其感受野计算有如下规律:

或者写为:

另一种计算卷积核的方法------逆向法

从当前层开始计算,慢慢往上计算:

RF=(RF−1)∗stride kernelsize

如何增加感受野

在深度学习中,对具体的任务有时需要增加感受野来提高性能,比如在人体姿态估计中,大的感受野对学习长距离的空间位置关系(long-range spatial relationship),建立内隐空间模型(implicit spatial model)有帮助,因此也要知道增大感受野的手段。

根据以上说的感受野的计算,也可以分析出,增加层数、增大strides,增加fsize即卷积滤波器的大小都可以增加感受野的大小。

在看CPM(Convolutional Pose Machines) 时,作者做了一个简单的总结:

Large receptive fields can be achieved either by pooling at the expense of precision, increasing the kernel size of the convolutional filters at the expense of increasing the number of parameters, or by increasing the number of convolutional layers at the risk often countering vanishing gradients during training.

总结一下共三种方法:

  • 增加pooling层,但是会降低准确性(pooling过程中造成了信息损失)
  • 增大卷积核的kernel size,但是会增加参数(卷积层的参数计算参考[2])
  • 增加卷积层的个数,但是会面临梯度消失的问题(梯度消失参考[3])

CPM中作者用的增加卷积层个数的方法来增加感受野,但是他用多阶段训练的方式并引入中间层监督的方法来解决梯度消失的问题。

相关推荐
com_4sapi9 分钟前
2025 权威认证头部矩阵系统全景对比发布 双榜单交叉验证
大数据·c语言·人工智能·算法·矩阵·机器人
2401_8414956411 分钟前
【自然语言处理】基于规则基句子边界检测算法
人工智能·python·自然语言处理·规则·文本·语言·句子边界检测算法
科技云报道14 分钟前
AI+云计算互融共生,2025AI云产业发展大会即将举行
人工智能·云计算
飞哥数智坊22 分钟前
TRAE SOLO 正式版实战:一个全栈打卡项目的真实体验
人工智能·trae·solo
qy-ll1 小时前
遥感论文学习
人工智能·深度学习·计算机视觉·gan·遥感·栅格化
G31135422731 小时前
深度学习中适合长期租用的高性价比便宜的GPU云服务器有哪些?
服务器·人工智能·深度学习
掘金安东尼1 小时前
文心 5.0:原生全模态时代的技术分水岭
人工智能
徽4401 小时前
YOLOv5植物模型开发综述
人工智能·目标检测·计算机视觉
徐行tag1 小时前
RLS(递归最小二乘)算法详解
人工智能·算法·机器学习
阿里云云原生2 小时前
阿里云 FunctionAI 技术详解:基于 Serverless 的企业级 AI 原生应用基础设施构建
人工智能·阿里云·serverless