【视觉论文】VIT - Vision Transformers

论文:AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
链接:https://arxiv.org/abs/2010.11929

很多人博主都写烂了的论文,我到现在才真正翻开论文看,21年的工作,正好是刚毕业那年,恶补起来~

摘要

  • 出发点:因为Transformer计算效率和可扩展性,逐渐在自然语言任务上成为主流,但在视觉领域的应用有限。基本都是与卷积结合使用或者替换卷积网络中的某些组件,并没有从整体上改变网络架构。
  • 方案:Pre-train and transfer
    • 实现很简单,按照原文精简表达出来就是:
      we split an image into patches and provide the sequence of linear embeddings of these patches as an input to a Transformer. Image patches are treated the same way as tokens (words) in an NLP application.
    • why pre-train:在ImageNet等中等大小的数据集上,效果不如同等大小的ResNet。文中给出解释是 - Transformer缺少CNN固有的inductive biases(such as translation equivariance and locality),在数据不足时泛化性较差。所以模型在14M-300M图像数据集上做了预训练。
    • why patchs:一个直观的使用自注意力机制在图像上的方法是,每个像素点之间做attention,但是这样计算复杂度是像素数的二次方,并不能用于真实的输入大小上。
  • 结果:证明了在视觉领域CNN并不是必要的,直接将图像patch序列输入tranformer也可以取得良好的效果,并且在训练阶段可以减少计算资源的消耗。

方法

直接上图,问题点在于如何将图片patch转换为embedding。

  1. 模型输入
    图像大小H*W*C,H和W分别代表宽和高,C代表通道数。将其flatten为2维N*(P*P*C),N为切割出的patch数量,每个patch的大小为P*P,patch的数量为N=HW / P^2(即tranformer输入长度)。对于二维patch处理,则是直接flatten并映射到输入向量维度-patch embeddings(原文flatten the patches and map to D dimensions with a trainable linear projection)。在这里插入图片描述
    在输入端,还需要拼接一个[CLS](为了和BERT中的说法对齐,其实本质就是一个可学习的向量),在对应位置的输出端,过一个一层的MLP,得到整个图片表示。
    除此之外,还有一个位置编码信息。文中介绍只用了standard learnable 1D position embeddings, 在2D-aware position embeddings未见到收益
  2. 模型结构
    在结构上就是transformer的堆叠(MSA+MLP),文中给出的细节是,每个模块前都会使用Layernorm (LN),并且每个模块都会使用残差连接。公式感觉更清楚一些:
    在这里插入图片描述
  3. 分析
    Transformer与原始CNN相比缺少归纳偏置的特点(Inductive bias),这是一种先验知识,即提前做好的假设。CNN结构共包括两种归纳偏置,一种是局部性,一种是平移不变性;前者指的是图片上相邻的区域具有相似的特征;先卷积再平移和先平移再卷积结果一致。因此CNN具备很多先验信息,只需要相对少的数据就可以学习一个比较好的模型。

实验

先介绍一些我比较关心的实验结果

  1. 为什么增加CLS,而不直接使用average pooling,文中有对应实验结果,两者实际差别不大。
    在这里插入图片描述
  2. Position embedding对比,位置编码将sum到输入embedding上,假设3x3共9个patch:
    • 一维编码:patch编码为1到9
    • 二维编码:patch编码为11,12,13,21,22,23,31,32,33,即同时考虑X轴与Y轴的信息,对X和Y Embedding进行concat
    • 相对位置编码:为了编码patch之间的空间信息,考虑加入其相对位置距离,对于任意patch之间计算其1维上的相对位置,每个offset作为一个embedding,然后需要一个额外的attention,原有query作为query,相对位置的embedding作为key,然后将attention结果作为bias加入main attention中。
      由实验结果可以看到,出了不加位置编码有比较大的性能损失外,其他位置编码方式差距不大,作者认为这是因为输入是基于patch而非像素,对于编码空间信息不是很重要,并且给予patch的方式使空间关系变得简单。
      在这里插入图片描述
  3. 各种size的ViT模型
    在这里插入图片描述
  4. 主要实验,可以看到在小数据集预训练结果不如resnet
    在这里插入图片描述

