当前位置: 首页 > news >正文

怎么计算感受野? 怎么增加感受野?

🌟1. 什么是感受野(Receptive Field)?

感受野是指 CNN某一层中的一个神经元在输入图像上能“看到”的区域大小

比如你在第5层的一个神经元,其感受野大小是11×11,意思是它对原始输入图像的11×11区域有响应。感受野越大,神经元越能“看得远”,获取更全局的信息


🧮2. 感受野怎么计算?

一维卷积为例(二维同理):

我们定义:

• k_i:第 i 层卷积核的大小(kernel size)

• s_i:第 i 层的步长(stride)

• R_i:第 i 层的感受野大小

✅ 公式如下:

初始输入层:

R_0 = 1

从第1层开始迭代计算:

R_i = R_{i-1} + (k_i - 1) \cdot \prod_{j=1}^{i-1} s_j


📘 例子(经典 VGG-style 卷积):

设有三层卷积,每层 kernel=3,stride=1:

层数

kernel

stride

感受野

Conv1

3

1

3

Conv2

3

1

5

Conv3

3

1

7

每次都在原来的基础上加 (k-1)(因为 stride=1,乘积项为1)。


🔍3. 如何增加感受野?

感受野太小 → 网络只能看“局部” → 可能捕捉不到全局结构

感受野大 → 网络能整合更“远”的信息 → 有利于识别整体结构或长程依赖。

📈 增加感受野的方式:

方法

原理

特点

✅ 增加网络深度

多堆几层卷积层

简单有效,计算代价高

✅ 使用更大卷积核

比如 kernel=5 或 7

快速增大感受野,参数多

✅ 加步长(stride>1)

扩大感受野但可能损失精度

信息压缩快

✅ 池化操作(如 max pooling)

每次缩小尺寸,感受野迅速增大

信息损失大

✅ 使用空洞卷积(dilated conv)

扩张卷积,不增加参数量,跳跃采样

感受野指数增大

✅ 残差连接 + 金字塔结构(如 FPN、HRNet)

多尺度融合,间接增加全局感受能力

实用但结构复杂


🤔补充:感受野 ≠ 有效感受野(Effective Receptive Field)

• 理论感受野是数学上能到达的范围;

• 实际上,靠近中心区域对输出影响最大,边缘很弱 → 称为“有效感受野”;

• 所以实际有效信息往往小于理论计算值。

如何理解R_i = R_{i-1} + (k_i - 1) \cdot \prod_{j=1}^{i-1} s_j

这个公式:

R_i = R_{i-1} + (k_i - 1) \cdot \prod_{j=1}^{i-1} s_j

是用于逐层计算感受野的标准公式,它揭示了i 层神经元在原始输入上的感受野大小,考虑了前面所有层的卷积核大小和步长对感受野的“放大”作用。

✅1. R_i 表示什么?

R_i:第 i 层某个神经元在原始输入图像上对应的感受区域大小。


✅2. 为什么是R_{i-1} + (k_i - 1) \cdot \prod_{j=1}^{i-1} s_j

这个公式的两个部分可以拆开理解:

🔸(1) R_{i-1}

上一层的感受野——已经“看”的区域。

🔸(2) (k_i - 1) \cdot \prod_{j=1}^{i-1} s_j

本层卷积操作新增的感受区域大小。


✅3. \prod_{j=1}^{i-1}s_j是干啥的?

• 它表示 i 层每个神经元的输出位置在原图上的步距

• 比如:

• 如果你前面每层 stride=2,到了第4层,每移动一个神经元,对应的原图要跳 2 \times 2 \times 2= 8 个像素。

• 所以:卷积层越深、前面 stride 越大,本层加的感受野越“宽”。


✅总结记忆法:

当前层的感受野 = 上一层能看到的 + 本层核大小 - 1(因为中间重叠) × 上一层输出对应的原图步距

这个乘积项本质上告诉你:“我加进来的这一小块,其实在原图上跨了多大范围”。

每一层的步长 stride 会 指数级放大 后续层在原图上的“跳跃间隔”,这是一个 层层递乘的过程,不是简单的累加。

相关文章:

  • 数据仓库:规范
  • RTDETR融合[CVPR2025]DnLUT中的MuLUTUnit模块
  • QGIS获取建筑矢量图-Able Software R2V
  • 电脑如何使用事件查看器查看系统、程序异常信息并处理?
  • 一:基础课程
  • Docker设置代理
  • P1182 数列分段 Section II(二分)
  • T113s3远程部署Qt应用(dropbear)
  • 【家政平台开发(18)】缓存机制设计
  • 基于Python网络爬虫的智能音乐可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
  • 【MATLAB例程】交互式多模型(IMM),模型使用:CV,CT左转、CT右转,二维平面,三个模型的IMM,滤波使用EKF,附下载链接
  • 编程题学习
  • SSE Emitter在Spring Boot和Vue中的简单使用
  • 青少年编程与数学 02-016 Python数据结构与算法 01课题、算法
  • 计算机网络 3-1 数据链路层(功能+组帧+差错控制)
  • 请问你怎么看代软件测试的潜力和挑战?
  • Kafka 漏消费和重复消费问题
  • SDL多线程编程
  • Zemax设计实例:AR近眼显示光学系统(60°视场,8K分辨率,超薄波导)
  • 程序化广告行业(62/89):DSP系统的媒体与PDB投放设置探秘