万字长文——ConvNeXt(2022CVPR),卷积网络的顶峰之作,在Transformer盛行的当下,卷积网络还能再战!

news2024/9/21 23:46:22

ConvNext:A ConvNet for the 2020s

ConvNext:2020 年代的卷积神经网络

论文地址: https://arxiv.org/pdf/2201.03545

自从Transformer成功应用在视觉领域并且取得显著成绩后,很多人开始抛弃卷积网络架构,转而使用Transformer。然而有的大佬不认为卷积过时了,于是有了这篇论文,本文并没有提出创新的技术,而是集百家之所长,将CV领域中的各种技巧融会贯通,使用纯卷积搭建类似于Transofmer的网络结构,以此证明了“我和你长得类似,我纯卷积效果也不输你自注意力”;最终得到了卷积神经网络的巅峰之作——ConvNext。经过个人实践后,效果确实强,的确不输SwinTransformer,也超过了绝大部分的卷积网络(我没有把所有卷积网络都对比)。

1、前言

2020Vision Transformer横空出世,直接在计算机视觉大杀四方,传统卷积网络在计算机视觉领域的地位受到了挑战。于是作者在2020年重新探索了纯粹基于卷积的网络设计的潜力,证明了卷积神经网络还能再战!

视觉识别的“咆哮的 20 年代”始于视觉Transformer (ViT) 的引入,它迅速取代了卷积网络,成为最先进的图像分类模型。

另一方面,普通的 ViT 在应用于一般计算机视觉任务(例如对象检测和语义分割)时面临困难。Swin Transformers重新引入了几个卷积架构,使得 Transformers 成为了通用视觉主干,并在各种视觉任务上展示了卓越的性能。然而,在 Transformer 中引入卷积架构,其有效性仍然在很大程度上归功于 Transformer 的内在优越性,而不是卷积固有的归纳偏差。

在这项工作中,作者重新审视设计空间并测试纯卷积网络能实现的极限。作者对标准的ResNet架构进行了一系列的“现代化”改进,逐步将其改造为类似于 ViT 的设计,但完全基于标准的ConvNet模块,并发现了几个导致性能差异的关键组件。作者将这一探索的结果称为“基于纯卷积网络的模型”——ConvNeXt。ConvNeXts 完全由标准 ConvNet 模块构建而成,在准确性和可扩展性方面能与 Transformers 竞争,实现了 87.8% 的 ImageNet top-1 准确性,并在 COCO 检测和 ADE20K 分割方面优于 Swin Transformers,同时保持了标准 ConvNets 的简单性和效率。

1.1、ConvNets和视觉Transformer在ImageNet-1K上的分类结果

图中的每个气泡代表一个模型变体,气泡的面积与该模型变体的浮点运算次数(FLOPs)成正比。FLOPs是衡量模型在处理单个输入时所需计算量的指标,通常用来评估模型的计算复杂度。图中展示了不同尺寸的模型,包括ImageNet-1K和ImageNet-22K模型。ImageNet-1K/22K模型分别处理224x224和384x384像素的图像。ImageNet-22K是ImageNet-1K的一个扩展,包含更多的类别和图像。ResNet和ViT结果是在原始论文的基础上通过改进的训练技巧得到的。作者证明了一个标准的ConvNet模型可以达到与SwinT相同的可扩展性水平,同时在设计上要简单得多。

1.2、卷积神经网络在计算机视觉领域的统治地位并非巧合

在许多应用场景中,“滑动窗口”策略是视觉处理的内在特征,特别是在处理高分辨率图像时。卷积神经网络有几个内置的归纳偏置,使它们非常适合各种各样的计算机视觉应用。其中最重要的一个归纳偏置是平移等变性(translation equivariance),它指的是网络对于输入图像中目标位置的变化保持一定的鲁棒性。具体来说,平移等变性意味着如果输入图像发生平移(即图像中的所有内容按照某个方向移动一定的距离),卷积层输出的特征映射也会以相同的方式平移。这种特性使得卷积神经网络能够更好地检测和识别图像中的位置变化的物体。 ConvNets 在采用滑动窗口方式时,由于计算是共享的,因此具有固有的高效性。这意味着网络在处理图像的每个局部区域时,可以重复利用之前的计算结果,从而减少了总体的计算量。

