32_ConvNeXt网络详解

1.1 简介

ConvNeXt是一种计算机视觉模型,由Meta AI(前Facebook AI)的研究人员在2022年提出,它旨在探索卷积神经网络(CNN)在图像识别任务上的潜力,尤其是在与当时流行的Vision Transformer(ViT)模型相比较时。ConvNeXt设计的核心目标是结合Transformer模型中的设计理念,如大 kernel size、层归一化位置、 MLP结构等,来升级传统的卷积神经网络架构,从而在不牺牲效率的情况下,达到或超越基于Transformer的模型的性能。

关键特性与设计原则

  1. 大核卷积(Large Kernel Convolution): ConvNeXt 引入了大核卷积层,类似于Transformer中的多头自注意力机制,能够捕捉更广泛的上下文信息。这有助于提高模型对图像中长距离依赖关系的理解能力。

  2. 层归一化(Layer Normalization): 与传统CNN中常用的批量归一化不同,ConvNeXt在每个卷积块之后使用层归一化,这与Transformer模型中的做法一致,有助于稳定训练过程并加速收敛。

  3. MLP结构(Modified MLP Block): ConvNeXt采用了类似于ViT中的MLP(多层感知机)结构,即两层全连接层,中间夹带一个GELU激活函数,但将这种结构融入到卷积网络中,代替了传统的卷积-归一化-激活函数的组合,增强模型的表达能力。

  4. 深分层结构(Deep Hierarchical Structure): 类似于ResNet等经典网络,ConvNeXt采用深度分层的设计,通过逐步下采样和增加特征维度来构建多尺度特征表示。这样的设计有助于模型学习从低级到高级的视觉特征。

  5. 简洁性与可扩展性: ConvNeXt保持了架构的简洁性,易于理解和实现,同时提供了多种规模的变体(例如tiny, small, base, large),以适应不同资源限制下的应用场景。

性能表现

在多个标准基准测试上,包括ImageNet分类、COCO目标检测和ADE20K语义分割等,ConvNeXt展示出了与最先进的Transformer模型相当甚至更好的性能,同时保持了训练和推理的高效性。它的成功证明了经过精心设计的卷积网络依然具有强大的竞争力,并且在某些场景下可能比Transformer更为优越,尤其是在计算资源有限的环境下。

应用领域

由于其出色的性能和效率,ConvNeXt已被广泛应用于图像分类、物体检测、语义分割以及其他计算机视觉任务中,成为研究者和工程师的一个重要工具箱成员,尤其是在追求高精度和实时处理的应用场景下。

总之,ConvNeXt是对传统卷积神经网络的一次现代化升级,它融合了Transformer的优秀设计思想,展现了卷积网络在现代深度学习时代的新活力。

1.2 模型结构

ConvNeXt-T模型结构图:

Layer Scale指的就是一个特征图的缩放。

1.3 网络的设计与实验

这个网络模型的结构很精简,而且结构上看上去也“没什么亮点”,那么它为什么能取得比较优异的性能呢?

作者认为,随着信息技术和时代的发展,各种新的架构和优化策略促使了transformer拥有了更好的效果,那么如果我们使用相同的策略去训练CNN,是否也能达到更好的效果呢?作者进行了一些列的实验。

Macro design

在这一部分又分成两个小部分,分别是stage ratio和patchify stem。

stage ratio:在Resnet50当中,stage间的堆叠比例大致是1:1:2:1,而在swin transformer中它对应四个stage重复block的比例大概是1:1:3:1。所以作者就将resnet50的stage的堆叠比例也改为了1:1:3:1。修改之后,作者发现准确率由78.8上升为79.4,GFLOPS上升。

patchify stem:stem指的是最初的下采样模块,比如说resnet50中的stem就是由conv1中的7x7卷积和下面的那个3x3最大池化下采样组成的。在swin transformer中,是采用4x4,步距为4的卷积得到的。所以作者就将resnet50的stem也替换成了 swin transformer的stem,替换之后,准确率上升0.1个点。GFLOPS下降。

ResNeXt

下图左为resnet的瓶颈结构(像一个沙漏,两头粗中间细)。

下图右为resneXt的结构,采用的是组卷积。

作者将组卷积极端化,直接每个通道安排一个卷积核,进行dw卷积。这么做之后,准确率由79.5降至78.3,GFLOPS大量降低。接下来作者增大了输入特征的维度(channel)使输入通道数和swin transformer保持一致都是96。这么做以后,准确率由78.3提升至80.5。

Inverted Bottleneck

倒残差,两头细中间粗,像一个坚果。

作者比较了一下,然后将resnet中的bottleneck变成了inverted bottleneck。然后准确率上升。

Large kernel size

将DW卷积模块上移,准确率从80.6下降为79.9。作者认为这个DW卷积有点像MSA,而MSA是放在MLP前面的,所以他就将DW放在了1x1前面。

然后调整DW卷积的卷积核尺寸。作者发现当size为7的时候准确率趋于饱和了,再增大就会发现准确率还出现降低的一个情况。而这个7正好和swin transformer窗口的大小是一致的。

Micro designs

对细节进行了一些改动。替换激活函数(准确率为80.6)、更少的激活函数(81.3)、更少的归一化层(81.4)、LN代替BN(81.5)、借鉴patch merging采用单独的下采样层(82.0)

1.4 模型性能

与SWIN  transformer相比,ConvNext效果要更好,且它的推理速度更快。

第四列的指标是指在a100这个GPU上每秒推理图片的数目,convnext-t推理速度相比swin transformer提升了47%

在COCO或者分割数据集上效果也很好。



1.5 模型参数

C代表每一个stage输入特征层的channel。B指每个stage重复block的次数。

附:GELU激活函数

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值