关于偶数卷积核和padding的副作用可以参考这个博客

首先,本文是翻译了 ICCV 2021的一篇文章:Global Pooling, More than Meets the Eye: Position Information is Encoded Channel-Wise in CNNs

大家直接可以下载了

序言

首先说一些常规认识。关于CNN能否提取图像中的位置信息,我们一直以来的直觉是:pooling层会让图像丧失位置特征信息。这个观点好多文献里面都是直接说的,我就举个例子:最知名的FPN算法:feature pyramid networks for object detection。下载路径就是这个。
这个论文这样说的:原来多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略。另外虽然也有些算法采用多尺度特征融合的方式,但是一般是采用融合后的特征做预测,而本文不一样的地方在于预测是在不同特征层独立进行的。

但是,该博客介绍的文章却给出了颠覆性的结论:位置信息是按通道编码的。其实,得出这个接论也不是五官无的乱猜的,而是根据前一篇论文的接论猜测出来的。这篇论文在探索CNN提取目标位置信息的时候,使用VGG和ResNet两个网络。在评估性能是发现ResNet总是表现出比VGG更优秀的性能。

下面翻译全文

摘要

在本文中,我们挑战了一个普遍的假设,即通过全局池化将卷积神经网络(CNN)中的三维(空间通道)张量的空间维度压缩为一个向量会删除所有空间信息。具体来说,我们证明了位置信息是基于通道维度的顺序编码的,而语义信息在很大程度上不是。在本演示之后,我们通过将这些发现应用于两个网络模型框架来展示它们对现实世界的影响。首先,我们提出了一种简单而有效的数据增强策略和损失函数,以提高CNN输出的平移不变性(translation invariance)。其次,我们提出了一种方法来有效地确定潜在表示中的哪些通道负责:(i)编码总体位置信息或(ii)指定区域位置。我们首先表明,语义分割在很大程度上依赖于整体位置通道来进行预测。然后,我们首次展示了可能执行“特定区域”的攻击,并在输入的特定部分降低网络的性能。我们相信,我们的发现和演示的应用将有助于了解CNN特征的相关研究领域。

1. 引言

不同神经网络结构背后的一个基本思想[13,29,30,3,12]是不变性。给定一个输入信号,X-不变操作是一种产生相同输出的操作,而不管输入的任何变化(某些类型的X)。这种特性在计算机视觉的许多应用中都是可取的,最明显的是目标识别[21,13,29];无论目标位于图像中的何处,目的是分配相应的图像级(image-level)标签(例如,dog)。这被称为平移不变性。与平移不变性密切相关的运算的另一个特性是平移等变性(translation equivariance):移动输入,然后通过运算传递输入,等同于通过运算传递输入,然后移动信号。
为了实现不变的神经网络,一种常见的策略是在每层基础上使用等变运算[6],然后以不变的输出为顶点。其中一个最好的例子是用于图像分类的卷积神经网络(CNN)。CNN遵循平移等变卷积层的层次结构,使用全局池化(Global Average Pooling, GAP)层将3D(空间通道)张量转换为1D向量,然后将其送入全连接层以生成分类逻辑。因此,我们(直观地)假设,由于GAP操作[22,30],空间维度被折叠后,空间信息应该被移除,同时产生平移不变性。然而,之前的工作表明,绝对位置信息存在于潜在表示[14]以及网络输出[18,16]中。
这些以前的工作都没有回答一个关键问题:如果前向通道中存在全局池化层,CNN如何在表示中包含位置信息?在本文中,我们给出了这个问题的答案,并通过严格的定量实验证明,CNN通过沿通道维度编码位置信息来实现这一点,即使空间维度是折叠的。此外,我们还证明了位置信息是基于通道维度的顺序编码的,而语义信息在很大程度上是不变性的。我们认为,这些发现对于更好地理解CNN的特性和指导其未来的设计非常重要。
为了证明这些发现对现实世界的影响,我们利用了位置信息在许多领域和应用程序中按通道编码的事实。首先,我们解决了CNN缺乏平移不变性的问题。我们提出了一个简单而有效的损失函数,该函数最小化平移图像编码之间的距离,以实现更高的平移不变性。其次,我们提出了一种有效的方法来识别潜在表示中的哪些通道负责编码:(i)整个图像中的位置信息和(ii)“特定区域”位置信息(例如,激活图像左侧部分的通道)。我们展示了定量和定性的证据,表明与随机抽样的通道相比,网络在进行预测时对这些通道具有显著的依赖性。最后,我们展示了标准特定区域的神经元,并损害图像特定部分的性能是可能的。总而言之,我们的主要贡献如下:

  •  我们揭示了全局池化层如何通过沿通道维度的有序编码来接纳空间信息。然后,我们将这一发现应用于下面列表中的问题领域,以证明其在现实世界中的适用性。
  •  我们提出了一种简单的数据增强策略,通过最小化平移图像编码之间的距离来提高CNN的平移不变性。
  •  我们提出了一种简单直观的方法来识别网络潜在表征中的位置特异性神经元。我们发现,多个复杂的网络包含对这些位置编码神经元做出正确预测的重大依赖。
  •  我们展示了以特定于区域的方式攻击网络预测的可能性,并在标准自驱动语义分割数据集上展示了该方法的有效性。