1.3Transformer的发展

大约在同一时间,自然语言处理 (NLP) 的神经网络设计走了一条截然不同的道路,Transformers 取代了循环神经网络RNN,成为占主导地位的骨干架构。 尽管语言和视觉领域之间的兴趣任务存在差异,但随着视觉Transformer(ViT)的引入彻底改变了网络架构设计的格局,这两个流在 2020 年令人惊讶地融合。除了最初的“patch”层(将图像分割成一系列补丁)外,ViT 没有引入特定于图像的归纳偏差,并对原始的 Transformer 进行了最小的更改。

ViT 的一个主要关注点是扩展行为:借助更大的模型和更大的数据集,Transformers 的性能可以显著优于标准 ResNet。ViT 在图像分类任务的结果令人鼓舞,但计算机视觉并不局限于图像分类;如果没有 ConvNet 归纳偏差,普通的 ViT 模型想要成为通用视觉主干面临许多挑战,其中最大的挑战是 ViT 在整张输入的图像上计算自注意力,其计算复杂度会随着输入图片大小呈二次方增长,这是非常庞大的计算量。这对于 ImageNet 分类来说可能是可以接受的,但对于更高分辨率的输入就会变得棘手。

层级式Transformer 采用“滑动窗口”策略(在局部窗口内计算注意力),这使得 Transformer 的行为与 ConvNet 更加相似。Swin Transformer 首次证明 Transformer 可以作为

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenGL 原生库6 坐标系统

概述 为了将坐标从一个坐标系变换到另一个坐标系,我们需要用到几个变换矩阵,最重要的几个分别是模型(Model)、观察(View)、投影(Projection)三个矩阵。我们的顶点坐标起始于局部空间(Local Space),在这里它称为局部坐标(Local Coordinate)&a…

内网渗透之中间人欺骗攻击-ARP攻击

ARP攻击 ARP协议简介 ARP全称为Address Resolution Protocol,即地址解析协议,它是一个根据IP地址获取物理地址的TCP/IP协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定…

proteus仿真学习(1)

一,创建工程 一般选择默认模式,不配置pcb文件 可以选用芯片型号也可以不选 不选则从零开始布局,没有初始最小系统。选用则有初始最小系统以及基础的main函数 本次学习使用从零开始,不配置固件 二,上手软件 1.在元件…

滑动窗口算法专题(1)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: 优选算法专题 目录 滑动窗口算法的简介 209. 长度最小的子数组 3.无重复字符的最长子串 1004. 最大连续1的个数III 1658. 将减到0的最小…

Docker基本使用(持续更新中)

docker介绍 docker是一个开源的应用容器引擎,常见的容器引擎例如:docker、podman、containerd等,但是docker应用还是相对比较多。 1 常用命令 1.1保存镜像到本地 命令如下: docker save -o nginx.tar nginx:latest 举例 结果&#xff1a…

C++/Qt 集成 AutoHotkey

C/Qt 集成 AutoHotkey 前言AutoHotkey 介绍 方案一:子进程启动编写AutoHotkey脚本准备 AutoHotkey 运行环境编写 C/Qt 代码 方案二:显式动态链接方案探索编译动态链接库集成到C工程关于AutoHotkeyDll.dll中的函数原型 总结 前言 上一篇介绍了AutoHotkey…

求1000以内所有恰好能分解成10组两个素数之和

要求 根据哥德巴赫猜想,任意一个大偶数都可以分解为两个素数之和。但许多偶数分解为两个素数之和并不是唯一的。 请编写函数fun,其功能是:求1000(不包括1000)以内的所有恰好能分解成10组两个素数之和(5109和1095被认为是同一组)的偶并依次存入数组a中并…

SQL_yog安装和使用演示--mysql三层结构

目录 1.什么是SQL_yog 2.下载安装 3.页面介绍 3.1链接主机 3.2创建数据库 3.3建表操作 3.4向表里面填内容 3.5使用指令查看效果 4.连接mysql的指令 4.1前提条件 4.2链接指令 ​编辑 4.3创建时的说明 4.4查看是不是连接成功 5.mysql的三层结构 1.什么是SQL_yog 我…

