英文原文链接: link.
代码链接(提供PyTorch和MXNet双版本): link.

我现在真的越来越会标题党了/捂脸
前言:亚马逊(张航和李沐等)&UC Davis 2020年发表paper《ResNeSt:Split-Attention Networksn》,无疑做为resnet系列的文章,此文一出备受瞩目,有人说他实验很solid但是idea似乎欠缺,有人觉得他貌似是把之前的一些工作combine了,我们来一起看看吧~

动机和主要贡献

动机
为了解决现有ResNet问题【最初是设计的对于图像分类,由于有限的接收场和缺乏跨通道可能不适合其他】现有的一些解决方法:pyramid module金字塔模块、long-range connections 远程连接、cross-channel feature-map attention、网络搜索等等。但是本工作则寻求cross-channel representations,简单来说就是提出一个Split-Attention模块,可跨特征图组进行关注。

贡献:
1.多点参数但不增加计算量的情况下,更容易用作其他任务的backbone
2.大规模测试 就各种下游任务各种测,结论就是很work
3.为搜索网络增加搜索空间

网络结构

【csdn有时候可能会清理图片 如果本文的图片过期了欢迎私戳我】

看下面这幅图,主要的ResnetSt Block结构就是这样子啦!
这里的Cardinal翻译过来就是基,最早是在ResnetXT里面出现的,它是一个和网络的深度、宽度并列的东西。就是给特征图分个组再汇合啦!

整体结构ResnetSt Block

把特征图先均分成K个Cardinal再均分成R份,特征图总共就是有G=KR份啦,为了方便后面的叙述,我们将第一次分组叫做主分组,第二次分组叫做次分组。每个主分组中的次分组经过简单处理后汇入Split-Attention block模块,再concat起来,最终所有的主分组再汇合起来,这就是整个ResnetSt Block结构啦,整个Block的输入和输出特征图HWC都是不变的。为什么这么做呢?
ResNeSt到底干了个啥?Split-Attention Networks
我觉得这种分组然后注意力的过程,是为了实现固定组特征图担任固定的特征提取和表达任务,这种特征图分组其实最早在Alexnet中就有,但是当时是因为算力不够,分开在两个GPU上算,Alexnet原文中提到说:最后可视化卷积核发现一块GPU上的卷积核更倾向于去提取纹理信息,另一块GPU上的卷积核更倾向于去提取颜色信息。

关键结构Split-Attention Block

ResNeSt到底干了个啥?Split-Attention Networks
上图应该比较清楚的展现了Split-Attention Block的工作过程,这儿有一个小点要注意的是这张图的输入通道c与网络整体结构那张图的C中间差了一个K。c=C/K。定性的说一下就是给每个Group搞出一个注意力权重,可以结合论文看我的图,应该比较清楚。

落地优化

ResNeSt到底干了个啥?Split-Attention Networks
实际计算的过程如果像是左图这种就算起来很低能了,所以一顿操作之后变成了右边这个图,最神奇的是这个操作是等效的,其实也没有很神奇啦仔细看就是把原来的每个Group【总共G=KR个】单独干的事情,放在后面一起干,这样就可以利用现有的一些框架提供的operate实现,比如:组卷积、组全连接层和softmax。

网络调整+训练策略

网络调整
1.Average Downsampling
密集的预测任务,如检测任务时,保留空间信息就变得至关重要。用3×3而不是1×1
2.Tweaks from ResNet-D
(1)将第一个7×7卷积层替换为三个连续的3×3卷积层,这三个卷积层具有相同的接收场大小和相似的计算成本。
(2)对于步长为2的块,在1×1卷积层之前,将2×2平均池层添加到快捷连接中。
训练策略
1.Large Mini-batch:8 servers (64 GPUs in total) in parallel
2.初始学习率和Batchsize有关,具体可以看原文公式,然后学习率根据余弦调整
3.Label Smoothing&Mixup Training:前者避免 overconfidence and overfitting,后者是一个数据增强的方法【都是目前还蛮常用的策略,不知道的可以去了解一下】
4.Auto Augmentation :在16 different types of image jittering找到24 different combinations,用强化学习搜一些超参数。
5.其他的Regularization、dropout啥的就不多说了。

实验结果

ImageNet图像分类

1.28M/50K/top-1 accuracy
ResNeSt到底干了个啥?Split-Attention Networks
Radix vs. Cardinality
ResNeSt到底干了个啥?Split-Attention Networks
与最新技术比较
ResNeSt到底干了个啥?Split-Attention Networks

迁移学习

Instance Segmentation
ResNeSt到底干了个啥?Split-Attention Networks
Object Detection
ResNeSt到底干了个啥?Split-Attention Networks
Semantic Segmentation
ResNeSt到底干了个啥?Split-Attention Networks

结论和展望

结论:
1.improves the learned feature representations
2.easy to work with and computationally efficient

展望:
1.hyper-parameter combinations of radix, cardinality and width
2.low latency models on different hardwares through neural architecture search.

相关文章: