当前位置: 首页 > news >正文

VIT论文阅读与理解

transform网络结构

在这里插入图片描述

vision transform网络结构

在这里插入图片描述
图1:模型概述。我们将图像分割成固定大小的补丁,线性嵌入每个补丁,添加位置嵌入,并将结果向量序列馈送到标准Transformer编码器。为了执行分类,我们使用标准方法向序列中添加一个额外的可学习的“分类令牌”。
在这里插入图片描述

补丁生成与嵌入向量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这段代码的功能是从一个图像张量中提取固定大小的 patch,并将这些 patch 转换为特定的排列形式。下面逐步说明这段代码的操作:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

vision transform实验

我们评估了ResNet、Vision Transformer (ViT)和hybrid的表示学习能力。为了了解每个模型的数据需求,我们在不同大小的数据集上进行预训练,并评估许多基准任务。当考虑到预训练模型的计算成本时,ViT表现非常好,以较低的预训练成本在大多数识别基准上达到最先进的水平。最后,我们使用自我监督进行了一个小实验,并表明自我监督的ViT在未来是有希望的。

设置

数据集。

为了探索模型的可扩展性,我们使用了具有1k个类和1.3M张图像的ILSVRC-2012 ImageNet数据集(我们在下文中将其称为ImageNet),具有21k个类和14M张图像(Deng等人,2009)的超集ImageNet-21k,以及具有18k个类和303M张高分辨率图像的JFT(Sun等人,2017)。我们根据Kolesnikov等人(2020)的研究,将预训练数据集与下游任务的测试集进行去重。我们将在这些数据集上训练的模型转移到几个基准任务中:原始验证标签和清理后的ReaL标签上的ImageNet(Beyer等人,2020)、CIFAR-10/100(Krizhevsky,2009)、Oxford IIIT Pets(Parkhi等人,2012)和Oxford Flowers-102(Nilsback&Zisserman,2008)。对于这些数据集,预处理遵循Kolesnikov等人(2020)的研究。

我们还对19个任务的VTAB分类套件进行了评估(Zhai等人,2019b)。VTAB使用每个任务1000个训练示例来评估向不同任务的低数据传输。任务分为三组:自然任务、宠物任务、CIFAR任务等。专业——医学和卫星图像,以及结构化——需要几何理解的任务,如定位。

模型变体

我们将ViT配置基于用于BERT的配置(Devlin等人,2019),如表1所示。“Base”和“Large”模型直接采用BERT,我们添加了更大的“Huge”模型。在下文中,我们使用简短的符号来表示模型大小和输入补丁大小:例如,ViT-L/16表示输入补丁大小为16×16的“大”变体。请注意,Transformer的序列长度与补丁大小的平方成反比,因此补丁大小较小的模型在计算上更昂贵

在这里插入图片描述
对于基线CNN,我们使用ResNet(He等人,2016),但用组归一化(Wu&He,2018)替换批归一化层(Ioffe&Szegedy,2015),并使用标准化卷积(Qiao等人,2019)。这些修改改善了传输(Kolesnikov等人,2020),我们将修改后的模型称为“ResNet(BiT)”。对于混合体,我们将中间特征图输入ViT,补丁大小为一个“像素”。为了尝试不同的序列长度,我们要么(i)取常规ResNet50的第4阶段的输出,要么(ii)删除第4阶段,在第3阶段放置相同数量的层(保持总层数),然后取这个扩展的第3阶段的输出。选项(ii)导致序列长度增加4倍,ViT模型更昂贵

训练和微调。我们使用Adam(Kingma&Ba,2015)训练所有模型,包括ResNets,其中β1=0:9,β2=0:999,批量大小为4096,并应用0.1的高权重衰减,我们发现这对所有模型的转移都很有用(附录D.1显示,与常见做法相比,Adam在我们的环境中对ResNets的效果略好于SGD)。我们使用线性学习率预热和衰减,详见附录B.1。为了进行微调,我们使用动量SGD,批量大小为512,适用于所有型号,请参阅附录B.1.1。对于表2中的ImageNet结果,我们以更高的分辨率进行了微调:ViT-L/16为512,ViT-H/14为518,还使用了Polyak和Juditsky(1992)的平均值,系数为0:9999(Ramachandran等人,2019;Wang等人,2020b)。