有什么兼容macOS 15 Sequoia系统的加密软件?

前言:近日,苹果更新了 macOS 15 Sequoia正式版,已经有用户在电脑上安装使用了。在这个信息化时代,系统一直在更新,运用一些工具时需要考虑兼容性。 刚有个客户来问迅软:你们迅软DSE客户端支持新发布的macO…

python函数三:拆包和交换变量值、引用、匿名函数

文章目录 1. 拆包和交换变量值1.1 拆包1.2 交换变量值 2. 引用2.1 了解引用2.1 把引用当作参数传递 3. 匿名函数3.1 lambda语法3.2 lambda的应用3.3 使用使用函数形式来求解某天是该年的第几天? 1. 拆包和交换变量值 1.1 拆包 拆包:把组合形成的元组形…

Linux基础---13三剑客及正则表达式

一.划水阶段 首先我们先来一个三剑客与正则表达式混合使用的简单示例,大致了解是个啥玩意儿。下面我来演示一下如何查询登录失败的ip地址及次数。 1.首先,进入到 /var/log目录下 cd /var/log效果如下 2.最后,输入如下指令即可查看&#xf…

【读书笔记-《网络是怎样连接的》- 0】全书整体结构

网络是计算机相关课程中的重要部分,更是当今的学习生活中所不可或缺的。虽然相关的经典书籍很多,但是大多数属于深入某一部分的专著,比如TCP/IP协议。像我这样对于网络一知半解的同学来说,更需要一种覆盖网络全貌,每一…

《线性代数》笔记

文章目录 1 行列式1.1 克拉默法则1.2 基本性质1.3 余子式 M i j M_{ij} Mij​1.4 代数余子式 A i j ( − 1 ) i j ⋅ M i j A_{ij} (-1)^{ij} \cdot M_{ij} Aij​(−1)ij⋅Mij​1.5 具体型行列式计算(化为基本型)1.5.1 主对角线行列式:主…

Python学习——【4.2】数据容器:tuple元组

文章目录 【4.2】数据容器:tuple元组一、元组的定义格式二、元组的特点三、元组的操作(一)常见操作(二)循环遍历 【4.2】数据容器:tuple元组 一、元组的定义格式 为什么需要元组 列表是可以修改的。如果想…

seL4 Untyped(二)

链接: Untyped Untyped 这篇主要是针对seL4物理内存管理的介绍。 物理内存 在seL4系统中,除了内核占用的一小部分静态内存之外,其他的所有的物理内存都是用户一级管理的。seL4在启动时创建的对象能力,以及seL4管理的其余物理资源&#xf…

初始网络编程(下)

所属专栏:Java学习 1. TCP 的简单示例 同时,由于 TCP 是面向字节流的传输,所以说传输的基本单位是字节,接受发送都是使用的字节流 方法签名 方法说明 Socket accept() 开始监听指定端口(创建时绑定的端口&…

十七、RC振荡电路

振荡电路 1、振荡电路的组成、作用、起振的相位条件以及振荡电路起振和平衡幅度条件, 2、RC电路阻抗与频率、相位与频率的关系曲线; 3、RC振荡电路的相位条件分析和振荡频率

信息安全数学基础(15)欧拉定理

前言 欧拉定理是数论中的一个重要定理,它建立了模运算下指数与模的互质关系。这个定理在密码学、信息安全等领域有着广泛的应用,特别是在公钥密码体制(如RSA加密算法)中。 一、表述 设 n 是一个正整数,a 是一个与 n 互…

Tomcat服务器—Windows下载配置详细教程

一、关于 1.1 简介 Tomcat是一个开源的Java Servlet容器和Web服务器,由Apache软件基金会维护。它实现了Java Servlet和JavaServer Pages (JSP) 规范,用于运行Java Web应用程序。Tomcat支持多种Java EE功能,并提供了高效的性能和可扩展性&am…

Spring扩展点系列-MergedBeanDefinitionPostProcessor

文章目录 简介源码分析示例示例一:Spring中Autowire注解的依赖注入 简介 spring容器中Bean的生命周期内所有可扩展的点的调用顺序 扩展接口 实现接口ApplicationContextlnitializer initialize AbstractApplicationContext refreshe BeanDefinitionRegistryPos…