Transformer:开启CV研究新时代

news2025/2/26 19:17:28

来源:投稿 作者:魔峥
编辑:学姐

起源回顾

有关Attention的论文早在上世纪九十年代就提出了。

在2012年后的深度学习时代,Attention再次被翻了出来,被用在自然语言处理任务,提高RNN模型的训练速度。但是由于结果Attention效果太好。谷歌的科学家们在2017年提出了抛弃RNN全用Attention的神经网络结构[2],并把这种结构取名为Transformer。

Transformer的基础元件是一种名叫Self-Attention的计算方式。假设现在一个有隐式逻辑的序列a=(a1, a2, a3, ..., ai, ...),例如文章的文字序列,语音的声谱序列,甚至可以是心电图信号序列。我们的目标是:为每个token(元素)找到与其他token的关系权重(图1),找到这样的权重信息组合就是Transformer需要做的。

大杀四方

我们可以发现,Transformer在NLP语音识别这样的序列任务上有天生的结构优势。 但是在图片识别任务中,因为序列信息不明显而很难简单使用。

事情的发展也是这样,在Transformer在NLP任务中火了3年后,VIT网络[4]提出才令Transformer正式闯入CV界,成为新一代骨干网络。

VIT的思想很简单:

没有序列就创造序列,把一个图片按序切成一个个小片(Patch)不就是有序列与token了吗(图2)?这样的想法很简单很粗暴,但效果就是好。一种全新思路设计的网络,结果直接逼近甚至超过研究多年的ResNet CNN结果【表1】。

但这种简单粗暴的切片结果是有明显的缺点。(包括但不限于以下几点)如:

新网络训练难度大,论文中几乎没告诉调参方法 因为VIT的直筒式结构,对接下游任务时表现很难 使用图片切开的方法,导致切口处的关联性一些影响。

后来衍生

所谓”缺陷趋生进化,完美亦是终结”。

VIT的优异表现让驱使继者进行深入持续研究。直接导致了如今Transformer在CV界大火的局面。在DeiT论文[6]中,作者提出了VIT网络的训练方案【表2】。以表2的参数为基准进行数据微调即可以得到很好的结果。

在ICCV2021上提出的PVT(Pyramid Vision Transformer)论文【5】中,将类FPN的结构(图3)因为FPN。该方案大大方便了Transformer网络接入CV下游任务,同时减少了大目标的内存计算的消耗。

在同时期ICCV2021的Swim Transformer论文[7]中,提出了W-MSA。SW-MSA交替使用(图4)的切片方案(Swim Transformer论文中还有很多重要的开创性贡献)。该方案防止了被切片处一直分开关联性差的情况。

自去年以来,CV Transformer发展更加迅速俨然成为CV界继CNN的下一代神经网络。看来新一轮的知识更新又开始了。

引文:

[1] Jay Alammar:The Illustrated Transformer https://jalammar.github.io/illustrated-transformer/

[2] Attention Is All You Need https://arxiv.org/abs/1706.03762

[3] 台湾大学李宏毅教授Attention课程ppt

[4] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale https://arxiv.org/abs/2010.11929

[5] Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions https://arxiv.org/abs/2102.12122

[6] Training data-efficient image transformers & distillation through attention https://arxiv.org/abs/2012.12877

[7] Swin Transformer: Hierarchical Vision Transformer using Shifted Windows https://arxiv.org/abs/2103.14030

关注下方卡片《学姐带你玩AI》🚀🚀🚀

回复“CVPR”

600+篇CVPR必读论文免费领

码字不易,欢迎大家点赞评论收藏!

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

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

相关文章

数据库(4)--视图的定义和使用

一、学习目的 加深对视图的理解,熟练视图的定义、查看、修改等操作 二、实验环境 Windows 11 Sql server2019 三、实验内容 学生(学号,年龄,性别,系名) 课程(课号,课名,…

收藏|一文掌握数据分析在企业的实际流程

一、数据分析概念 1.1 数据分析 是指用适当的统计分析方法对收集来的大量数据进行分析,将他们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用。 1.2 数据分析包括 描述性数据分析(初级数据分析)…

兼职平台小程序【源码好优多】

简介 微信小程序兼职平台以及问答悬赏平台的整合项目,兼职平台以及问答社区,是一个可以用于学生项目开发或者毕设的小型项目。 功能介绍 微信授权登录 用户兼职选择 优质学长/学姐推荐 兼职推荐 问答板块 评论/回复板块 用户个人中心 页面截图 …

深度学习Week15-common.py文件解读(YOLOv5)

目录 简介 一.基本组件 1.1autopad 1.2Conv 1.3 Focus 1.4Bottleneck 1.5BottleneckCSP 1.6 C3 1.7 SPP 1.8Concat 1.9Contract、Expand 二、重要类 2.1非极大值抑制(NMS) 2.2AutoShape 2.3 Detections 2.4 Classify 三、实验 &#x1f…

WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第三步-模块与特征分析)

1写在前面 之前我们完成了WGCNA输入数据的清洗,网络构建和模块识别。😘 而且还介绍了如何对大型数据分级处理,有效地减少了内存的负担。😷 接着就是最重要的环节了,将不同module与表型或者临床特征相联系,进…

共享模型之工具(一)

1.线程池 1.1.线程池产生背景 1>.线程是一种系统资源,每创建一个新的线程都需要占用一定的内存(分配栈内存),在高并发场景下,某一时刻有大量请求访问系统,如果针对每个请求(任务)都创建一个新的线程,那么对内存的占用是相当大的,有可能还出现OOM(内存溢出),甚至会导致整个…