在这里插入图片描述
5. 不同大小的预训练数据集效果对比,卷积的归纳偏差对于较小的数据集很有用,但对于较大的数据集,直接从数据中学习相关模式就足够了。
在这里插入图片描述
6. scaling study:ViT uses approximately 2 − 4× less compute to attain the same performance,CNN+Transformer即Hybrid的方法在模型较小时有效果,但是随着模型增大效果消失。
在这里插入图片描述
7. 一些可视化结果
在这里插入图片描述

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

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

相关文章

中医药性笔记

目录 当归黄芪党参白术甘草茯苓半夏陈皮升麻柴胡 当归 补血。 当归,腾讯医典 黄芪 土金之药。 补中气的同时补肺气。益卫固表、利水消肿、 腾讯医典黄芪 党参 土金之药。健脾益肺,生津养血。 党参补气之力弱于人参、用于脾肺气虚的轻症。 党…

TPS54560BQDDARQ1功能和参数介绍及如何进行热管理

制造商:Texas Instruments 产品品种:开关稳压器 RoHS:是 安装风格:SMD/SMT 封装 :SO-PowerPad-8 输出电压:0.8 V to 58.8 V 输出电流:5 A 输出端数量:1 Output 最大输入电压:60 V 拓扑结构:Buck 最小输入电压:4.5 V 开关频率:100 kHz to 2.5 MHz 最小作业温度:- 40 C 最大作业温…

贪吃蛇游戏C语言破解:成为编程高手的必修课!

​ 个人主页:秋风起,再归来~ 文章专栏:C语言实战项目 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 1、游戏效果演示 贪吃蛇游戏效果演示 2、win32 A…

vue2+vxe-table实现表格增删改查+虚拟滚动

vue2vxe-table实现表格增删改查虚拟滚动 使用的vxe-table版本&#xff1a;v3.x (vue 2.6 长期维护版) 完整代码 <template><div><vxe-toolbar ref"xToolbar" export :refresh"{query: findList}"><template #buttons><vxe-b…

1W 1.5KVDC 3KVDC 隔离宽范围输入,单、双输出 DC/DC 电源模块——TP2L-1W 系列

TP2L-1W系列是一款高性能、超小型的电源模块&#xff0c;宽范围2&#xff1a;1,4:1输入&#xff0c;输出有稳压和连续短路保护功能&#xff0c;隔离电压为1.5KVDC&#xff0c;3KVDC工作温度范围为–40℃到85℃。特别适合对输出电压的精度有严格要求的地方&#xff0c;外部遥控功…

瑞_Docker(笔记超详细,有这一篇就够了)

文章目录 1 Docker入门1.1 卸载旧版Docker1.2 安装Docker1.2.1 安装Docker的yum库1.2.2 配置Docker的yum源1.2.3 安装Docker1.2.4 启动和校验&#xff08;开机自启&#xff09;1.2.5 配置镜像加速 1.3 使用示例&#xff1a;部署MySQL1.3.1 命令解读 2 Docker基础2.1 常见命令2.…

第二届 eBPF 开发者大会分享回顾 - Pipy 与 eBPF:重塑系统级编程的新范式

四月的西安&#xff0c;春意盎然&#xff0c;这座古城在温暖的春风中更添了几分旖旎风光。第二届 eBPF 开发者大会在西安顺利召开。 本次大会由西安邮电大学主办&#xff0c;主题为“发挥 eBPF 技术力量&#xff0c;提升计算机系统可观测性和性能”&#xff0c;旨在探讨和分享 …

世界读书日 | 开发者必读书单重磅来袭,华为云DTSE专家天团力荐

春色恰如许&#xff0c;读书正当时。 读书&#xff0c;就像解锁一把神秘钥匙&#xff0c;为开发者洞开新世界的大门&#xff0c;赋予他们破译复杂难题的能力、挑战未知领域的勇气。书页翻动间&#xff0c;开发者得以站在巨人的肩膀上&#xff0c;汲取前人经验&#xff0c;积蓄…

比特币之路:技术突破、创新思维与领军人物

