关于CNN的感受野一些理解

本文提供了四种不同的感受野定义,并介绍了如何计算感受野的数量和范围大小。适用于理解卷积神经网络中不同层之间的相互作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.感受野的定义

查找了很多的资料,终于对感受野有了一些浅薄的了解,由于每本书给的感受野的概念都不太同,但殊途同归,所以这边主要给了4个定义:

定义1

    两个相邻的layer层,假设第一层是输入层x,第二层的输出为s,我们刻意强调输出层s的一个输出单元(units)s3以及x中有影响该单元的输入单元,这些单元被称为s3的感受野。
    每个神经元的感受野的范围是相对的,假设对于相邻层,这个宽度为q,但对于中间有间隔层的不相邻的层,例如m-1层和m+1层,这个值可能就是n了。

定义2

    把相邻输入神经元的子矩阵与下一层的单个隐藏神经元连接,这个隐藏的单个神经元就代表一个局部感受野,这个局部感受野的范围为相邻输入神经元的子矩阵的大小。

定义3

    卷积神经网络每一层输出的特征图上的像素点在原始图像上映射的区域大小

定义4

    网络内部不同位置的神经元对原图像感受范围的大小

二.对感受野数量和范围大小的计算

1.对感受野数量的计算

卷积神经网络每一层输出的特征图(feature map)的单元(unit)的数量。

2.对感受野范围大小的计算

    假设一个卷积核(kernel_size)为m * m,padding为k,stride为d * d.

(1)对于相邻层来说

    局部感受野的范围一般是kernel_size

(2)对于不相邻的层来说

    需要我们从top层开始层层计算直到追溯会input map。从而计算出RF(感受野范围)
    公式:
    (N-1)_RF = f(N_RF,kernel_size,stride) = (N_RF-1) * stride+kernel_size
    N_RF为kernel_size

### 感受野的概念及其在CNN和Transformer中的比较 #### 1. 感受野的定义 感受野(Receptive Field, RF)是指神经网络某一层某个节点能够感知到的输入数据范围。对于图像处理任务而言,感受野越大,则该层节点能获取的信息越全局化;反之则更加局部化。 --- #### 2. CNN中的感受野计算方法 在卷积神经网络(Convolutional Neural Network, CNN)中,感受野可以通过以下公式递归地计算得出: \[ \text{RF}_{l} = (\text{RF}_{l-1}-1)\cdot S_{l} + K_{l}, \] 其中: - \( \text{RF}_l \): 表示第\( l \)层的感受野; - \( S_l \): 第\( l \)层的步幅(stride); - \( K_l \): 第\( l \)层的卷积尺寸[^3]。 通过上述公式的迭代应用,可以从浅层逐步推导至深层的感受野大小。例如,在给定初始条件的情况下,经过多层卷积操作后,最终可获得整个网络的最大感受野。 --- #### 3. Transformer中的感受野分析 与传统CNN不同的是,Transformers并不依赖于显式的空间结构来进行特征提取。相反,它们采用自注意力机制(Self-Attention Mechanism),使得任意两个位置之间的关系都能够被直接建模而无需考虑距离远近的影响。因此,在理论上讲,Vision Transformers(ViTs)等模型具有无限大的有效感受野——因为每一个token都可以与其他所有tokens相互作用[^2]。 然而实际当中由于计算资源有限以及为了提高效率通常会对attention map施加某些约束比如窗口划分(local window attention),这实际上相当于引入了一种形式的空间局限性从而间接限定了其最大可能达到的实际物理意义上的“感受区域”。 --- #### 4. CNN vs Transformer: 感受野特性对比总结表 | 特性 | 卷积神经网络(CNNs) | 变压器(Transfomers) | |-------------------|----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------| | **感受野增长方式** | 层级式增加:随着层数加深线性或者指数型扩展 | 非层级固定全连接:原则上一次性覆盖全部输入 | | **计算复杂度** | 较低,主要取决于卷积运算 | 更高,尤其当序列长度较长时呈平方级别上升 | | **适用场景优势** | 小尺度模式识别精准高效 | 大规模上下文理解能力强 | 尽管如此需要注意一点就是虽然transformer具备理论上的全域关联能力但是实践中往往还是需要结合具体应用场景做出适当调整优化才能发挥最佳性能表现出来[^1]. --- ```python def cnn_receptive_field(kernels, strides): rf = 1 for i in range(len(kernels)): rf = (rf - 1) * strides[i] + kernels[i] return rf # Example usage of the function with a hypothetical network configuration. example_kernels = [3, 3, 3] # Kernel sizes at each layer. example_strides = [1, 2, 2] # Stride values corresponding to those layers. print(f"CNN Receptive Field Size: {cnn_receptive_field(example_kernels, example_strides)} pixels.") ``` 以上代码片段展示了如何依据指定参数列表动态求解标准二维卷积层堆叠情形下的总接收视野宽度数值结果演示过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值