2. 相关工作

Islam等人[14]首先证明了绝对位置信息是在CNN的潜在表征中捕获的。更具体地说,他们用一个预先训练好的CNN,然后训练一个读出模块来预测一个类似梯度的位置图。他们表明,绝对位置信息(例如,像素坐标)可以从CNN的许多阶段中提取,零填充(zero padding)是该信息被编码的一个重要原因。zero padding注入位置信息的能力一直是多个后续工作的重点领域[18,1,16,23,24]。Kayhan等人[18]证明了与zero padding和位置信息有关的许多属性,包括样本效率和对分布外位置的泛化。注意pad[1]探讨了zero padding与目标识别的关系,并证明它会在中间表示中造成严重的伪影。最后,Islam等人[16]对边界启发法进行了大规模案例研究,包括填充和画布颜色,并表明位置信息可能会影响(例如纹理识别[5])或帮助(例如语义分割和实例分割[32])性能,具体取决于任务。相对位置信息是指特征在图像中相互之间的位置。在计算机视觉算法设计中如何使用相对位置的一个例子是胶囊网络[28],它用pose(即平移和旋转)对每个对象进行编码。这种编码会导致后面的图层特征,这些特征仅针对早期图层的特定相对位置激活。我们将相对位置信息视为与绝对位置不同的研究方向,因此本文仅对绝对位置进行分析。
Gatys等人[10]首先在一个脚注中提到了CNN潜在表达中的绝对位置,该脚注对zero padding如何影响生成性建模进行了评论。最近的一项研究更深入、更系统地探讨了生成模型中的zero padding,并表明CNN使用zero padding生成更稳健的空间结构[33]。
最近的一些研究表明CNN并不是完全平移不变的。例如,BlurPool[34]证明,输入中的小像素级偏移会导致输出分类概率的大波动。为了使CNN对平移更具不变性,他们提出在CNN内的每个最大池化层之后添加高斯模糊层,这显著提高了网络的平移不变性。Zou等人[35]通过使用内容感知学习滤波器权值扩展了这项工作,学习滤波器权值预测输入中每个空间和通道位置的单独滤波器权值。虽然提出的解决方案是有效的,但BlurPool[34]并未解释CNN为什么不是平移不变性的根本机制。在我们的论文中,我们通过第一次解释允许CNN编码位置信息的精确机制(尽管存在全局池化层),扩展了先前表明CNN中存在位置信息的工作。

3. Channel-wise Position Encoding in CNNs

最近的工作[14,18,1,16]表明CNN利用绝对位置信息。然而,没有任何工作确定位置信息在全局平均池化(Global Average Pooling, GAP)层之后编码的机制。鉴于位置信息的明显重要性,人们可能会提出这样一个问题:空间信息是否通过某种方式被保留。在本节中,我们将通过一系列实验来回答这个有趣的问题。我们表明,尽管空间维度被压缩,但绝对位置信息可以在1×1×C潜在表示中,在GAP层之后对通道进行编码。

在这里插入图片描述

图1。我们的GAPNet(左)和PermuteNet(右)架构的一个示例用于确定CNN中是否存在Channel通道位置编码。左图:我们将基于网格的输入图像馈送到标准CNN(例如ResNet-18[13])的编码器f θ f_{θ}f 
θ

 ,以获得潜在表示z zz。然后通过最后一个卷积层将z zz转换为表示形式z ’ z’z’,该卷积层的输出通道尺寸设置为输入网格中的位置数量(例如,在上述示例中为9)。这将强制全局平均池化(GAP)层输出位置数。然后对网络进行训练,以预测图像块的位置。右图:PermuteNet遵循标准CNN的相同结构,只是我们洗牌潜在表示的维度,以验证混淆通道顺序是否会损害位置编码能力。