在这里插入图片描述

在这里插入图片描述

微调准确率(Fine-tuning accuracy): 微调指的是在已经训练好的模型基础上,进一步在目标数据集上训练,以调整模型参数。这种方法通常需要较长的训练时间,但它能通过调整模型参数适应特定任务,从而提升准确性。

少量示例学习准确率(Few-shot accuracy): 在少量示例学习中,模型通常只用少数样本(少量数据)来进行学习,而不进行完全的微调。在这里,作者采用的是一种正则化的最小二乘回归问题来优化模型表现。这种方法通过冻结模型的特征表示,仅通过少量数据来找到与目标向量的映射关系,通常计算效率较高。

目的:
微调:通常提供更好的准确性,但代价较高,需要更多的计算资源和时间。
少量示例学习:用来快速评估模型的表现,特别是在微调过于昂贵或耗时的情况下。通过线性回归的方式,可以在较短时间内获得一个近似的结果。

与最新技术的比较

我们首先将我们最大的型号ViT-H/14和ViT-L/16与文献中最先进的CNN进行比较。第一个比较点是大迁移(BiT)(Kolesnikov等人,2020),它使用大ResNets进行监督迁移学习。第二个是Noisy Student(Xie等人,2020),它是一个大型的EfficientNet,在ImageNet和JFT300M上使用半监督学习进行训练,并去除标签。目前,Noisy Student是ImageNet和BiT-L上其他数据集的最新技术。所有模型都是在TPUv3硬件上训练的,我们报告了预训练每个模型所需的TPUv3核心天数,即用于训练的TPU v3核心数量(每个芯片2个)乘以训练时间(以天为单位)

表2显示了结果。在JFT-300M上预训练的较小ViT-L/16模型在所有任务上都优于BiT-L(在同一数据集上预训练),同时训练所需的计算资源要少得多。更大的型号ViT-H/14进一步提高了性能,特别是在更具挑战性的数据集上——ImageNet、CIFAR-100和VTAB套件。有趣的是,该模型的预训练计算量仍然比现有技术少得多。然而,我们注意到,预训练效率不仅可能受到架构选择的影响,还可能受到其他参数的影响,如训练计划、优化器、权重衰减等。我们在第4.4节中提供了不同架构的性能与计算的对照研究。最后,在公共ImageNet-21k数据集上预训练的ViT-L/16模型在大多数数据集上也表现良好,同时预训练所需的资源更少:它可以在大约30天内使用具有8个核心的标准云TPUv3进行训练。
在这里插入图片描述

检查视觉变换器(Vision Transformer)

为了理解视觉变换器如何处理图像数据,我们分析其内部表示。视觉变换器的第一层将展平的图像块投影到一个低维空间(公式1)。图7(左)展示了学习到的嵌入滤波器的主要成分,这些成分类似于图像块中细致结构的低维表示的合理基函数。

在这里插入图片描述
ViT-L/32 RGB值的初始线性嵌入滤波器。

在投影之后,学习到的位置嵌入被添加到图像块表示中。图7(中)显示了模型学习如何根据位置嵌入之间的相似性来编码图像内的距离。即,较近的块通常会有相似的位置嵌入。进一步地,行列结构出现:同一行/列中的块具有相似的嵌入。最后,对于较大的网格,正弦结构有时会显现(附录D)。位置嵌入学习表示2D图像拓扑,解释了为何手工设计的2D感知嵌入变体未能带来改进(附录D.4)。
在这里插入图片描述
自注意力使得ViT能够在最低层集成整个图像的信息。我们研究了网络在多大程度上利用了这一能力。具体来说,我们计算了信息在图像空间中的平均距离(图7,右)。这一“注意力距离”类似于CNN中的感受野大小。我们发现,一些注意力头会关注已经图像的绝大部分,表明模型确实具备整合全局信息的能力。其他注意力头则集中于低层中的信息,这种高度局部化的注意力在应用ResNet混合模型之前的Transformer中更为明显(图7,右),这表明它可能在早期卷积层中具有类似的功能。进一步地,模型在图像区域的关注表现出与图像分类相关的区域(图6)

