第十六章 ConvNeXt网络详解

文章介绍了对卷积神经网络(ConvNets)进行现代化改造,通过一系列设计改进,如ResNeXt、反向瓶颈、大内核大小等,创造出名为ConvNeXt的纯卷积模型。ConvNeXt在ImageNet分类、COCO目标检测和ADE20K分割等任务中与Transformer模型如SwinTransformer相比,显示出相当甚至更好的性能,同时保持了标准ConvNets的效率。这表明,卷积神经网络仍有很大的潜力和价值在计算机视觉领域。

  系列文章目录


第一章 AlexNet网络详解

第二章 VGG网络详解

第三章 GoogLeNet网络详解 

第四章 ResNet网络详解 

第五章 ResNeXt网络详解 

第六章 MobileNetv1网络详解 

第七章 MobileNetv2网络详解 

第八章 MobileNetv3网络详解 

第九章 ShuffleNetv1网络详解 

第十章 ShuffleNetv2网络详解 

第十一章 EfficientNetv1网络详解 

第十二章 EfficientNetv2网络详解 

第十三章 Transformer注意力机制

第十四章 Vision Transformer网络详解 

第十五章 Swin-Transformer网络详解 

第十六章 ConvNeXt网络详解 

第十七章 RepVGG网络详解 

第十八章 MobileViT网络详解 

文章目录


干货集锦

0、摘要

“咆哮的20年代”视觉识别的开始是Vision Transformers (ViTs)的引入,很快就取代ConvNets成为最先进的图像分类模型。然而,普通的ViT在应用于一般的计算机视觉任务(如物体检测和语义分割)时会遇到困难。而层次化Transformer(例如Swin Transformers)重新引入了几种ConvNet先验知识,使Transformer实际上可行作为通用的视觉支持,并在各种视觉任务中展示了显著的性能。但这种混合方法的有效性仍然很大程度上归功于Transformer intrinsically的优越性,而不是卷积本身所拥有的诱导偏差。在这项工作中,我们重新审视设计空间,并测试纯ConvNet可以实现的极限。我们逐步将标准ResNet “现代化”为视觉Transformer的设计,并在这一过程中发现了几个关键组件,它们对性能差异贡献很大。这次探索的结果是一个被称为ConvNeXt的纯ConvNet模型系列。ConvNeXt完全是由标准ConvNet模块构建的,它在精度和可扩展性方面与Transformers竞争,实现了87.8%的ImageNet top-1精度,并在COCO检测和ADE20K分割中超过了Swin Transformers,同时保持标准ConvNets的简单性和效率。


1.本文旨在重新评估纯卷积神经网络在计算机视觉任务中的作用。

2.本文的研究背景是视觉识别领域的发展,随着Vision Transformers的推出,传统的ConvNets已经被超越。
3.本文的主要论点是单纯的ViT在计算机视觉任务中存在一些困难,而纯卷积神经网络的潜力有待进一步挖掘和研究。
4.以往的研究都集中在ViT和ConvNets的对比分析上,但是在一些通用视觉骨干任务中,ViT还面临着一些挑战。纯卷积神经网络则在转换效率等方面存在局限性。
5.本文提出了一种将ResNet现代化设计为视觉Transformer的独特方法,并测试了其性能。通过逐步更新ResNet的架构,我们发现了一些关键组件。
6.研究发现,经过现代化改进后的纯卷积神经网络与传统的ViT相比更有优势,这对于探索其潜力具有重要意义。但是,本文的研究也有其局限性,如实验设置等方面还需要进一步改进和完善。

1、前言

回顾2010年代,这个十年被深度学习的重大进展和影响所标记。主要推动力是神经网络的复兴,尤其是卷积神经网络(ConvNets)。整个十年,视觉识别领域成功地从设计特征转向设计(ConvNet)架构。尽管反向传播训练的ConvNets的发明可以追溯到上世纪80年代[42],但直到2012年底我们才看到它在视觉特征学习方面的真正潜力。AlexNet [40]的推出引发了“ImageNet时刻”[59],开创了一个新的计算机视觉时代。这个领域自那时以来发展迅速。代表性的ConvNets,如VGGNet [64]、Inceptions [68]、ResNe(X)t [28,87]、DenseNet [36]、MobileNet [34]、EfficientNet [71]和RegNet [54]专注于不同方面的精度、效率和可扩展性,普及了许多有用的设计原则。

 (图1:•ConvNets 和◦vision Transformers 在ImageNet-1K分类结果。每个气泡的面积都与模型系列中某个变体的FLOPs成比例。这里的ImageNet-1K/22K模型分别采用2242/3842张图像。ResNet和ViT的结果是通过改进过原论文的训练过程得到的。我们证明了标准的ConvNet模型在设计上要简单得多,但可以实现与分层视觉Transformer相同的可扩展性水平)

ConvNets在计算机视觉领域的全面优势并非偶然:在许多应用场景中,“滑动窗口”策略在视觉处理中是内在的特征,特别是在处理高分辨率图像时。ConvNets具有多种内置的归纳偏见,使它们非常适合于各种计算机视觉应用。其中最重要的是平移等变性,这是像目标检测这样的任务所需要的一种理想特性。由于在滑动窗口方式下使用ConvNets时,计算是共享的,所以ConvNets本质上是高效的[62]。数十年来,ConvNets一直是有限的对象分类,如数字[43]、人脸[58,76]和行人[19,63]的默认使用方式。进入2010年代,基于区域的检测器[23,24,27,57]进一步将ConvNets提升到成为视觉识别系统中的基本构建块的位置。