3.1 使用GAP层学习位置

在这里插入图片描述

在这里插入图片描述

3.2 通道位置编码的评估

为了验证通道位置编码的存在性,我们使用GAPNet和PermuteNet设计了一个简单的位置相关任务,这样输出logit可以直接映射到输入图像中的特定位置。受先前工作[18,16]的启发,我们首先进行了位置分类实验,其中每个输入是放置在n×n网格上的CIFAR-10[20]图像,其中不包含图像的每个像素都设置为零(参见图1中的输入)。每个输入的目标是放置图像patch的位置(例如,图1中给定输入的目标是6)。我们使用ResNet-18[13]网络结构来报告GAPNet和PermuteNet在三种不同padding类型下的实验结果。对于位置分类任务,我们以0.001的学习率对GAPNet和PermuteNet进行了20个时代的训练,并使用ADAM优化器[19]。输出登录的数量设置为输入位置的数量(例如,9×9网格为81)。我们还使用基于网格的数据设置,通过将GAPNet和PermuteNet的输出逻辑数都更改为10,来训练目标识别网络。对于位置相关的目标分类任务,我们对GAPNet和PermuteNet进行了100个历元的训练,学习率为0.01。
我们在表1中给出了GAPNet和PermuteNet的位置分类和对象识别结果。对于位置分类任务,GAPNet对于所有测试的网格大小实现了反直觉的100%精度。很明显,GAP层可以接受稳健的位置信息,直接表示输入图像上的绝对位置。相反,虽然PermuteNet可以学习识别小网格大小(例如,3×3)的边缘位置数,但是通道维度的洗牌会随着网格大小的增加显著降低网络执行位置分类的能力。这提供了直接证据,表明通道尺寸的顺序是允许GAP层接受绝对位置信息的主要表示能力。我们使用类似的数据设置进一步评估图像识别任务的GAPNet和PermuteNet,并在表1(右)中报告结果。有趣的是,与位置分类任务不同,PermuteNet可以实现接近GAPNet的分类性能。这揭示了CNN用于位置表示和语义表示的编码类型之间的一个有趣的二分法:位置信息主要取决于通道的顺序,而语义信息则不依赖。

在这里插入图片描述

表1。在不同填充类型下,PNET和PERMUTENET在绝对位置分类和目标识别方面的性能比较。无论填充如何,很明显,GAPNet实现了100%的位置编码精度,而PermuteNet无法正确分类位置。这表明在潜在表示中位置是按通道编码的。目标识别的准确性进一步证实了位置信息取决于通道的顺序,而语义信息并不严重依赖于顺序。

我们在这些实验中表明,GAP层可以通过通道尺寸的排序来接受位置信息。我们探讨的另一个有趣的问题是,有多少位置信息可以从预先训练的模型中解码,而这些模型并没有针对位置分类进行明确训练。为了回答这个问题,我们提供了更多的补充实验,并评估了为各种任务(如图像分类[13]和语义分割[26])训练的网络的通道或顺序中包含的位置信息量。为了进一步支持我们的假设,这些结果也明确地表明GAPNet可以恢复空间位置信息,而PermuteNet不能。

4. 通道位置编码的适用性

现在,我们演示了多种方法,可以利用我们的发现,即位置信息是按通道编码的。为了确保通道编码是这些应用中每种应用的改进来源,我们在每种情况下通过GAP层后使用表示。首先,我们提出了一个简单的损失函数来提高CNN中的平移不变性。接下来,我们将探讨对象识别网络的鲁棒性。我们演示了使用隐式位置编码(即作为对手)针对这些模型的不同方法,以提高整体性能和针对特定区域的攻击。

4.1 Translation Invariance for Object Recognition

在这里插入图片描述
在这里插入图片描述
图2

在这里插入图片描述

分类和一致性结果如表2所示。与基线相比,我们的方法在CIFAR-10上实现了具有竞争力的Top-1精度,但在转换一致性方面显著优于基线(94.8%对90.8%)。我们的方法与CIFAR-100的总体分类精度相匹配,同时显著提高了移位一致性(85.6%对70.1%)。注意,与CIFAR数据集上的BlurPool相比,我们的方法允许更大的移位一致性。与ResNet基线相比,我们的方法提高了ImageNet的整体性能和移位一致性,并且在性能和一致性方面与[34]保持竞争力。

在这里插入图片描述

表2。比较不同网络的总体分类精度和移位一致性(Cons.)。有趣的是,我们的简单AugShift技术在较小数据集(如CIFAR-10和CIFAR-100)上的性能优于基线,同时在大规模ImageNet数据集上实现了具有竞争力的性能。Cons.8和Cons.16是指分别将输入水平和垂直随机移动8和16个像素。

我们认为,对于具有高分辨率的较大数据集(例如,ImageNet),性能差距较小(对于AugShift和BlurPool来说也是如此),因为网络可以从数据中学习一定程度的平移不变性,而无需任何不变性特定的正则化,正如所建议的那样。请注意,[34]必须通过在每个池化层添加另一个滤波器来修改CNN网络结构中的大多数层,这反过来又会在推断时添加额外的计算。相比之下,我们的架构是不可知的,在推理过程中不会增加计算开销。此外,我们实现平移不变性的动机与Blurpool不同(即,增强通道位置信息与抗锯齿的相似性),因此这两种技术可能是互补的。

4.2 Attacking the Position-Encoding Channels

我们现在的目标是证明,为基于位置的任务而训练的复杂网络,如语义分割[3,17],在其潜在表示中对位置信息编码的通道方式有很大的依赖性(这句话我捉摸了半天才决定这么翻译的)。为了执行这种类型的攻击,我们首先提出了一种简单直观的技术来估计CNN潜在表征中的位置编码神经元。对该技术的一个简单修改允许我们识别主要编码的通道:(i)整体位置或(ii)特定区域位置。然后,我们通过简单地在推理过程中关闭它们来评估网络对它们进行预测的依赖性。我们发现,移除这些神经元比随机取样的神经元对性能造成的伤害要大得多,这表明其中包含位置信息的重要编码。此外,我们还展示了在为自主驾驶任务而训练的网络上执行特定于区域的攻击的可行性。这些结果表明,通道位置编码存在于更复杂的网络和任务中,并揭示了基于位置信息的对抗性攻击和防御的有趣未来方向。

4.2.1 Identifying Position-Specific Neurons

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2.2 针对整体位置编码神经元

Semantic Segmentation. 我们首先验证前N个整体位置编码通道如何影响最先进的语义分段网络DeepLabv3-ResNet-50[4]的性能[15],该网络是在Cityscapes[7]数据集上训练的。本次评估的目的是通过测量验证性能的差异来确定DeepLabv3-ResNet-50在语义分割中对这些全局位置编码通道的依赖程度,该差异是在移除前N个位置特定通道后,通过联合的平均交集(mIoU)来测量的。我们通过简单地将这些通道维度的特征激活设置为零,将这些N个神经元从潜在表征中移除。除了标准的mIoU外,我们的目的是评估这些神经元是否对所有位置都有同等的影响。为此,我们还评估了三个输入区域的性能:图像的左侧、中间或右侧区域。为了执行此评估,我们只需通过将其他像素设置为未标记值(参见图3的示例),计算左、中或右区域上的联合平均交点(mIoU)。请注意,每个区域(即,左、右和中心)的空间分辨率为1024×1024像素,因为城市景观图像的宽度为2048像素(请注意,中心与左右两侧相等重叠)。在这些实验中,我们对Cityscapes数据集的val分割进行验证。

Results. 图4显示了当前N个总体位置特定频道设置为零时,城市景观上的DeepLabv3-ResNet-50在mIoU方面的语义分割结果。注意,对于这个实验,我们没有微调预训练的分割网络。有趣的是,我们观察到,从城市景观预先训练的DeepLabv3-ResNet-50(基线性能为74.0%mIoU)模型中逐渐移除位置特异性神经元比移除随机选择的神经元对整体mIoU的伤害更大(图4(a))(注意,“正常”是指使用等式2选择的神经元,而不翻转内核)。对于位置特异性神经元,去除前100个通道的性能为71.9%,而100个随机神经元的性能仅为73.4%。当移除更多的神经元时,差异更为显著。
例如,删除500个位置特定通道会导致64.7%的mIoU性能,比基线74.0%下降9.3%,而500个随机通道只会使性能下降3.5%至70.5%的mIoU。当使用内核翻转排名移除神经元时,类似的模式被视为移除这些神经元比移除随机神经元更严重地降低性能。

在这里插入图片描述

