Transformer:开启CV研究新时代

news/2024/7/19 9:01:13 标签: 深度学习, transformer, 计算机视觉

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

起源回顾

有关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.niftyadmin.cn/n/68772.html

相关文章

JSP的简单使用

目录 Jsp与Servlet JSP实现原理 普通脚本 声明脚本 JSP注释 JSP指令 useBean 四大作用域对象 EL表达式(Expression Language) JSTL标准标签库 分页查询 Jsp与Servlet 关系:jsp文件在容器中会转换成servlet文件执行,jsp…

leetcode 困难 —— 数字 1 的个数(简单逻辑题)

&#xff08;害&#xff0c;做题是真的慢&#xff0c;这面试给我这题我估计就傻了&#xff09; 题目&#xff1a; 给定一个整数 n&#xff0c;计算所有小于等于 n 的非负整数中数字 1 出现的个数。 题解&#xff1a; 首先看看整数范围 0 < n < 10^9 不能遍历&#xff0…

【Matlab算法】MATLAB求解背包问题(附MATLAB代码)

MATLAB求解背包问题前言正文函数实现参考资料前言 背包问题是一个经典的组合优化问题&#xff0c;其目标是在给定一定容量的背包和一组具有不同价值和重量的物品中&#xff0c;选择物品放入背包&#xff0c;使得放入的物品总重量不超过背包容量&#xff0c;同时总价值最大。 …

【C语言】编程初学者入门训练(11)

文章目录101. 矩阵相等判定102. 上三角矩阵判定103. 矩阵转置104. 矩阵交换105. 杨辉三角106. 井字棋107. 小乐乐与进制转换108. 小乐乐求和109. 小乐乐定闹钟110. 小乐乐排电梯101. 矩阵相等判定 问题描述&#xff1a;KiKi得到了两个n行m列的矩阵&#xff0c;他想知道两个矩阵…

typescript函数

一&#xff0c;函数介绍 1.在javascript中函数有函数声明和函数表达式两种 2.typescript函数在javascript函数基础上&#xff0c;为函数增加了参数和返回值的数据类型 二&#xff0c;typescript函数 1.为声明式函数增加类型 function sum(x:number,y:number):number{retur…

Java基础:多态

多态 1.概念 package cn.ncepu.demo1.a02extenddemo3;// 多态 public class Test {public static void main(String[] args) {System.out.println("Test"); // Person student new Student("张三", 18); // Person teacher new Teacher(&…

2023最全的自动化测试入门基础知识(超详细~)

1)首先&#xff0c;什么是自动化测试&#xff1f; 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常&#xff0c;在设计了测试用例并通过评审之后&#xff0c;由测试人员根据测试用例中描述的过程一步步执行测试&#xff0c;得到实际结果与期望结果的比较。…

HTTP 1.1响应码

HTTP 1.1响应码 响应码和信息含义HttpURLConnection1XX信息100 Continue服务器准备接受请求主体&#xff0c;客户端应当发送请求主体&#xff1b;这允许客户端在请求中发送大量数据之前询问服务器是否将接受请求N/A101 Switching Protocols服务器接受客户端在Upgrade首部字段中…