亚马逊张航李沐
提供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转换为统一的结构;
SE-Net通过自适应地重新校准通道响应值来实现通道注意力机制:
SK-Net通过两个网络分支(两个Group)引入特征图注意力(feature-map attention)
SE-Net,SK-Net,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,相当于输入特征图在通道上被分为个groups。
Split Attention in Cardinal Groups:
对每个cardinal group,其输出由其中所有splits相加得到,感觉每个cardinal group就像是一个group为R的SK-Net,首先将R个splits相加,经过Global Average Pooling和两层FC(实际是卷积)(这里类似SE或者SK),最后得到的向量将其reshape为,在R维度上计算Softmax(如果R=1,则为Sigmoid),然后split为R份,并分别与对应的split按位乘,最后累加得到一个cardinal group的输出,将所有cardinal groups的结果concat起来就得到一个ResNeSt Block的输出。
用到的训练策略:
Large Mini-batch Distributed Training:
64卡(8机)
Label Smoothing
Auto Augmentation
《Autoaugment: Learning augmentation strategies from data》
Mixup Training
Large Crop Size
Regularization(DropBlock)
实验结果: