作者欲扬先抑@知乎(已授权)
来源丨https://zhuanlan.zhihu.com/p/506317516
编辑丨极市平台
论文地址:https://arxiv.org/abs/2201.03545
代码地址:https://github.com/facebookresearch/ConvNeXt
这篇文章是这篇文章工作。当你读到它时,你可以感觉到作者法ConvNet无限的爱,尤其是在阅读中部分时间。读完整篇文章后,作者的核心论点也是最吸引我的一句话。整篇文章写得很漂亮。
Introduction
作者在Introduction部分里,从ConvNet前世今生开始讲,并在第二段中表达了一种观点:的确,卷积神经网络在transformer在它诞生之前,它主宰了整个计算机视觉领域,作者的工作是让它成功ConvNet再次在视觉领域大放异彩!
作者认为ViT效果好的原因是它是一个大模型,可以适应大量的数据集,这使得它在分类领域处于领先地位ResNet大部分CV不仅仅是分类任务,对于大多数任务CV任务使用滑动窗口和全卷积。同时,作者指出ViT最大的问题之一:
作者之所以更坚信卷积不会被时代淘汰,一个关键原因是这种利用的出现该机制更充分地证明了提取局部特征信息的方法必须是work是的,能够发挥应有的性能。与此同时,作者还指出,每个人都在研究transformer是因为transformer效果超过了使用ConvNet做的视觉任务。因此,作者正在探索整个工作的构建ConvNet看看它的极限在哪里。
Modernizing a ConvNet: a Roadmap
作者从ResNet-50开始研究一系列network modernization操作,通过FLOPs和在ImageNet-1K上的Acc这两个指标可以验证改进操作是否有效。下图是一系列操作的结果。
Training Techniques
首先,在训练技能上进行更新DeiT作者将相似从90到300,使用数据增加手段包括:Mixup,Cutmix,RandAugment,Random Erasing,regularization schemes(包括Stochastic Depth和Label Smoothing)。经过这一改进,ResNet-50从。
Macro Design
作者仿照Swin在层次设计中compute ratio 1:1:3:1,将compute ratio原来(3, 4, 6, 3)变为(3, 3, 9, 3),经过这一改进Acc由。
作者仿照ViT,进行了non-overlapping的convolution。是利用,stride操作卷积,Acc由。
ResNeXt-ify
作者在这部分尝试使用ResNeXt的思路,对FLOPs和Acc进行一个trade-off。核心是grouped convolution。作者用的是depthwise convolution也就是卷积数与通道数相等。这里也提到了ViT就是depthwise conv和conv进行channel mixing,也同时在spatial特征融合在维度上。depthwise这种操作在MobileNet和Xception都有用。它可以减少FLOPs。作者同时将channel数量从64变为和Swin-T同样的96.这使得Acc提到了80.5%。FLOPs提升到了。
Inverted Bottleneck
如Fig3.作者修改了作者Bottleneck的结构如(b)所示,从。
Large Kernel Sizes
作者为了与Swin同步,想选大的kernel size,因为Swin中最小也是,也比ResNet kernel size大。
如Fig3的(c)所示,作者将depthwise换了个地方。这种变化也是有处处可言的,还是借鉴了Transformer,MSA block提供给MLP Layers先验信息。因此,作者认为这是一种自然的做法。FLOPs降到了,同时带来了Acc上下,下降。
Increasing the kernel size:为了大卷积核,作者做了上述准备,然后测试了3、5、7、9、11的效果。这些卷积核FLOPs其中基本相同效果最好,的效果只有。作者还制作了能力强的模型,如ResNet-200这样的大模型,效果并没有明显提高。
在这里,作者还吐槽了这些做法ViT从中学习。
Micro Design
这部分,大部分都是layer工作已经完成。focusing到上。
GELU比ReLU在transformer比如用的多Google的BERT,还有OpenAI的GPT-因此,这里也会有ReLU替换为了GELU,Acc没有变化,还是。
还是transformer在设计上,没有使用很多归一化函数,所以与ResNet Block,作者去掉了很多BN Layer,只留了一个BN Layer在conv前。这使得Acc上升到了。已经超过了Swin-T的results。作者还发现,如果是的话Block前面加BN,并不会有Acc上的提升。
作者写道,BN存在可能对模型的性能产生负面影响。transformer中,用的是LN,于是作者把BN换成了LN,效果提升到了。
在ResNet中,spatial下采样在维度上resuidal block使用前进行的stride的卷积还有conv stirdeshortcut connection做的。在Swin中,用的是separate downsampling layer每两个stage之间。作者在这里修改为使用conv layers stride做spatial上下采样。修改后,效果提高到82.0%。
最后,作者的修改到此结束。这是一个纯卷积结构。作者将其命名为。下图为整体architecture。
Results
Liu, Z., Mao, H., Wu, C. Y., Feichtenhofer, C., Darrell, T., & Xie, S. (2022). A ConvNet for the 2020s.arXiv preprint arXiv:2201.03545.
本文仅做学术分享,如有侵权,请联系删文。
后台回复:
后台回复:
后台回复:
1.面向自动驾驶领域的多传感器数据融合技术
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进4.国内首个面向工业级实战的点云处理课程5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
9.从零搭建一套结构光3D重建系统[理论+源码+实践]
10.单目深度估计方法:算法梳理与代码实现
11.自动驾驶中的深度学习模型部署实战
12.相机模型与标定(单目+双目+鱼眼)
13.重磅!四旋翼飞行器:算法与实战
14.ROS2从入门到精通:理论与实战
15.国内首个3D缺陷检测教程:理论、源码与实战
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在
▲长按加微信群或投稿
▲长按关注公众号
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、答疑解惑、助你高效解决问题