Receptive field 感受野 原理+计算+图解+空洞卷积hole

本文详细探讨了卷积神经网络中感受野的概念,通过实例展示了不同配置下感受野的计算与可视化,强调了感受野在CNN设计中的重要性。通过固定大小的CNN特征图可视化,阐述了如何计算感受野大小并分析其增长速度,为理解深层神经网络的特征提取提供了深入见解。

  • 一般认为,人类的对外界的感知都是从局部到全局的,而对于图像来说,也是局部的像素在空间上的联系较为紧密(比如离得近的像素可能具有相同的颜色纹理),距离较远的像素相关性较弱。

  • 因而,每个神经元没有必要对全局进行感知,只需要对局部进行感知,然后在高层将这些局部信息组合起来,就得到了全局信息。

  • 所以说,局部感知野就是指卷积层的神经元只和上一层的feature map局部相联系。

The fixed-sized CNN feature map visualization

每个维度输出feature map的数量可以用下列公式计算:

——> the number of output features in each dimension:

title

Example

为了简化,下图假设CNN结构是对称的正方形。所以两个维度对于所有的变量都有相同的值,如果CNN结构或者输入图片不对称,可以分开计算feature map的属性。

1、一般可视化CNN feature map

卷积(kernel_size k=3x3,padding_size p=1x1, stride s=2x2)

title

  • 上图 5×5 input (蓝色)通过卷积,我们可以得到输

### 空洞卷积感受野计算 在卷积神经网络中,空洞卷积通过引入膨胀率(dilation rate)来扩展感受野而不增加参数量或计算复杂度。具体来说,在标准卷积操作的基础上,空洞卷积会在滤波器之间插入一定数量的零值,从而扩大其覆盖范围。 对于单层空洞卷积而言,假设输入张量尺寸为 \( W \times H \),核大小为 \( K \),步幅为 \( S \),填充为 \( P \),以及膨胀率为 \( D \),则该层输出特征图上任意一点对应于输入图像上的感受野宽度可由下述公式得出: \[ R = (K - 1) * D + 1 \] 其中: - \( R \) 表示当前层节点的实际感受野; - \( K \) 是卷积核窗口边长; - \( D \) 则为空洞卷积中的膨胀系数[^2]。 当考虑多层堆叠情况下的总感受野时,则需逐层累加各单独层贡献的部分,并考虑到前一层已经形成的较大感受野会对后续层产生影响。因此,第 l 层的感受野可以表示为: \[ R_l = ((R_{l-1} - 1)*S_{l}+(K_l-1)*D_l+1)-P_l*2 \] 这里, - \( R_l \) 代表第 l 层的感受野; - \( S_l, K_l, D_l, P_l \) 分别指代第 l 层对应的步长、卷积核大小、膨胀因子及时域/空间维度方向上的补零数[^3]。 值得注意的是,随着层数加深,即使保持相同的物理距离不变的情况下,由于前面几层累积起来的巨大视野效应,最终得到的整体感受野也会变得非常大。 ```python def calculate_receptive_field(kernel_size, dilation_rate): """Calculate the receptive field of a dilated convolution layer.""" return (kernel_size - 1) * dilation_rate + 1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值