
今天看的这篇论文是昨天看的 SoftPool 的前人工作,发表于 ICCV 2019,提出了一种类似于注意力机制的 pooling 方式。
「」
介绍
作者认为对于 Pooling 操作,由于在一个 Local Region 中,并不是所有的激活都 同等重要 ,因此奇思妙想了以下,设计了一个 子网络 去自动学习输入特征的重要性。
作者提出了一个框架,对现有的 Pooling 方法进行了总结:
看起来挺复杂的,其中
在这样一个框架下,一些重要的 Pooling 方法可以统一的表示:
比如在
作者一顿分析了当下 Pooling 方法中的各种坏味道(具体分析略),然后提出了好的 Pooling 方法应该具备的两个特点:
下采样中采样的位置要尽可能不是固定间隔的,能够有所偏移;
是通过学习得到的。
方法
基于前文分析,提出的改进方法的结构和 Pytorch 如下:
简单来说就是用
那
图中的其他部分是三个 ResNet 变种的结构图,(a) 是标准结构,(b) 是本文方法,具体把 3x3 的卷积层换成了相应的 LIP 层。(c) 则是一个同时期工作。具体怎么改的以及不同的 CNN 架构分别怎么改的可以参考原论文和代码,这里写不动了就不展开了。
实验
IN 分类:
LIP > 其他,且 Bottleneck-128 性能最好。然后计算量随通道数增加而增加。
略掉好多好多不太有趣的实验~
总结
现有的 Pooling 方法似乎真的有问题,不过我还是觉得在 Pooling 上加那么多参数不太好…
看到这里不难发现,昨天看的 SoftPool 其实就是本文
的一个特例,而且这样就能够有性能提升了,带来的好处就是不引入额外的学习参数,感觉更好用一点。
Reference
- 本文标题:Daily Paper 03 - Local Importance-based Pooling
- 本文作者:Tilden Ji
- 创建时间:2021-06-11 06:30:00
- 本文链接:https://itiandong.com/2021/daily-paper-03/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!