1简介
池化方法将空间输入采样到更低的分辨率。目标是通过捕捉最重要的信息和保留结构方面,如对比度和纹理,最大限度地减少信息的损失。池化操作在图像和视频处理方法中是必不可少的,包括那些基于卷积神经网络的方法。在cnn中,池化操作有助于减少计算负担,同时增加较深部分卷积的感受野。池化实际上就是所有流行的CNN架构中的一个关键组件,它们具有较低的计算和内存开销。
已经提出的一系列的池化方法,每一种方法都有不同的属性。而大多数网络架构使用最大池化或平均池化,这两种方法都快速且内存高效,但在保留信息方面仍有改进的空间。另一种方法是使用可训练的子网络。这些方法比平均池化或最大池化有一定的改进,但它们通常效率较低,而且一般适用,因为它们的先验参数。
在这项工作中,作者研究如何利用基于指数加权的低计算量方法来解决池化方法的缺点。本文方法引入了加权kernel regions 的方法,通过Dice-Sørensen系数获得基于每个kernel activation 与mean kernel activation之间的相似度指数。然后,如图1所示,作者建议将 AdaPool 作为这两种方法的参数化融合方法。
许多任务,包括实例分割、图像生成和超分辨率等任务需要对输入进行向上采样,而这与池化的目标相反。除了LiftPool 之外,很多池化操作都不能被反转,因为这会导致稀疏的上采样结果出现。常见的上采样方法如插值、转置卷积和反卷积,但是都不是重构高维特征。缺乏包含先验知识是一个阻碍,因为将信息编码到较低的维数时,会丢失较高维数中的局部信息。相反,作者认为包含先验局部知识有利于上采样。基于与AdaPool相同的公式引入了向上采样过程 AdaUnPool。
本文证明了AdaPool在保留描述性激活特性方面的良好效果。因此,这允许使用AdaPool的模型持续改进分类和识别性能。AdaPool保持了较低的计算成本,并提供了一种保留先验信息的方法。作者进一步介绍AdaUnPool并解决超分辨率和插值任务。综上所述,本文做出了以下贡献:
- 通过逆距离加权(IDW)引入了一种近似的平均池化方法。通过Dice-Sørensen系数(DSC)将基于向量距离的IDW扩展为基于向量相似的IDW,并利用其指数eDSC对核元素进行加权;
- 提出了 AdaPool,这是一种参数化的可学习融合,融合了最大值和平均值的平滑近似。利用逆公式开发了向上采样过程 AdaUnPool;
- 在多个基于全局和局部的任务上进行了实验,包括图像和视频分类、目标检测,并通过使用AdaPool替换原来的池化层显示出一致的改进。还展示了AdaUnPool在图像和视频超分辨率和视频帧插值方面的性能提升;
- 介绍了一个高分辨率和帧速率视频处理数据集Inter4K,用于对帧超分辨率和插值算法进行基准测试。
2相关工作
2.1 Pooling hand-crafted features
降采样在手工编码特征提取中得到了广泛的应用。在Bag-of-Words中,图像被表示为一组局部patch,这些局部patch被合并,然后被编码为向量。基于此方法,空间金字塔匹配(Spatial Pyramid Matching,SPM)的目标是尽可能地保留空间信息。后来的工作扩展了这种方法,线性 SPM 选择空间区域的最大 SIFT 特征。关于特征池化的早期工作大多集中在基于生物皮层信号最大样行为的最大池化。在信息保存方面的最大池化和平均池化研究表明,在低特征激活状态下,最大池化产生的结果更加具有代表性。
2.2 Pooling in CNNs
随着学习特征方法在各种计算机视觉任务中的流行,池化方法也被适应于基于kernel的操作,如早期的CNN模型中,池化主要用于创建具有代表性的特征表示进而减少模型的计算需求,同时支持创建更深层次的架构。
近年来,降采样过程中相关特征的保存发挥着越来越重要的作用。最初的方法包括随机池化,它使用kernel区域内概率加权采样。其他池化方法(如混合池化)基于最大池化和平均池化的组合,要么是概率性的,要么是每个方法的某些部分的组合。Power Average()利用一个学习参数 来确定平均池化和最大池化的相对重要性。当 时对应 sum pooling,而 对应max-pooling。
一些方法是基于网格采样的。S3Pool 对原始特性映射网格的行和列使用随机采样来创建下采样。也有一些方法使用可以学习的权重,如 Detail Preserving Pooling (DPP),它使用平均池化,同时用高于平均值的值增强激活。Local Importance Pooling (LIP)利用在子网络注意力机制中学习权重。图2中可以看到不同池化方法执行操作的可视化和数学概述。
前面提到的大多数池化工作不能对向上采样进行倒置。Badrinarayanan等人提出了一种最大池化操作的反转,通过跟踪所选的最大像素的kernel位置,而其他位置则由上采样输出中的零值填充。这将导致使用原始值,但输出本质上是稀疏的。
最近,Zhao和Snoek提出了基于输入的4个可学习 sub-bands 的 LiftPool。产生的输出由发现的 sub-bands 的混合组成。同时还提出了 LiftUpPool 的向上采样反转。这两种方法都基于 sub 网络结构,这也限制了它们作为计算和内存效率高的池化技术的可用性。
前面提到的大多数方法依赖于最大池化和平均池化的组合,或者包含限制低计算和高效下采样的 sub-net。而本文的工作不是结合现有的方法,而是基于一种自适应指数加权方法来提高信息的保留,并更好地保留原始信号的细节。
本文提出的方法AdaPool是受到 的启发。因此,根据它们的相关性对kernel region进行加权,而不受相邻kernel item的影响,这与平均池化和最大池化形成了对比。
AdaPool使用两组池化kernel。第一种方法依赖于 softmax 加权方法来放大更强特征激活值;第二种方法使用单个 kernel item 的通道相似度与它们的平均值来确定它们的相关性。相似性是基于 Dice-Sørensen 系数获得的。最后,两个kernel操作的输出被参数化地融合到单个 volume 中。每个kernel位置的参数都是特定的,也因此本文的方法具有区域适应性。
AdaPool 的一个关键属性是,在反向传播期间为每个kernel item计算梯度,这也提高了网络的连通性。此外,下采样区域不太可能表现出激活的消失趋势,正如Avg pool或sum pool等贡献方法观察到的那样。
在图3中可以看到 AdaPool 如何自适应地捕获细节,其中放大的区域显示了一个签名。AdaPool 改进了字母和数字的清晰度和可识别性。