Resnest:Split-Attention Networks

2020-04-17  本文已影响0人  斯文攸归

亚马逊张航李沐

提供Gluon版本和Pytorch版本,新SOTA

摘要

ResNet的变体:Split Attention模块,在不同feature map group上的Attention,在ImageNet(224x224)上实现81.13的top1,Faster-RCNN(Resnest-50)在COCO上实现41.4的mAP。

介绍:

尽管目前NAS很流行,但是下游任务(检测分割等)都还是用的ResNet或者其变体,因为ResNet的简洁通用,NAS模型并没有对其训练的效率和显存占用做优化,因此下游任务使用起来并不友好,有的模型甚至不能以常规的训练参数进行训练。

Resnest借鉴的思想:

Multi-Path:

GoogLeNet采用了Multi-Path的机制,不同的分支采用不同的size的kernel,达到不同分辨率特征图(多尺度特征)互相融合的目的;

ResNeXt在ResNet BottleNeck中采用group卷积,将multi-path转换为统一的结构;

ResNeXt

SE-Net通过自适应地重新校准通道响应值来实现通道注意力机制:

SE Block SE-ResNet

SK-Net通过两个网络分支(两个Group)引入特征图注意力(feature-map attention)

SK-Net

SE-Net,SK-Net,ResNeSt的比较:

SE,SK,ResNeSt三者的比较

Split-Attention Networks

Feature-map Group:

类似ResNeXt,将输入特征图在通道上分为K个Group(cardinality hyperparameter),将feature-map groups称之为cardinal groups,在每一个cardinal group中,另外指定一个超参radix hy- perparameter R将该feature-map groups分为R个splits,相当于输入特征图在通道上被分为G=KR个groups。

Split Attention in Cardinal Groups:

对每个cardinal group,其输出由其中所有splits相加得到,感觉每个cardinal group就像是一个group为R的SK-Net,首先将R个splits相加,经过Global Average Pooling和两层FC(实际是卷积)(这里类似SE或者SK),最后得到的向量将其reshape为(N,R,C),在R维度上计算Softmax(如果R=1,则为Sigmoid),然后split为R份,并分别与对应的split按位乘,最后累加得到一个cardinal group的输出,将所有cardinal groups的结果concat起来就得到一个ResNeSt Block的输出。

split attention in cardinal groups(c=C/K) Radix-major implementation

用到的训练策略:

Large Mini-batch Distributed Training:

64卡(8机)

B是lr_base=0.1时的Batch Size

Label Smoothing

Auto Augmentation

《Autoaugment: Learning augmentation strategies from data》

Mixup Training

Large Crop Size

Regularization(DropBlock

实验结果:

ImageNet Clasification Top-1 Compared with NAS Models In ImageNet  COCO检测 COCO分割 分割ADE20K (Left) & Citscapes(Right)
上一篇下一篇

猜你喜欢

热点阅读