局部与全局信息的整合: 不同的注意力头会分别处理图像的局部细节和全局信息,部分头部关注整个图像,其他头部则集中在更小的区域上。这表明ViT模型能够有效地在图像的不同区域内进行信息整合
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

VIT论文阅读与理解

transform网络结构 vision transform网络结构 图1:模型概述。我们将图像分割成固定大小的补丁,线性嵌入每个补丁,添加位置嵌入,并将结果向量序列馈送到标准Transformer编码器。为了执行分类,我们使用标准方法向序列中添…...

JavaScript笔记APIs篇01——DOM获取与属性操作

黑马程序员视频地址:黑马程序员前端JavaScript入门到精通全套视频教程https://www.bilibili.com/video/BV1Y84y1L7Nn?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p78https://www.bilibili.com/video/BV1Y84y1L7Nn?…...

SQL表间关联查询详解

简介 本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(left join)、右连接(right join)、全连接(full join)、内连接(inner join)、交叉连接&…...

select函数

系统调用 select()可用于执行 I/O 多路复用操作&#xff0c;调用 select()会一直阻塞&#xff0c;直到某一个或多个文件描述符成为就绪态&#xff08;可以读或写&#xff09;。其函数原型如下所示&#xff1a; #include <sys/select.h> int select(int nfds, fd_set *re…...

建造者模式(或者称为生成器(构建器)模式)

一、什么是建造者模式&#xff1f; 将复杂对象的构建与表示进行分离&#xff0c;使得统一的构建过程&#xff0c;可以创建出不同的对象表现模式 就是将复杂对象里面的成员变量&#xff0c;设置不同的值&#xff0c;使得生成出来的对象拥有不同的属性值&#xff1b; 二、特点…...

【深度学习】Huber Loss详解

文章目录 1. Huber Loss 原理详解2. Pytorch 代码详解3.与 MSELoss、MAELoss 区别及各自优缺点3.1 MSELoss 均方误差损失3.2 MAELoss 平均绝对误差损失3.3 Huber Loss 4. 总结4.1 优化平滑4.2 梯度较好4.3 为什么说 MSE 是平滑的 1. Huber Loss 原理详解 Huber Loss 是一种结合…...

A5.Springboot-LLama3.2服务自动化构建(二)——Jenkins流水线构建配置初始化设置

下面我们接着上一篇文章《A4.Springboot-LLama3.2服务自动化构建(一)——构建docker镜像配置》继续往下分析,在自动化流水线构建过程当中的相关初始化设置和脚本编写。 一、首先需要先安装Jenkins 主部分请参考我前面写的一篇文章《Jenkins持续集成与交付安装配置》 二、…...

李宏毅机器学习HW1: COVID-19 Cases Prediction

Kaggle数据集和提交链接 特征选择&#xff08;主要修改地方&#xff09; 在sample code的基础上主要修改了Select_feat选择特征函数。 首先&#xff0c;因为数据集中的第一列是id&#xff0c;先在raw_x_train&#xff0c;raw_x_valid&#xff0c;raw_x_test中都去掉这一列。其…...

MySQL下载安装DataGrip可视化工具

目录 WinMySQL下载安装步骤MySQL配置添加环境变量 Mac下载安装配置环境变量 DataGrip可视化工具以Win为例了。Mac忘记截图了。步骤都一样 Win MySQL下载 官网&#xff1a; https://www.mysql.com/ 直接进下载界面&#xff1a; https://downloads.mysql.com/archives/installe…...

多平台下Informatica在医疗数据抽取中的应用

一、引言 1.医疗数据抽取与 Informatica 概述 1.1 医疗数据的特点与来源 1.1.1 数据特点 医疗数据具有显著的多样性特点。从数据类型来看&#xff0c;涵盖了结构化数据&#xff0c;如患者的基本信息、检验检查结果等&#xff0c;这些数据通常以表格形式存储&#xff0c;便于…...

用公网服务器实现内网穿透