大约在同一时间,神经网络设计在自然语言处理(NLP)领域和视觉领域分别采取了非常不同的路径,Transformer取代了递归神经网络并成为主导骨干架构。尽管语言和视觉领域的任务差异很大,但两个流派在2020年出现了意想不到的融合,Vision transformer(ViT)的推出完全改变了网络架构设计的格局。除了初始的“图块”层之外,ViT没有引入特定于图像的归纳偏差,并对原始的NLP变压器进行了最小化修改。ViT的一个主要关注点是扩展行为:通过更大的模型和数据集大小,变压器可以在很大程度上优于标准的ResNet。这些图像分类任务的结果是鼓舞人心的,但计算机视觉不仅限于图像分类。正如前面所讨论的,过去十年中解决数以万计的计算机视觉任务的解决方案取决于滑动窗口、完全卷积范式。缺少ConvNet导出的偏差,纯正的ViT模型面临着许多挑战,无法被采用为通用的视觉骨干。最大的挑战是ViT的全局注意设计,它对输入大小具有二次复杂度。在ImageNet分类中,这可能是可以接受的,但在高分辨率输入中很快变得棘手。

分层Transformer采用混合方法来弥补这个差距。例如,“滑动窗口”策略(例如在局部窗口内的自注意力)被重新引入到Transformer中,使它们的行为更类似于ConvNets。 Swin Transformer [45]是这个方向上的一个里程碑性的工作,首次展示了Transformer可以被采用为一种通用的视觉骨干网络,并在图像分类之外的一系列计算机视觉任务中实现领先的性能。 Swin Transformer的成功和快速采用也揭示了一件事情:卷积的本质并没有变得不相关;相反,它仍然非常受欢迎并且从未褪色。 基于这个观点,Transformer在计算机视觉方面的许多进展都旨在重新引入卷积。然而,这些尝试的代价很大:自注意力的单纯实现可能很昂贵[55];通过先进的方法,如循环移位[45],可以优化速度,但系统的设计变得更为复杂。 另一方面,几乎是讽刺的是,ConvNet已经在很多期望实现中满足了这些期望的属性,尽管它采用了一种直截了当且不需要花哨的方式。 ConvNets似乎失去活力的唯一原因是(分层)Transformer在许多计算机视觉任务中优于它们,性能差异通常归因于Transformer出色的缩放行为,其中多头自注意是关键组成部分。

与卷积神经网络不同的是,视觉Transformer的采用是一个重大的变化。在最近的文献中,通常会采用系统级比较(例如Swin Transformer vs.ResNet)来比较这两者。卷积神经网络和分层视觉Transformer同时具有类似的归纳偏差,但它们在训练过程和宏观/微观层面的架构设计上有显著的差异。在这项工作中,我们调查了卷积神经网络和Transformer之间的架构差异,并试图确定网络性能比较中的混淆变量。我们的研究旨在弥合ConvNets的ViT前后时代之间的差距,以及测试纯ConvNet可以实现的极限。为此,我们从标准ResNet(例如ResNet-50)开始,使用改进的过程对其进行训练。我们逐渐“现代化”架构,构建分层视觉Transformer(例如Swin-T)。我们的探索由一个关键问题引导:Transformer中的设计决策

### ConvNeXt 架构详解 #### 工作原理 ConvNeXt 是一种基于卷积神经网络 (CNN) 的改进模型,旨在简化传统 CNN 中复杂的组件并提高效率。该架构通过移除一些冗余的设计元素来实现这一点,例如瓶颈结构中的 1×1 卷积层[^1]。 为了进一步提升性能,ConvNeXt 引入了全局池化操作以及简化的残差连接机制。这些改动不仅减少了计算量,还增强了特征提取的能力。具体来说,在每个残差块内部采用了深度可分离卷积代替标准的二维卷积核,并且在网络末端加入了全局平均池化层以获得固定长度的向量表示形式[^4]。 ```python import torch.nn as nn class ConvNeXtBlock(nn.Module): def __init__(self, dim, drop_path=0., layer_scale_init_value=1e-6): super().__init__() self.dwconv = nn.Conv2d(dim, dim, kernel_size=7, padding=3, groups=dim) self.norm = LayerNorm(dim, eps=1e-6) self.pwconv1 = nn.Linear(dim, 4 * dim) self.act = nn.GELU() self.pwconv2 = nn.Linear(4 * dim, dim) ... ``` #### 特点 - **简洁高效**:相较于传统的 ResNet 或其他复杂设计,ConvNeXt 更加注重减少不必要的参数数量和运算次数; - **强大的表达能力**:尽管去掉了某些经典模块,但依然保持甚至超越了现有方法的表现水平; - **易于扩展**:由于整体框架相对灵活,因此可以根据实际需求调整层数或者宽度来进行定制化开发[^3]。 #### 应用场景 作为一种高效的图像处理工具,ConvNeXt 广泛应用于计算机视觉领域内的多个任务当中,特别是在目标检测方面展现出了卓越的效果。此外,它还可以用于分类、分割以及其他需要强大视觉理解力的任务中[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值