Pooling Revisited: Your Receptive Field is Suboptimal 论文解读和感想

Pooling Revisited: Your Receptive Field is Suboptimal
作为CVPR 2022中一篇探索新网络模块的文章,本文对于新网络的设计,特别是处理high-level图像任务的模型设计还是很有启发的

首先作者开局便指出,由于当前的模型结构参数大多是手工设置的,因此是次优的。这里的次优其实主要体现在 因为模型的卷积(kernel size/stride),以及pooling是事先预制的,因此在每一层中模型的感受野也是被固定的,因此模型的通用性被限制了(mark一下,这里后面会详细解释)。为此作者提出了一种自适应调整感受野大小和形状的方式,即自适应的pooling,称之为DynOPool。尽管前人也提出过许多自适应感受野的方式,但是作者另辟蹊径从更简单的pooling入手,使得本方法在实施时有着更大的优势。并且由于DynOPool的自适应感受野调整,因此卷积的stride可以不需要再手动调整,直接全为1即可。

为了搞清楚作者为什么提出DynOPool,就要先搞明白当前的感受野策略存在的局限性:
1、不同数据集固有的信息不对称性。不同的数据集的信息分布在不同空间方向上是有偏向的,而传统网络对于不同方向的感受野都是一样的,这就导致该关注的地方关注不足,不该关注的地方过度关注。作者给出了一个很极端的例子:假如我们要提取条形码图像数据的信息,那么显然沿着竖直方向的感受野大小是没有意义的,因为数值方向的信息都是重复的(可以将其理解为这个方向上信息密度极低),因此我们只有增加水平方向的感受野才有意义。
为了验证这个猜想,作者给出了一个toy dataset例子,作者将cifar-10的数据数值方向拉伸一倍,然后再将其裁剪成 64 × 64 64 \times 64 64×64,获得一个新数据集,然后用DynOPool 版本的vgg对其进行分类,得打如下的结果:
在这里插入图片描述
其中H和W是不同网络层的高宽的感受野大小。可以看到由于高度被拉长了,因此理论上竖直方向的信息密度变低了,所以为了用最小的感受野抓住更多的信息,网络自适应的增大了水平方向的感受野。

2、不同数据集的信息密度不同。试想一下一张模糊的图像和一张密密麻麻有很多目标的图像,如果我们想理解第一张图像那么显然我们要观察更大的区域,而对于第二张图像我们则需要仔细的观察,因为任何一块小区域都包含丰富的信息。为了验证这个猜想,作者又构建了两个toy dataset:1、重复拼接图像,得到cifar-tile数据,2、放大图像,得到cifar-large数据,实验结果如下:
在这里插入图片描述
可以看到,对于cifar-tile数据集,由于每个小patch都包含着丰富且独立的信息,因此开始时网络的感受野非常小(这也反驳了一种naive method,即简单扩大感受野可以在任何数据集上提高网络性能);而在cifar-large数据集上,由于信息密度低,所以网络开始时为了聚合更大范围的信息而扩大感受野。

原理上分析完了,下面再来说如何实施的:
假设某一层网络的输入特征图 x i n ∈ R H i n × W i n x_{in} \in R^{H_{in} \times W_{in}} xinRHin×Win,输出特征图 x o u t ∈ R H o u t × W o u t x_{out} \in R^{H_{out} \times W_{out}} xoutRHout×Wout,DynOPool通过一个可训练的尺度因此来控制以上过程,即:
在这里插入图片描述
其中在这里插入图片描述是取整计算。为了便于统一,作者将输入特征图的左上角坐标定义为(-1,-1),右下角坐标定义为(1,1),之后 x i n x_{in} xin依照输出特征被分割成若干个patch,每个patch的 s i z e = 2 H o u t × 2 W o u t size=\frac{2}{H_{out}} \times \frac{2}{W_{out}} size=Hout2×Wout2。之后作者定义每个patch的中心坐标为 p = ( p h , p w ) p = (p_h,p_w) p=(ph,pw),之后作者在patch中上下左右寻找了四个位置点,分别是:
在这里插入图片描述
这里作者使用了双三次差值对 q q q的坐标取整。
有了patch中的四个坐标后,作者要对其进行特征聚合,文中作者选的是max-pooling,但是作者也指出,其他pooling可以达到同样的效果。

方法流程介绍完毕,然而在优化时现在还面对两个问题:
1、(1)式中由于存在取整操作,无法梯度回传,为此作者提出了一种替代方法:
在这里插入图片描述
其中 s g ( ⋅ ) sg(\cdot) sg()是梯度停止操作。由此前向计算时 H o u t H_{out} Hout W o u t W_{out} Wout的值由取整后的结果给出,反向更新时由第二项进行梯度回传更新 r r r
2、由(2)式可以看出, δ h \delta_h δh δ w \delta_w δw r r r给出,因此反向优化时我们推断出其梯度为:
在这里插入图片描述
这就出现一个问题,但 r r r非常小时, δ h \delta_h δh δ w \delta_w δw的梯度会变得非常不稳定,阻碍优化,为此作者提出了一个重参的方法,即用 α \alpha α来代替 r r r在这里插入图片描述由此提升网络稳定性。

以上过程可以表示为:
在这里插入图片描述

最后再让我们来看一下优化目标。本文提出的自适应pooling除了任务专有loss,还有一个特殊的loss,即:
在这里插入图片描述
这是因为在实际操作中不一定每一层都 r < 1 r<1 r<1,在某些层需要 r > 1 r>1 r>1,然而为了避免带来太多的计算量,作者通过(7)式来约束最终的网络复杂度。其实这里也给了我们一个启发,虽然本文的所有例子都是基于分类,然而由于 r > 1 r>1 r>1也是可行的,因此本方法实际上也可以用于如 图像修复,超分,分割,检测 等底层视觉任务。

最后是实验部分,这部分主要是不同骨干网络的 raw版本 和 DynOPool版本 性能上以及计算量上的比较,我就不再进行详细说明了,有兴趣的可以直接去看原文:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值