比特币的兴起是一段充满技术突破、创新思维和领军人物的传奇之路。在这篇文章中&#xff0c;我们将探讨比特币发展的历程&#xff0c;以及那些在这一过程中发挥重要作用的关键人物。 技术突破与前奏 比特币的诞生并非凭空而来&#xff0c;而是建立在先前的技术储备之上。在密码…

自定义数据 微调CLIP (结合paper)

CLIP 是 Contrastive Language-Image Pre-training 的缩写&#xff0c;是一个擅长理解文本和图像之间关系的模型&#xff0c;下面是一个简单的介绍&#xff1a; 优点&#xff1a; CLIP 在零样本学习方面特别强大&#xff0c;它可以&#xff08;用自然语言&#xff09;给出图像…

lementui el-menu侧边栏占满高度且不超出视口

做了几次老是忘记&#xff0c;这次整理好逻辑做个笔记方便重复利用&#xff1b; 问题&#xff1a;elementui的侧边栏是占不满高度的&#xff1b;但是使用100vh又会超出视口高度不美观&#xff1b; 解决办法&#xff1a; 1.获取到侧边栏底部到视口顶部的距离 2.获取到视口的高…

操作系统:进程间通信 | 管道

目录 1.进程间通信介绍 1.1.简要介绍 1.2.进程间通信的目的 1.3.进程间通信的本质 2.管道 2.1.管道的通信原理 2.2.匿名管道 2.3.命名管道 2.4.基于匿名管道的进程池demo 2.4.1.进程池的相关引入 2.4.2.整体框架的分析 2.4.3.代码的实现 1.进程间通信介绍 1.1.简…

华为认证FAQ | 考试预约、考券购买常见问题

●考试预约常见问题● Q : 如何进行考试预约&#xff1f; A : 登录“华为人才在线官网” >>参考考试预约操作指引在线预约考试>>检查考试预约记录&#xff0c;确认预约成功 (私信获取考试预约操作指引文档&#xff09;。&#xff08;注&#xff1a;非本人预约…

程序员学CFA——数量分析方法(四)

数量分析方法&#xff08;四&#xff09; 常见概率分布基本概念离散型随机变量与连续型随机变量离散型随机变量连续型随机变量 分布函数概率密度函数&#xff08;PDF&#xff09;累积分布函数&#xff08;CDF&#xff09; 离散分布离散均匀分布伯努利分布二项分布定义股价二叉树…

程序的表示、转换与链接:三、运算电路基础

目录 一、整数加减运算理论二、数字逻辑电路基础和整数加减运算部件三、如何启用逻辑电路&#xff1a;从C表达式到逻辑电路四、C语言中的各类运算 一、整数加减运算理论 整数加减运算 无符号整数加减运算&#xff1a;指针、地址等通常被说明为无符号整数&#xff0c;因而在进行…

pycharm远程连接server

1.工具–部署–配置 2.部署完成后&#xff0c;将现有的项目的解释器设置为ssh 解释器。实现在远端开发 解释器可以使用/usr/bin/python3

Opencv_10_自带颜色表操作

void color_style(Mat& image); Opencv_10_自带颜色表操作&#xff1a; void ColorInvert::color_style(Mat& image) { int colormap[] { COLORMAP_AUTUMN, COLORMAP_BONE , COLORMAP_JET , COLORMAP_WINTER, COLORMAP_RAINBOW , COLOR…

Ts支持哪些类型和类型运算(下)

目录 1、条件判断 &#xff08;extends &#xff1f;&#xff09; 2、推导 infer 3、联合 | 4、交叉 & 5、映射类型 1、条件判断 &#xff08;extends &#xff1f;&#xff09; ts里的条件判断&#xff0c;语法为 T extends XXX ? true : false &#xff0c;叫做…

【Qt 学习笔记】Qt常用控件 | 按钮类控件 | Check Box的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 按钮类控件 | Check Box的使用及说明 文章编号&#xff…

智能时代 | 合合信息Embedding模型荣获C-MTEB榜单第一

目录 前言 1. MTEB与C-MTEB 2. acge模型的优势 3. Embedding模型应用 4. 大模型发展的关键技术 结语 前言 随着人工智能的不断发展&#xff0c;大语言模型吸引着社会各界的广泛关注&#xff0c;支撑模型应用落地的Embedding模型成为业内的焦点&#xff0c;大模型的发展给…