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

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.mzph.cn/diannao/54425.shtml

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

相关文章

【工具变量】科技金融试点城市DID数据集(2000-2023年)

时间跨度:2000-2023年数据范围:286个地级市包含指标: year city treat post DID(treat*post) 样例数据: 包含内容: 全部内容下载链接: 参考文献-pdf格式:https://…

[Visual Stuidio 2022使用技巧]2.配置及常用快捷键

使用vs2022开发WPF桌面程序时常用配置及快捷键。 语言:C# IDE:Microsoft Visual Studio Community 2022 框架:WPF,.net 8.0 一、配置 1.1 内联提示 未开启时: 开启后: 开启方法: 工具-选…

c#visionpro开发 方法统计

toolblock开发 vpp第二种简单加载方式 public Cognex.VisionPro.ToolBlock.CogToolBlock ToolBlock1;//初始化后实例化一个方法 //窗口运行程序内部 ToolBlock1 (CogToolBlock)CogSerializer.LoadObjectFromFile(“tjjc.vpp”); MessageBox.Show(“算法加载成功”);//复制一个…

每日刷题(算法)

我们N个真是太厉害了 思路: 我们先给数组排序,如果最小的元素不为1,那么肯定是吹牛的,我们拿一个变量记录前缀和,如果当前元素大于它前面所有元素的和1,那么sum1是不能到达的值。 代码: #def…

python - 子类为什么调用父类的方法

菜鸟教程 - 面向对象https://www.runoob.com/python3/python3-class.html为什么写这个呢 ,因为很多时候,事情很简单,但我往往记住了使用方式,忘记了使用原因,也因为自己看到super()时,也想问为什么要用supe…

AJAX(一)HTTP协议(请求响应报文),AJAX发送请求,请求问题处理

文章目录 一、AJAX二、HTTP协议1. 请求报文2. 响应报文 三、AJAX案例准备1. 安装node2. Express搭建服务器3. 安装nodemon实现自动重启 四、AJAX发送请求1. GET请求2. POST请求(1) 配置请求体(2) 配置请求头 3. 响应JSON数据的两种方式(1) 手动,JSON.parse()(2) 设置…

Python 实现Excel XLS和XLSX格式相互转换

在日常工作中,我们经常需要处理和转换不同格式的Excel文件,以适应不同的需求和软件兼容性。Excel文件的两种常见格式是XLS(Excel 97-2003)和XLSX(Excel 2007及以上版本)。本文将详细介绍如何使用Python在XL…

web worker使用

1. 新建worker.js import kriging from "/views/Heatmap/kriging";self.onmessage (e) > {console.log(e) // 主线程传过来的数据self.postMessage(我是子线程的数据) // 返回给主线程的数据 }2. 在使用的文件引入woker.js 注: 在worker中如果要使用…

USB组合设备——串口+鼠标+键盘

文章目录 USB组合设备——串口+鼠标+键盘描述符结构设备描述符配置描述符集合配置描述符接口关联描述符键盘接口描述符鼠标接口描述符类特殊命令CDC 的类特殊命令HID 的类特殊命令接口 2接口3USB组合设备——串口+鼠标+键盘 描述符结构 设备描述符 配置描述符 接口关联描述符…

【数据结构篇】~链表算法题3(环形链表)

链表算法题3(环形链表) 环形链表的证明1. 环形链表I​1) 思路2)代码实现 2. 环形链表II​1) 思路11) 思路22)代码实现 3. 随机链表的复制​1) 思路2)代码实现 环形链表的证明 1. 环形链表I​ https://leetcode.cn/prob…

一些常用的 Docker 命令

一些常用的 Docker 命令 涵盖了查看镜像、启动镜像等基本操作: 1. 查看 Docker 镜像 列出所有本地存储的镜像: docker images这会显示所有已经下载到本地的镜像,包括仓库名、标签、镜像 ID、创建时间和大小。 2. 拉取 Docker 镜像 从 Dock…

Redhat 7,8系(复刻系列) 一键部署Oracle21c-xe rpm

Oracle21c-xe前言 无论您是开发人员、DBA、数据科学家、教育工作者,还是仅仅对数据库感兴趣,Oracle Database Express Edition (XE) 都是理想的入门方式。它是全球企业可依赖的强大的 Oracle Database,提供简单的下载、易于使用和功能齐全的体验。您可以在任何环境中使用该…

git push出错Push cannot contain secrets

报错原因: 因为你的代码里面包含了github token明文信息,github担心你的token会泄漏,所以就不允许你推送这些内容。 解决办法: 需要先把代码里面的github token信息删除掉,并且删掉之前的历史提交,只要包…

Stable Diffusion Fooocus批量绘图脚本

当当当挡~,流动传热数值计算之余发布点AIGC相关文章,希望大家能喜欢~ 1 Stable Diffusion各种UI分析对比 提示:此部分主要是对SD各种界面的简要介绍和对比,只关注Fooocus批量绘图的读者可直接跳到第二部分。 Stable Diffusion …

微服务_入门2

文章目录 一、Feign远程调用二、Gateway服务网关2.1、为什么需要网关2.2、gateway快速入门2.3、断言工厂2.4、过滤器 一、Feign远程调用 来看我们以前利用RestTemplate发起远程调用的代码: 存在下面的问题: 代码可读性差,编程体验不统一&…

pg入门15—pg中fts configurations是什么

在 PostgreSQL 中,FTS configurations(全文搜索配置)是用于定义文本分析和搜索行为的设置。这些配置决定了如何处理和解析输入文本,以便进行高效的全文搜索。 主要组成部分 词汇表: 确定哪些词会被视为搜索词&#xf…

C语言指针常量和常量指针

C语言指针常量和常量指针 在 C/C 中,const 关键字用于定义常量。在涉及指针时,const 的使用可以带来不同的含义。下面是几种常见的指针与 const 的组合方式及其含义: 常量指针(Pointer to Constant) const int* ptr;含…

周末愉快!——周复盘

加班的晚上有一个美梦! 周末愉快简单复盘结尾 精华: 在这个信息爆炸的时代,我们的大脑每天都被无数的数据和刺激充斥,以至于我们常常感到应接不暇。然而,正如古人所言:“不飞则已,一飞冲天”&am…

scrapy之setting文件详解

一、使用项目配置文件的好处 1. 集中管理配置 配置文件将各种设定集中管理,避免了在代码中散布配置参数。这使得开发人员能够方便地找到并修改全局参数,不必在代码的各个部分寻找。 2. 提升代码可维护性 配置文件将程序逻辑与具体的配置解耦&#xff0…

2025年最新大数据毕业设计选题-基于Spark分析相关

选题思路 回忆学过的知识(Python、Java、Hadoop、Hive、Sqoop、Spark、算法等等。。。) 结合学过的知识确定大的方向 a. 确定技术方向,比如基于Hadoop、基于Hive、基于Spark 等等。。。 b. 确定业务方向,比如民宿分析、电商行为分析、天气分析等等。。。…