变形金刚在图像识别方面比CNN更好吗?

news2024/11/26 0:51:12

链接到文 — https://arxiv.org/pdf/2010.11929.pdf

一、说明

        如今,在自然语言处理(NLP)任务中,转换器已成为goto架构(例如BERT,GPT-3等)。另一方面,变压器在计算机视觉任务中的使用仍然非常有限。大多数研究人员直接使用卷积层,或者将某些注意力块与卷积块一起添加到计算机视觉应用(如Xception,ResNet,EfficientNet,DenseNet,Inception等)中。关于视觉转换器(ViT)的论文在图像序列上实现了纯变压器模型,而无需卷积块来对图像进行分类。本文展示了ViT如何在各种图像识别数据集上获得比大多数最先进的CNN网络更好的结果,同时使用更少的计算资源。

二、视觉变压器 (ViT)

        转换器是对数据序列进行操作的网络,例如一组单词。这些单词集首先被标记化,然后输入到转换器中。转换器添加 Attention(二次运算 — 计算每对标记化单词之间的成对内积。随着字数的增加,操作数也会增加)。

        因此,图像更难在变形金刚上训练。图像由像素组成,每个图像可以包含数千到数百万个像素。因此,在转换器中,每个像素将与图像中的每个其他像素进行成对操作。在大小为 500*500 像素的图像中,即 500^2,因此注意力机制将花费 (500^2)^2 次操作。这是一项艰巨的任务,即使有多个 GPU。因此,对于图像,研究人员大多使用某种形式的局部注意力(像素聚类),而不是使用全局注意力。

        ViT的作者通过使用全局注意力来解决这个问题,但不是在整个图像上,而是在多个图像补丁上。因此,首先将大图像分成多个小块(例如 16*16 像素)。如图 1 所示。

图1.图像分为多个补丁(来源:原始论文中的图像)

        然后将这些映像修补程序展开为一系列映像,如图 2 所示。这些图像序列具有位置嵌入。

图2.图像补丁展开成一系列图像(来源:原始论文中的图像)

最初,变压器不知道哪个补丁应该去哪里。因此,位置嵌入有助于变压器了解每个补丁应该适合的位置。在论文中,作者使用了简单的编号1,2,3...n,以指定补丁的位置,如图 3 所示。这些不仅仅是数字,而是可学习的向量。也就是说,数字 1 不直接使用,而是存在一个查找表,其中包含表示补丁位置的每个数字的向量。因此,对于第一个补丁,从表中抓取第一个矢量并与补丁一起放入变压器中。同样,对于第二个补丁,从表中抓取第二个矢量并与第二个补丁一起放入变压器中,依此类推。如图 2 所示。

图3.带有位置嵌入的补丁(来源:图片来自原始论文)

图4.位置嵌入作为向量表示(来源:作者创建的图像)

映像修补程序是小映像(16*16 像素)。这在某种程度上需要以一种变压器理解它的方式馈送。一种方法是将图像展开为 16*16 = 256 维向量。然而,该论文的作者使用了线性投影。这意味着有一个矩阵,表示为“E”(嵌入)。获取单个补丁并首先解卷成线性向量。然后将该向量与嵌入矩阵 E 相乘。然后将最终结果与位置嵌入一起馈送到变压器。

然后将所有补丁(线性投影)及其单独的位置嵌入送入变压器编码器。该变压器是标准的变压器架构(您只需要注意 - 纸)。

还有一个额外的可学习嵌入,标记为位置零,如图 5 所示。此嵌入的输出用于最终对整个图像进行分类。

图5.整个ViT架构,带有额外的可学习嵌入 - 用红色标记,最左边的嵌入(来源:原始论文的图片)

三、结果

        表1显示了ViT与各种数据集上最先进的CNN架构的结果比较。ViT是在JFT-300数据集上进行预训练的。下面的结果表明,在所有数据集上,ViT的表现都优于基于ResNet的架构和EfficentNet-L2架构(在嘈杂的学生权重上预训练)。这两种模型都是当前最先进的CNN架构。在表1中,ViT-H指的是ViT-Huge(32层),ViT-L指的是ViT-Large(24层)。ViT-H/L 后面的数字 14 和 16 表示从每个图像创建的补丁大小(14*14 或 16*16)。