首先需要一个公网服务器 下载frp 搜索github下载到frp&#xff0c;服务端frps/客户端frpc。。下载的时候要注意自己本地内网机的cpu版本和服务端cpu架构 我的电脑是mac M1PRO版本 下载的是&#xff1a;darwinarm64 比如 服务端一般是Linux&#xff08;Intel 64位CPU&#xf…...

为什么mysql更改表结构时,varchar超过255会锁表

在 MySQL 中&#xff0c;当修改表结构并将 VARCHAR 字段的长度设置为超过 255 时&#xff0c;可能会出现锁表的情况。这与 MySQL 的存储引擎&#xff08;主要是 InnoDB&#xff09;以及表的底层存储方式相关。 原因分析 行格式变化 InnoDB 存储引擎支持多种行格式&#xff08;…...

ASP.NET Core中 JWT 实现无感刷新Token

在 Web 应用开发中&#xff0c;用户登录状态的管理至关重要。为了避免用户频繁遇到登录过期的问题&#xff0c;我们可以通过实现 JWT&#xff08;JSON Web Token&#xff09;刷新机制来提升用户体验 推荐: 使用 Refresh Token&#xff08;双 Token 机制&#xff09; 1. 生成和…...

函数(函数的概念、库函数、自定义函数、形参和实参、return语句、数组做函数参数、嵌套调用和链式访问、函数的声明和定义、static和extern)

一、函数的概念 •C语⾔中的函数&#xff1a;⼀个完成某项特定的任务的⼀⼩段代码 •函数又被翻译为子函数&#xff08;更准确&#xff09; •在C语⾔中我们⼀般会⻅到两类函数&#xff1a;库函数 ⾃定义函数 二、库函数 1 .标准库和头文件 •C语⾔的国际标准ANSIC规定了⼀…...

物联网在烟草行业的应用

物联网技术在烟草行业的应用 物联网技术在烟草行业的应用主要体现在以下几个方面&#xff1a; 智能制造 &#xff1a;物联网技术可以实现对生产过程中的关键参数进行实时监测&#xff0c;确保产品的质量稳定可靠。同时&#xff0c;通过对设备的远程维护和故障诊断&#xff0c;…...

第6章:Python TDD实例变量私有化探索

写在前面 这本书是我们老板推荐过的&#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后&#xff0c;我突然思考&#xff0c;对于测试开发工程师来说&#xff0c;什么才更有价值呢&#xff1f;如何让 AI 工具更好地辅助自己写代码&#xff0c;或许…...

Java操作Excel导入导出——POI、Hutool、EasyExcel

目录 一、POI导入导出 1.数据库导出为Excel文件 2.将Excel文件导入到数据库中 二、Hutool导入导出 1.数据库导出为Excel文件——属性名是列名 2.数据库导出为Excel文件——列名起别名 3.从Excel文件导入数据到数据库——属性名是列名 4.从Excel文件导入数据到数据库…...

BUUCTF_Web([GYCTF2020]Ezsqli)

1.输入1 &#xff0c;正常回显。 2.输入1 &#xff0c;报错false&#xff0c;为字符型注入&#xff0c;单引号闭合。 原因&#xff1a; https://mp.csdn.net/mp_blog/creation/editor/145170456 3.尝试查询字段&#xff0c;回显位置&#xff0c;数据库&#xff0c;都是这个。…...

微软宣布Win11 24H2进入新阶段!设备将自动下载更新

快科技1月19日消息&#xff0c;微软于1月16日更新了支持文档&#xff0c;宣布Windows 11 24H2进入新阶段。 24H2更新于2024年10月1日发布&#xff0c;此前为可选升级&#xff0c;如今微软开始在兼容的Windows 11设备上自动下载并安装24H2版本。 微软表示&#xff1a;“运行Wi…...

SpringBoot:解决前后端请求跨域问题(详细教程)

文章目录 一、前言二、解决方式 2.1 使用 CrossOrigin 注解&#xff08;简单方便&#xff0c;适用于单个或少量接口&#xff09;2.2 全局配置跨域&#xff08;适用于整个项目中大量接口都需要跨域的情况&#xff09;2.3 使用过滤器来处理跨域&#xff08;更底层的实现方式&…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用&#xff0c;前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率&#xff0c;还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库&#xff08;Naive UI、Element …...