这些结果清楚地表明,网络依赖于潜在表示中的通道位置编码来进行准确的语义分割预测。请注意,由于DeepLabv3-ResNet-50网络的潜在维度z的大小为2048,删除100个位置编码神经元(下降2.1%)后的性能下降非常显著。这一发现对于图像中的所有位置都是一致的。图4(b、c、d)显示了左、右和中心区域的mIoU(如图3所示)。对于每个区域,与针对随机神经元相比,针对通过通道排序策略获得的位置神经元时,性能下降更多。图4(最下面一行)描绘了当我们只移除排名中的100个神经元时,图像每个部分的结果。这些结果还表明,一般来说,移除排名较高的神经元比移除排名较低的神经元更能降低mIoU。总的来说,这些结果提供了强有力的证据,证明使用等式2的排列通道对整体图像位置进行编码。请注意,由于自动驾驶数据集的中心区域中的像素与距离相机较远的对象关联,因此较难准确分类,因此中心区域的基线精度较低,因此性能下降也较低。图5提供了移除N个特定神经元时城市景观验证图像的定性结果。很明显,随着N的增加,分割质量逐渐下降。注意,在我们的神经元特异性靶向治疗中,分割左侧或右侧边缘较小和较薄物体的失败尤其明显。我们还验证了前N个整体位置编码通道如何影响行人检测网络的性能,并在补充报告中报告了结果。

4.2.3 Targeting Region-Specific Channels

**语义分割。**我们现在提供的证据表明,对于完全卷积神经网络,在特定的输入区域,可能会损害性能。我们再次选择DeepLabv3-ResNet-50[4]语义分段网络,该网络在Cityscapes[7]数据集上进行训练。我们使用等式3中的有符号排名以及val left和valright子集来获得特定于区域的位置编码方面的信道排名。作为动机,我们扮演对手的角色,意图造成高速碰撞。由于城市景观[7]数据集是在德国收集的,汽车行驶在道路的右侧。因此,迎面而来的车辆出现在图像的左侧。我们的主要动机是暴露更细粒度的区域特定攻击的可能性,我们使用驱动数据集作为测试用例。
在某些情况下,对手可能希望降低感兴趣区域的绩效,同时尽量减少暴露的机会。我们使用第4.2.1节中描述的通道定位技术,在图像的左半部分确定语义分割性能。图6显示了mIoU方面的验证结果,其中在评估期间仅考虑图像的左半部分(参见图3,例如地面真值分割图),前N个通道设置为零。我们的假设预测,左目标曲线应低于右目标曲线,因为左编码通道对左半部分mIoU的伤害应大于右编码通道。正如预期的那样,与其他信道相比,我们确定为编码“左”的信道预测在左半mIoU计算中的性能下降更大。有趣的是,“整体”位置通道的性能下降幅度仅次于“右”位置通道。这进一步证明了这些通道确实捕获了图像中特定区域中的对象,因为与“左”和“整体”位置通道相比,“左”和“右”通道之间的重叠更少。还要注意的是,即使将10个神经元归零,性能分别下降0.6%和0.08%,左通道和右通道之间的mIoU差异(虽然很小)。
随着更多捕捉左侧对象的通道被移除,这种差异会增大。补充资料中包含了图像右半部分的等效攻击结果,与左半部分的结果一致。

5. Conclusion

我们第一次展示了具有全局平均池化GAP层的CNN是如何容纳绝对位置信息的,它可以折叠空间维度。此外,我们还表明位置信息是基于通道的顺序编码的,而语义信息在很大程度上不是。然后,我们将这些发现应用到各种实际应用中。我们提出了一个目标函数,以提高目标识别训练CNN的平移不变性。我们介绍了一种简单直观的技术来识别和排列CNN潜在表征中的位置编码神经元。我们表明,这种技术可以识别主要编码输入中(i)全局位置或(ii)区域特定位置的通道。关于全局位置通道,我们表明,与其他基线相比,在经过语义分割和对象识别训练的网络中抑制它们的响应会导致更大的性能下降,这表明这些CNN显著依赖于通道位置编码。最后,我们展示了细粒度敌对攻击的可能性,该攻击旨在损害特定位置网络的性能。所有这些实验都是在一个全局平均池层展示了在许多神经网络结构中通道顺序中包含的丰富位置信息之后,通过操纵潜在表示来执行的。我们相信这些发现和相关应用可以帮助指导神经网络的未来设计,以包含手头任务的正确归纳偏差。