配置中心Config

引入依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.6.RELEASE</version></parent><properties><spring-cloud.version>Finchley.SR…

设计模式:桥接模式让抽象和实现解耦,各自独立变化

一、问题场景 现在对”不同手机类型“的 “不同品牌”实现操作编程(比如: 开机、关机、上网&#xff0c;打电话等) 二、传统解决方案 传统方案解决手机使用问题类图&#xff1a; 三、传统方案分析 传统方案解决手机操作问题分析 1、扩展性问题(类爆炸)&#xff0c;如果我们…

JavaのString类这一篇就够了(包含StringBuffer_Builder)

1.&#x1f957;String类简介 在我们写代码的时候&#xff0c;String总是充斥着前前后后。 但你会不会经常力不从心&#xff0c; “这个*** 字符串怎么** 转换不成功啊” “*** 这个字符串到底是常量还是对象啊” “这*** 字符串内存结构到底* * * 是什么啊” “为啥我的字符串…

Java 在二叉树中增加一行

623. 在二叉树中增加一行中等给定一个二叉树的根 root 和两个整数 val 和 depth &#xff0c;在给定的深度 depth 处添加一个值为 val 的节点行。注意&#xff0c;根节点 root 位于深度 1 。加法规则如下:给定整数 depth&#xff0c;对于深度为 depth - 1 的每个非空树节点 cur…

LeetCode 83. 删除排序链表中的重复元素

原题链接 难度&#xff1a;easy\color{Green}{easy}easy 题目描述 给定一个已排序的链表的头 headheadhead &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2] 输出&#xff1a;…

Springboot+ElasticSearch构建博客检索系统-学习笔记01

课程简介&#xff1a;从实际需求分析开始&#xff0c;打造个人博客检索系统。内容涵盖&#xff1a;ES安装、ES基本概念和数据类型、Mysql到ES数据同步、SpringBoot操作ES。通过本课&#xff0c;让学员对ES有一个初步认识&#xff0c;理解ES的一些适用场景&#xff0c;以及如何使…

C语言实例|编写C程序在控制台打印余弦曲线

C语言文章更新目录 C语言学习资源汇总&#xff0c;史上最全面总结&#xff0c;没有之一 C/C学习资源&#xff08;百度云盘链接&#xff09; 计算机二级资料&#xff08;过级专用&#xff09; C语言学习路线&#xff08;从入门到实战&#xff09; 编写C语言程序的7个步骤和编程…

30岁了,说几句大实话

是的&#xff0c;我 30 岁了&#xff0c;还是周岁。 就在这上个月末&#xff0c;我度过了自己 30 岁的生日。 都说三十而立&#xff0c;要对自己有一个正确的认识&#xff0c;明确自己以后想做什么&#xff0c;能做什么。 想想时间&#xff0c;过得真快。 过五关斩六将&…

基于圆展开自适应三边测量算法的室内定位

基于圆展开自适应三边测量算法的室内定位 具有无线通信功能的移动设备的日益普及刺激了室内定位服务的增长。室内定位用于实时定位设备位置&#xff0c;方便访问。然而&#xff0c;由于大量障碍物&#xff0c;与室外定位相比&#xff0c;室内定位具有挑战性。全球定位系统非常适…

【MyBatis】| MyBatis分页插件PageHelper

目录 一&#xff1a;MyBatis使⽤PageHelper 1. limit分⻚ 2. PageHelper插件 一&#xff1a;MyBatis使⽤PageHelper 1. limit分⻚ &#xff08;1&#xff09;概念&#xff1a; ①页码&#xff1a;pageNum&#xff08;用户会发送请求&#xff0c;携带页码pageNum给服务器&am…

Pom.xml详解

目录 1、Maven的下载安装 2、什么是pom&#xff1f; 3、较完整的pom元素 4、默认生成Maven工程的pom内容 5、自定义的属性变量 6、依赖管理 6.1、整体依赖关系列表 6.2、依赖关系的传递性 6.3、依赖传递可能造成的问题 6.3.1、scope依赖范围 6.3.2、依赖调节 6.3.3…

【分享】如何通过集简云将ChatGPT人工智能接入到我们的飞书机器人中?

ChatGPT是一款非常强大的人工智能产品&#xff0c;可以有创造性的回复和创作文字&#xff0c;图片&#xff0c;适用于很多办公场景。这篇文章将介绍如何将ChatGPT接入到我们的飞书机器人中。 在集简云中的ChatGPT应用 目前集简云提供了两个ChatGPT应用: OpenAI(ChatGPT&#x…

EdgeCOM嵌入式边缘计算机的参数配置

EdgeCOM嵌入式边缘计算机的参数配置&#xff1a; 下面以 eth0 为例进行命令说明。 在 Linux 系统下&#xff0c;使用 ifconfig 命令可以显示或配置网络设备&#xff0c;使用 ethtool 查询及 设置网卡参数。 设置 IP 地址&#xff0c;查看当前网卡详情&#xff1a; rootfl-imx6u…

数字源表在二极管特性参数分析中的应用

分立器件特性参数测试是对待测器件&#xff08;DUT&#xff09;施加电压或电流&#xff0c;然后测试其对激励做出的响应&#xff0c;通常分立器件特性参数测试需要几台仪器完成&#xff0c;如数字万用表、 电压源、电流源等。然而由数台仪器组成的系统需要分别进行编程、同步、…