论文阅读之AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

文章目录

  • 原文链接
  • 主要内容
  • 模型图
  • 技术细节
  • 实验结果

原文链接

AN IMAGE IS WORTH 16X16 WORDS:
TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

主要内容

这篇文章的主要内容是介绍了一种新的计算机视觉模型——Vision Transformer(ViT),这是一种将自然语言处理中广泛使用的Transformer架构直接应用于图像识别任务的尝试。文章通过大量实验验证了ViT在多个图像识别基准上的有效性,并与当时的最先进卷积神经网络(CNN)模型进行了比较。

以下是文章的主要内容概述:

引言:介绍了Transformer架构在自然语言处理(NLP)任务中的成功,并探讨了其在计算机视觉领域的潜在应用。指出以往的工作尝试将注意力机制与卷积网络结合,或者用注意力机制替换卷积网络的某些部分,但整体结构保持不变。

方法:提出了Vision Transformer(ViT),它将图像分割成一系列小块(patches),然后将这些块作为序列输入到标准的Transformer编码器中。这种方法避免了依赖于CNN,并且通过在大量数据上进行预训练,ViT在多个中等规模或小规模的图像识别基准上取得了与最先进CNN相比肩甚至更好的结果,同时训练所需的计算资源更少。

相关工作:回顾了Transformer在NLP中的应用,以及在图像处理中的一些尝试,包括局部自注意力和稀疏变换器等。

实验:详细描述了ViT在不同数据集上的预训练和微调过程,包括ImageNet、CIFAR-100和VTAB等,以及与其他模型的比较结果。

结论:文章总结了ViT的主要发现,并讨论了未来的研究方向,包括将ViT应用于其他计算机视觉任务、探索自监督预训练方法以及进一步扩展ViT的规模。

文章的主要贡献在于展示了Transformer架构在没有CNN特有的归纳偏差(如平移不变性和局部性)的情况下,通过大规模预训练,仍然能够有效地处理图像识别任务。这一发现为未来的图像处理模型提供了新的设计思路。

模型图

在这里插入图片描述
ViT将图像分割成固定大小的块,线性嵌入每个块,添加位置嵌入,并将生成的矢量序列提供给标准Transformer编码器。为了执行分类,使用向序列添加额外可学习的“分类标记”的标准方法。
在这里插入图片描述

技术细节

在这里插入图片描述
模型输入就是把图像切成小块,然后排列整齐输入,就像文本一样,可以简单将一块图片当作一个单词。

但是由于transformer输入是1D的,但是图像是2D的,所以需要reshape维度

例如原始图片高x宽x颜色数

在这里插入图片描述
reshape成:
在这里插入图片描述
其中N就是多少个小块,P就是一个小块的边长,C是颜色通道数
在这里插入图片描述
那么此时一个小块xp的维度就是P*P*C

此时再进行线性变换,就得到了小块的embedding了
在这里插入图片描述

在这里插入图片描述
E就是进行线性变换,Epos就是添加位置编码。

在这里插入图片描述
上标表示第几个小块的编码信息,下标表示经过了几层encoder(0表示输入,L就表示输出)

因为BERT中有[CLS]用来标记分类,这里多加了个xclass也用来分类
在这里插入图片描述
LN就是layer normalization

在这里插入图片描述
然后这就是对应编码部分,MSA就是multiheaded self-attention,L表示有L层来编码

实验结果

在这里插入图片描述‘训练时间少、效果好。
在这里插入图片描述

左图:预训练数据集越大,模型越大效果越好
右图:预训练数据集越大,ViT模型效果越好,并实现反超。

先这样吧。

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

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

相关文章

【iOS ARKit】触发器与触发域

触发器 在上节的示例中,所有可见的物体都参与了物理模拟,但在一些应用中,我们物理模拟,同时又需要了解是否有物体与它们发生了碰撞。如在 AR场景中,当角色靠近一散门时,我们并不希望因为角色与门发生碰撞而…

自然语言处理学习总结

目录 1、词表示 2、语言模型(LM) 3、常用学习网址 自然语言处理 1、词表示 词表示:自然语言中最基本的语言单位表示成机器理解的方式 方式一:词与词之间的相似度 方式二:词与词之间的关系 词义的表示方法&…

云手机在海外电商中的应用优势

随着海外市场的不断拓展,电商行业对于高效、安全的工具需求日益增长。在这一背景下,云手机作为一种新型服务,为海外电商提供了强大的支持和便利。云手机对传统物理手机起到了非常好的延展和补充作用,拓展了更广泛的应用场景&#…

Kafka整理-Kafka与传统消息队列系统(如RabbitMQ, ActiveMQ)的区别是什么?

Apache Kafka与传统消息队列系统(如RabbitMQ, ActiveMQ)虽然都是处理消息和数据流的中间件,但它们在设计理念、架构、功能和使用场景方面有显著的区别。下面是Kafka与传统消息队列系统的主要区别: 1. 设计目的和使用场景 Kafka: 设计初衷是为处理大量的实时数据流。强调高…

埃隆·马斯克与OpenAI诉讼案剖析

解析马斯克与OpenAI的法律纠纷 摘要 在人工智能迅速发展的背景下,一场法律纠纷引起了广泛关注,它涉及到了理想主义与商业现实的交汇点。特斯拉创始人埃隆马斯克起诉了他共同创立的人工智能研究组织OpenAI。马斯克认为OpenAI背离了其最初的宗旨&#xf…

RabbitMQ问题

如何实现顺序消费? 消息放入到同一个队列中消费 如何解决消息不丢失? 方案: 如上图:消息丢失有三种情况,解决了以上三种情况就解决了丢失的问题 1、丢失1--->消息在到达交换机的时候;解决&#xff1…

原生html vue3使用element plus 的树tree上移下移案例源码

上效果 html源码 <!DOCTYPE html> <html lang"en"> <!-- * Name: mallSalesReports.html * Description: * Author Lani * date 2024-02-28 18:32:36 --> <head><meta charset"UTF-8"><meta name"viewport" …

docker入门(五)—— 小练习,docker安装nginx、elasticsearch

练习 docker 安装 nginx # 搜素镜像 [rootiZbp15293q8kgzhur7n6kvZ home]# docker search nginx NAME DESCRIPTION STARS OFFICIAL nginx …

计算机网络——协议层次及服务模型

计算机网络中的协议层次是指将网络功能划分为不同的层次&#xff0c;每个层次负责特定的功能&#xff0c;并通过协议进行通信。 一、为什么要分层 分层是设计/讨论复杂系统的有效方法。分层使得复杂系统概念化&#xff0c;结构清晰便于标示网路组件&#xff0c;以及描述其相互…

【Postrsql】postgresql的介绍、安装和使用

介绍 1.基本信息 PostgreSQL是一个功能强大的开源关系型数据库系统。经过长达15年以上的积极开发和不断改进&#xff0c;PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上&#xff0c;包括Linux、Unix和Windows…

html5cssjs代码 024 响应式布局示例

html5&css&js代码 024 响应式布局示例 一、代码二、解释 该HTML代码重点在于构建一个带有响应式设计的两栏布局网页&#xff0c;包含页头、导航条、主要内容区&#xff08;左右两列&#xff09;和底部区域&#xff0c;并运用CSS样式设置页面元素的布局、颜色、字体、间…

【Node.js从基础到高级运用】十五、单元测试与集成测试

引言 在Node.js开发过程中&#xff0c;测试是确保代码质量和功能正确性的关键步骤。单元测试和集成测试是最常见的测试类型。下面我们将使用Jest框架来进行测试。 单元测试 单元测试是指对软件中的最小可测试单元进行检查和验证。在Node.js中&#xff0c;这通常指的是函数或者…

安卓面试题多线程 86-90

86. 请列举ThreadPoolexecutor参数配置?corePoolSize- 池中所保存的线程数,包括空闲线程。 maximumPoolSize - 池中允许的最⼤线程数。 keepAliveTime当线程数⼤于核⼼时,此为终⽌前多余的空闲线程等待新任务的最长时间。 unit - keepAliveTime 参数的时间单位。 workQueue …

HarmonyOS开发:超详细介绍如何开源静态共享包,实现远程依赖

前言 当我们开发了一个独立的功能&#xff0c;想让他人进行使用&#xff0c;一般的方式就是开源出去&#xff0c;有源码的方式&#xff0c;也有文件包的形式&#xff0c;当然了也有远程依赖的方式&#xff0c;比如在Android中&#xff0c;我们可以提供源码&#xff0c;也可以打…

SQLiteC/C++接口详细介绍sqlite3_stmt类(一)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类简介 下一篇&#xff1a;SQLiteC/C接口详细介绍sqlite3_stmt类&#xff08;二&#xff09; ​ 序言&#xff1a; 本文开始了SQLite的第二个类的详细介绍…

Qt 容器类控件

Group Box 使用 QGroupBox 实现一个带有标题的分组框可以把其他的控件放到里面作为一组&#xff0c;这样看起来能更好看一点. 核心属性 属性说明title分组框的标题alignment分组框内部内容的对齐方式flat是否是 “扁平” 模式checkable是否可选择. 设为 true&#xff0c;则在…

2024年华为OD机试真题-石头剪刀布游戏-Java-OD统一考试(C卷)

题目描述: 石头剪刀布游戏有3种出拳形状:石头、剪刀、布。 分别用字母 A,B,C表示。 游戏规则: 1)出拳形状之间的胜负规则如下:A> B;B> C;C> A “>” 左边一个字母,表示相对优势形状。 右边一个字母,表示相对劣势形状。 2) 当本场次中有且仅有一种出拳形状…

鸿蒙Harmony应用开发—ArkTS-高级组件:@ohos.advertising.AdComponent (非全屏广告展示组件))

本模块提供展示非全屏广告的能力。 说明&#xff1a; 本模块首批接口从API Version 11开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import { AdComponent } from ohos.advertising.AdComponent; AdComponent AdComponent(ads: Ar…

webpack5零基础入门-12搭建开发服务器

1.目的 每次写完代码都需要手动输入指令才能编译代码&#xff0c;太麻烦了&#xff0c;我们希望一切自动化 2.安装相关包 npm install --save-dev webpack-dev-server 3.添加配置 在webpack.config.js中添加devServer相关配置 /**开发服务器 */devServer: {host: localhos…

C# 使用ffmpeg将图片保存为mp4视频

使用 FFmpeg 这个强大的多媒体处理工具&#xff0c;可以轻松地将一系列图片转换为一个 MP4 视频文件。以下是一个基本的命令行示例来完成这个任务&#xff1a; ffmpeg -framerate 25 -i image-%03d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4 命令参数说明&#xf…