该表还显示,与其他 2 个 CNN 模型相比,ViT 需要的计算资源要少得多。

表 1.ViT结果与各种图像数据集上其他CNN架构的比较(来源:原始论文中的表格)

图6显示了变压器在对各种图像进行分类时给予的注意。

图6:从输出标记到输入空间的注意力机制(来源:原始论文图片)

四、结论

4.1 视觉变压器是否会在计算机视觉任务中取代CNN?

        到目前为止,CNN已经在计算机视觉任务中占据主导地位。图像基于这样的想法,即一个像素依赖于其相邻像素,下一个像素依赖于其相邻像素(颜色、亮度、对比度等)。CNN对这个想法的研究,并在图像的补丁上使用过滤器来提取重要的特征和边缘。这有助于模型仅从图像中学习必要的重要特征,而不是图像每个像素的细节。

        但是,如果将整个图像数据馈送到模型中,而不仅仅是过滤器可以提取的部分(或它认为重要的部分),则模型表现更好的机会更高。这正是视觉转换器内部正在发生的事情。这可能是在这种情况下,视觉变压器比大多数CNN型号工作得更好的原因之一。

4.2 但这是否意味着变压器将来将在计算机视觉任务中取代CNN?

        好吧,答案是,不会那么快。就在几天前,EfficientNet V2型号发布,其性能甚至比Vision Transformers更好。这只是意味着,现在我们可以期待来自两种类型(CNN和变形金刚)的新架构将在不久的将来推出更新,更好,更高效的模型。

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

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

相关文章

关于技术转管理角色的认知

软件质量保障:所寫即所思|一个阿里质量人对测试的所感所悟。 程序员发展的岔路口 技术人做了几年专业工作之后,会来到一个重要的“分岔路口”,一边是专业的技术路线,一边是技术团队的管理路线。不少人就开始犯难&…

sqlsessionfactory和sqlsession是否线程安全?

判断是否线程安全的规则:是否存在多线程间可共享的变量 sqlsessionfactory是线程安全的,默认的实现类只有一个final属性。 sqlsession单独来看是线程不安全的,但是我们用mybatis时,mapper接口的使用是基于动态代理,这…

计算机竞赛 GRU的 电影评论情感分析 - python 深度学习 情感分类

1 前言 🔥学长分享优质竞赛项目,今天要分享的是 🚩 GRU的 电影评论情感分析 - python 深度学习 情感分类 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 这…

python爬虫5:requests库-案例3

python爬虫5:requests库-案例3 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网…

uniapp 小兔鲜儿 - 首页模块(1)

目录 自定义导航栏 静态结构 安全区域​ 通用轮播组件 静态结构 自动导入全局组件 全局组件类型声明 .d.ts文件 注册组件 vue/runtime-core 首页 – 轮播图指示点 首页 – 获取轮播图数据 首页 – 轮播图数据类型并渲染 首页 – 轮播图总结 首页分类 首页 – 前…

计算机竞赛 opencv python 深度学习垃圾图像分类系统

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 opencv python 深度学习垃圾分类系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 这是一个较为新颖的竞…

VR安全宣传系列:防触电虚拟现实体验

在电气工作中,安全问题始终是重中之重。为了更好地提高公众的电气安全意识和技能,广州华锐互动开发了一种基于虚拟现实技术的模拟系统——VR防触电虚拟体验系统。这种系统可以模拟各种因操作不当导致的触电事故场景,并提供沉浸式的体验&#…

浅谈机器人流程自动化(RPA)

1.什么是RPA RPA代表机器人流程自动化(Robotic Process Automation),是一种利用软件机器人或机器人工作流程来执行重复性、规范性和高度可预测性的业务流程的技术。这些流程通常涉及许多繁琐的、重复的任务,例如数据输入、数据处…

Amazon CloudFront 部署小指南(五)- 使用 Amazon 边缘技术优化游戏内资源更新发布...

