当前位置: 首页 > 科技观察

魔改ResNet反超Transformer,再掀架构之争!作者说“没有创新”

时间:2023-03-21 15:23:23 科技观察

本文经AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处。过去一年里,Transformer频频跨入视野,大有抢CNN饭碗之势。先是谷歌ViT在图像分类上取得突破,后来物体检测和图像分割被微软SwinTransformer拿下。随着越来越多的学者投身于视觉Transformer的研究,三大任务列表中以Transformer或结合两种架构的模型为主。但就在这时,一篇文章《2020年代的卷积网络》发表,带来全新的纯卷积模型ConvNeXt,又热闹起来——全球CV圈再次掀起模型架构之争,LeCun等顶尖学者齐聚一堂评论的那种。论文指出,ConvNeXt的性能超越了同规模的SwinTransformer,在ImageNet-1k上超越后者0.7%。在COCO和ADE20K上,ConvNeXt也取得了同规模更好或相当的水平。面对这篇Facebook和加州大学伯克利分校联合创作的论文,深度学习三巨头之一的LeCun直言:卷积模型和视觉Transformer的争论白热化了!在GitHub上,ConvNeXt连续几天位居趋势榜首。在国内,这样的垂直学术问题甚至登上了知乎的热搜榜。在国外,谷歌、Arm等大厂的很多大学学者和工程师纷纷前来参与讨论,甚至还俘虏了一些经典论文的作者——ViT作者和EfficientNet系列作者展示他们的最新研究成果,想要一争高下.△ViT论文第二部分补充了改进训练方法的结果△EfficientNet系列作者补充了最新v2版本的结果。再来说说LeCun。这次他真的不是来给自己的成果一个平台,而是提出模型架构之间的相互借鉴是未来的方向。你以为我接下来会说“Convisallyouneed”吗?不!原来LeCun最喜欢的架构和DETR类似,第一层是卷积,后面结合了更多Transformer风格的层。这次的ConvNeXt虽然不是他说的那样,但是也借鉴了很多Transformer的技巧,LeCun觉得这就是它成功的原因。该论文的通讯作者谢赛宁也对这些讨论进行了回应。他表示,这不是一篇想要比较列表准确性的论文,更多的是探索卷积模型的设计空间。在设计过程中,他们的团队非常克制,让模型尽可能简单。在我看来,所有的模型架构都应该是朋友,只有过于复杂才是共同的敌人(如果你同意奥卡姆剃刀的话)。不管谁的架构最强,所有参与讨论的大佬对这篇论文本身都有一个共同的感受:图表精美,结构清晰,实验充分,值得一读!特别是有一幅精美的插图,可以说是全文的精华,也是作者自己提供的,“一图看懂”。图中清楚地展示了将ResNet-50的准确率从78.8%一步步提高到82.0%的步骤,以及使用的方法。先介绍一下这篇论文,了解一下ConvNeXt使用的方法和来龙去脉。后面再看架构之争,相信会有不一样的视角~给CNN披上Transformer的皮,先看摘要,里面有一句关键句,阐明了这篇论文的研究初衷。...本文旨在重新审视CNN的设计空间,在ResNet的基础上使用现代方法进行优化,测试纯卷积模型的性能极限...团队认为,虽然Transformer在视觉上取得了成功,但全局注意力机制的复杂度与输入图像大小的平方成正比。对于ImageNet图像分类任务的224×224和384×384分辨率是可以接受的,但在需要高分辨率图像的实际应用场景中并不理想。SwinTransformer通过重新引入卷积网络中的滑动窗口等诸多特性弥补了这个问题,但也让Transformer更像CNN。SwinTransformer的成功让他们再次意识到卷积的重要性。相应地,本文的研究思路是:如果卷积模型也学习Transformer架构中的各种方法,但不引入attention模块,它能达到什么效果?论文末尾呈现的是将标准ResNet逐步转换为类似Transformer的路线图。那就是上面提到的广受欢迎的图片。条形图中,彩色部分代表Swint-T和ResNet-50在各种条件下的模型精度对比。灰色部分是比较大的Swin-B和ResNet-200的对比,阴影部分表示最终没有采用这种方法。为公平起见,模型的计算量在整个过程中与SwinTransformer大致保持在同一水平。研究团队将变化归纳为五个部分:宏观设计、引入ResNeXt、反转瓶颈层、增加卷积核、微观设计。不过在详细讲解每个部分之前,有必要先介绍一下在训练方法上的改进。0.训练方式VisionTransformer不仅带来了一套全新的模块和架构设计,而且采用了不同于传统CNN的训练方式。论文使用了类似DeiT和SwinTransformer的训练方法。首先将epoch从ResNet的90增加到300,切换到AdamW优化器。在数据增强方面,引入了Mixup、Cutmix、RandAugment和RandomErasing。正则化使用随机深度和标签平滑。采用这些方法后,Torchvision版本的ResNet-50的性能提升了2.7%,从76.1%提高到78.8%。(使用224x244分辨率图像在ImageNet-1k上训练的top1accuracy,下同)这个结果证明了传统卷积模型和visualTransformer的部分性能差异也来自于训练方式。接下来进入车型本身5大变化的详细介绍。1.这部分宏设计主要有两个变化,参考的也是SwinTransformer。首先是区块数量的比例分配。在原来的ResNet-50的四个stage中,是按照(3,4,6,3)进行分配的。SwinTransformer借鉴了多级的思想,每一级输出不同分辨率的y,只是比例改为1:1:3:1。ConvNeXt遵循这个比例(3,3,9,3)分布,导致模型准确率提高0.6%至79.4%。不过,根据Facebook团队此前的两项研究,该团队认为可能还存在更好的比例,需要进一步探索。这部分的第二个变化是在茎层上。传统的ResNet-50方法是步长为2的7x7卷积加上最大池化,相当于对输入图像进行4倍的下采样。从ViT开始,输入图像会先被切割成patch,每个patch上的操作将不再重叠。SwinTransformer的patchsize是4x4,所以ConvNeXt也设置为步长为4的4x4非重叠卷积。这一变化带来了模型准确率的又0.1%的提升,现在为79.5%。2.ResNeXt简介ResNeXt是本文通讯作者谢赛宁在Facebook何玉明组实习时写的一篇论文,发表在CVPR2017。与原来的ResNet相比,ResNeXt有更好的交易-offaccuracy和computation之间,所以ConvNeXt打算继承这个优势。ResNeXt的核心思想是分组卷积,同时增加网络宽度来补偿模型容量的损失。这次ConvNeXt直接让组数等于输入通道数,设置为96。这样每个卷积核处理一个通道,只在空间维度上混合信息,得到一个和自己类似的效果-注意力机制。这一变化使模型准确率又提高了1%,达到80.5%。3.反转瓶颈层的方法首先在MobileNetV2中被提出,然后在更轻量级的CNN模型中流行起来。有趣的是,Transformer中也使用了类似的设计,因此ConvNeXt也进行了尝试。经过这次反演后,虽然depthwiseconvolutionallayer的FLOPs增加了,但是在downsamplingresidualblock的作用下整个网络的FLOPs减少了。模型准确率也略有提高0.1%,达到80.6%。此外,在基于ResNet-200的较大模型中,提升效果也更为明显,从81.9%提升至82.6%。4.增加卷积核从VGG开始,3x3的卷积核已经成为了金标准,小卷积核在硬件上也得到了全面的适配。SwinTransformer引入了类似于卷积核的局部窗口机制,但大小至少为7x7。据此,ConvNeXt打算再次重新探索不同卷积核大小的效果。但是在对瓶颈层进行反转后,卷积层的维度变大了,直接增加卷积核会显着增加参数数量。所以在此之前,还需要在反向瓶颈层的基础上再推进depthwiseconvolutionallayer(btoc)。此步骤暂时将模型精度降低到79.9%。之后在卷积核的大小上进行了实验,从3x3到11x11,模型准确率在7x7时恢复到80.6%。再加大效果不明显,在ResNet-200上也是如此,最终的卷积核大小设置为7x7。5.微设计接下来是层级的微设计,着重于激活功能和returnOnechemicalup。在激活函数上,卷积模型主要使用简单高效的ReLU。GELU比ReLU更平滑,被BERT、GPT-3、ViT等NLP模型采用。在ConvNeXt的探索中,使用GELU并没有提升模型的准确率,但也是一个可行的方案。从激活函数的数量来看,每个Transformer块中只有MLP块中的激活函数。CNN通常的做法是在每个卷积层之后附加一个激活函数。ConvNeXt试图只保留两个1x1层之间的GELU激活函数,这与Transformer方法一致。这种方法使模型准确率提高了0.7%,最终达到了81.3%,与Swin-T处于同一水平。归一化层数也有所减少,准确率提升0.1%,达到81.4%,超越Swin-T。下一步是将BN(BatchNormalization)替换为LN(LayerNormalization),这在vanillaResNet中会导致精度损失。但是在以上各种变化的基础上,这个在ConvNeXt上的操作让模型准确率提升了0.1%,现在达到了81.5%。最后一步是分离下采样层。在ResNet上,下采样由残差块执行,而SwinTransformer使用单独的下采样层。ConvNeXt也尝试了类似的策略,使用步幅为2的2x2卷积进行下采样。结果是训练不稳定。还好后来找到了解决办法,在每个下采样层前面,stem前面,最后的globalaveragepooling前面都加了LN。总结以上所有变化,ConvNeXt的单块结构终于敲定。最终的ConvNeXt-T小模型准确率为82.0%,优于Swin-T的81.3%。与更大的模型相比,ConvNeXt也略高,但优势缩小了。有趣的是,该团队得出结论,这些方法都不是本文独有的,它们分布在过去十年的多项研究中。ConvNeXt只是把这些方法放在一起研究,但最终找到了一个在ImageNet-1k上可以胜过Transformer的纯卷积模型。从FLOPs、参数量、吞吐量和内存占用来看,各个规模的ConvNeXt大致相当于SwinTransformer。ConvNeXt的优点是不需要添加额外的移动窗口注意力和相对位置偏差等特殊结构。保持模型的简单性也意味着更容易部署。最终,该团队希望通过这篇论文挑战一些被广泛接受和默认的观点。这也是为了促使研究人员重新思考卷积在计算机视觉中的重要性。对于ConvNeXt重燃视觉模型架构之争,更多的学术界和工业界人士提出了不同的看法。回到建筑之争,加州大学伯克利分校教授马毅表示,他不认同这种肤浅的竞争。结合他的下一条微博,马伊琍教授希望大家多多关注理论基础。知乎上一位匿名网友建议,这篇文章对行业有更大的价值。虽然之前Transformer的效果不错,但是在实践中很难部署。大家一直期待看到卷积方式的极致实力。其实这也正是ConvNeXt研究的初衷。从论文作者谢赛宁对另一个讨论的回复可以看出,研究团队认为ImageNet结果不是重点。他们想要强调和提请注意的是卷积模型在目标检测等下游任务中的表现。对于下游任务,ConvNeXt已经在COCO和ADE20K上得到了验证,并且具有与SwinTransformer相当或更好的性能。在随后的讨论中发生了一件有趣的事。有人问LeCun,你的部门是不是应该和公司一起改名Meta?为什么论文由FAIR签名?LeCun开了个小玩笑,说这代表FundamentalAIResearch(基础AI研究)也很幽默~作者团队前面提到的谢赛宁是FAIR研究员。本科就读于上海交通大学ACM班,毕业于加州大学圣地亚哥分校,获博士学位。.谢赛宁读博士时曾在FAIR实习。期间与何玉明合作完成了ResNeXt,这是本文的第一个工作。不久前,备受关注的何玉铭写了一篇关于MAE的论文,他也参与其中。他是这个ConvNeXt的通讯作者。巧的是,这份工作也是博士期间的实习生。第一位是加州大学伯克利分校博士生、清华姚班毕业生刘壮。DenseNet作者,获得CVPR2017最佳论文奖。论文地址https://arxiv.org/abs/2201.03545Github地址:https://github.com/facebookresearch/ConvNeXt