A ConvNet for the 2020s(Mar 2022.3.2-v2)
链接: paper
code
Abstract:将Transformer训练与设计技巧应用于ConvNet。在保持标准ConvNets的简单性和效率的同时,在ImageNet上top 1准确率达87.8%,并在COCO检测和ADE20K分割任务中优于Swin Transformers。
一、ConvNet的现代化
用训练Transformer的技巧训练ResNet-50,获得基线模型。如下图所示(有裂纹的表示不该采用的方案),实验中一系列模型设计决策:1).宏观设计;2).ResNeXt;3).反向瓶颈;4).大内核大小;5).各种分层微观设计。实验证明许多Transformer架构都可以引入ConvNet中,从而带来愈加优越的性能。最终得到的模型——ConvNeXt,其性能优于Swin Transformer。
1.训练技术
Transformer为视觉引入了新的训练技术(例如AdamW优化器)。优化策略和相关的超参数设置很关键。参考其他研究中,可以显著提高ResNet-50模型的性能的现代训练技术1。论文中使用了一种接近DeiT2和Swin Transformer3的训练技巧4,将模型的性能从76.1%5提高到78.8%(+2.7%)。
注:实验数据为通过使用三个不同的随机种子进行训练获得的平均值。
2.宏观设计
Swin Transformers遵循ConvNets6使用multi-stage设计,其中每个stage都有不同的特征图分辨率,设计因素:1).阶段计算比率;2).“stem cell”(干细胞)结构。Swin-T的阶段计算比例为1:1:3:1,大型则为1:1:9:1。论文中将ResNet-50从(3,4,6,3)调整为(3,3,9,3),FLOP与Swin-T对齐,acc从78.8%升至79.4%。(网络设计空间论文参考7)
Transformer模型需要低分辨率的输入,通常使用一个步长为4,大小为4的卷积(无覆盖卷积/Patchify(补丁化)卷积)进行降采样,即Swin-T中的stem层。论文中同样使用stem层对输入降采样,使acc从79.4%升至79.5%,GFLOPs从4.5降至4.4。有人指出使用覆盖的卷积(例如步长为4,卷积核大小为7的卷积)能够获得更好的表现8。
3.ResNeXt-ify
借鉴ResNeXt9中“使用更多组,扩展宽度”的思想。论文使用深度卷积,其类似于自注意中的加权和运算,它以每个通道为基础进行操作,仅在空间维度上混合信息。深度卷积和1×1卷积的组合导致空间和通道混合的分离,这是Transformer共有的特性。深度卷积降低了FLOPs,但也降低了精度。根据ResNeXt中提出的策略,论文中将网络宽度增加到与Swin-T的通道数相同(从64到96),acc达80.5%,FLOPs增至5.3G。
4.逆瓶颈(inverted bottleneck)
逆瓶颈层是一个Transformer中重要设计架构,即MLP block 的隐藏维度比输入维度宽四倍(见上图)。其初被MobileNetV210推广,后在一些先进的ConvNet架构中使用11。论文中层参数改动如下图(a)–>(b)所示,acc由80.5%升至80.6%,FLOPs由5.3G降至4.6G,并在ResNet-200/Swin-B方案中有着更明显的效果。