内容简介 游戏内资源包括玩家的装备/弹药/材料等素材,对游戏内资源的发布和更新是游戏运营商的一个常规业务流程,使用频率会十分高,所以游戏运营商希望该流程可以做到简化和可控。针对这个需求,我们设计了 3 个架构,面…

电商3D产品渲染简明教程

3D 渲染让动作电影看起来更酷,让建筑设计变得栩栩如生,现在还可以帮助营销人员推广他们的产品。 从最新的《阿凡达》电影到 Spotify 的上一次营销活动,3D 的应用让一切变得更加美好。 在营销领域,3D 产品渲染可帮助品牌创建产品的…

玩机搞机--【开机出现您的设备内部出现了问题,请联系你的制造商了解详情】故障解决思路

很多友友在玩机过程中经常会遇到下图所示故障。大多数都是刷了第三方系统或者内核或者面具导致的。正常来说。这个提示可以无视的,不影响正常的手机使用。但强迫症例外。究其原因。一般是内核校验原因。解决方法也分为多种。今天就为大家解析下这个提示的解决思路 &…

如何微调优化你的ChatGPT提示来提高对话质量

ChatGPT会话质量很大程度上取决于微调优化提示的艺术。本文旨在阐明微调提示的复杂性,以确保你可以充分发挥ChaGPT这一颠覆性工具的潜力。 与ChatGPT对话的关键部分是“提示”。即:你输入的问题或陈述,它决定了人工智能的响应。类似于引导对…

分类预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据分类预测

分类预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据分类预测 目录 分类预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据分类预测效果一览基本介绍研究内容程序设计参考资料 效果一览 基本介绍 Matlab实现基于…

详解Redis三大集群模式,轻松实现高可用!

1. Redis集群简介 1.1 什么是Redis集群 Redis集群是一种通过将多个Redis节点连接在一起以实现高可用性、数据分片和负载均衡的技术。它允许Redis在不同节点上同时提供服务,提高整体性能和可靠性。根据搭建的方式和集群的特性,Redis集群主要有三种模式&…

消息队列相关面试题

巩固基础,砥砺前行 。 只有不断重复,才能做到超越自己。 能坚持把简单的事情做到极致,也是不容易的。 消息队列有哪些作用 1.解耦:使用消息队列来作为两个系统直接的通讯方式,两个系统不需要相互依赖了 2.异步&#…

leetcode169. 多数元素

题目 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 示例 1: 输入:nums [3,2,3] 输出&#x…

SpringCloud实用篇6——elasticsearch搜索功能

目录 1 DSL查询文档1.1 DSL查询分类1.2 全文检索查询1.2.1 使用场景1.2.2 基本语法1.2.3 示例1.2.4 总结 1.3 精准查询1.3.1 term查询1.3.2 range查询1.3.3 总结 1.4.地理坐标查询1.4.1 矩形范围查询1.4.2 附近查询 1.5 复合查询1.5.1 相关性算分1.5.2 算分函数查询1&#xff0…

PolarDB-X 针对跑批场景的思考和实践

背景 金融行业和运营商系统,业务除了在线联机查询外,同时有离线跑批处理,跑批场景比较注重吞吐量,同时基于数据库场景有一定的使用惯性,比如直连MySQL分库分表的存储节点做本地化跑批、以及基于Oracle/DB2等数据库做E…

基于comsol进行共振薄膜声学超材料的模态分析

研究背景: 从声学超材料出现到薄膜型和薄板型声学超材料局域共振隔声机理的广泛研究,其负等效质量和负等效密度特性打破了传统吸隔声材料质量定律的限制,为低频吸隔声提供了新途径。由吸声系数理论模型可知,薄膜型结构的吸声性能…

JavaScript之BOM+window对象+定时器+location,navigator,history对象

一.BOM概述 BOM即浏览器对象模型,它提供了独立于内容而与窗口进行交互的对象 BOM的顶级对象是window 二.window对象的常见事件 1.窗口加载事件window.onload window.onload function(){} 或者 window.addEventListener("onload" , function(){}); window.onlo…