【计算机视觉 | ViT-G】谷歌大脑提出 ViT-G:缩放视觉 Transformer,高达 90.45% 准确率

news2024/10/6 6:48:02

文章目录

  • 一、简介
  • 二、如何做到的?
  • 三、扩展数据
  • 四、「head」 的解耦权重衰减
  • 五、通过移除 [class] token 节省内存
  • 六、实验结果
    • 6.1 将计算、模型和数据一起扩展
    • 6.2 ViT-G/14 结果

论文地址为:

https://arxiv.org/pdf/2106.04560.pdf

在这里插入图片描述

一、简介

视觉 Transformer(ViT) 等基于注意力的神经网络最近在许多计算机视觉基准测试中取得了最先进的结果。比例是获得出色结果的主要因素,因此,了解模型的 scaling 属性是有效设计的关键。

虽然已经研究了扩展 Transformer 语言模型的规律,但尚不清楚 Vision Transformers 如何扩展。

为了解决这个问题,作者向上和向下扩展 ViT 模型和数据,并描述错误率、数据和计算之间的关系。

在此过程中,作者改进了 ViT 的架构和训练,减少了内存消耗并提高了结果模型的准确性。

结果,作者成功地训练了一个具有 20 亿个参数的 ViT 模型,该模型在 ImageNet 上达到了 90.45% 的 Top-1 准确率。该模型在小样本学习上也表现良好,例如,在 ImageNet 上每类只有 10 个 examples 的情况下可以达到 84.86% 的 Top-1 准确率。

在这个过程中,研究者创建了一个改进的大规模训练方案,探索了训练超参数以及发现微妙的选择,大幅改善小样本迁移性能。具体来说,研究者发现非常强的 L 2 L_2 L2 正则化,仅应用于最终的线性预测层,导致学习到的视觉表征具有很强的小样本学习能力。

例如,在 ImageNet 数据集(有 1000 个类)上,每个类只有一个示例,该研究的最佳模型达到 69.52% 的准确率;如果每个类有 10 个示例,准确率达到了 84.86%。此外,该研究大大减少了提出的原始 ViT 模型的内存占用,通过特定于硬件的体系架构更改和不同的优化器来实现这一点。

结果表明,该研究训练了一个具有 20 亿个参数的模型,在 ImageNet 数据集上达到了新的 SOTA 性能 90.45% 的准确率。可以看到,在 SOTA 基准排行榜上,ViT-G/14 模型的 Top-1 准确率已经超越了谷歌之前提出的 Meta Pseduo Labels 模型。

在这里插入图片描述

二、如何做到的?

研究者展示了对 ViT 模型及训练的改进,这些改进大多数易于实现,并显著提升了内存使用率和模型质量。如此一来,研究者可以单独使用数据并行化训练 ViT-G/14 模型,并在单个 TPUv3 上实现整个模型拟合。

三、扩展数据

该研究使用专有的 JFT-3B 数据集,它是 JFT-300M 数据集的更大规模版本,在之前的许多大型计算机视觉模型工作中使用过 [31, 18, 11]。该数据集由近 30 亿张图像组成,标注为包含 30K 类别的层级类别,并且由于采用半自动标注,所以标注是有噪音的。所有的测试数据也均从 JFT-3B 中移除。

下图展示了数据集从 JFT-300MJFT-3B 过程中对模型性能的影响。可以观察到,更大规模的 JFT-3B 数据集可以得到更好的模型,所以 JFT-300M 数据集的过拟合并不是实现性能提升的唯一原因。

在这里插入图片描述

四、「head」 的解耦权重衰减

权重衰减对低数据情况下的模型自适应具有重大影响。

研究者在中等规模程度上研究了这一现象,并发现可以从模型中最终线性层(「head」)和剩余权重(「body」)的权重衰减强度解耦中获益。

下图展示了这一效果。研究者在 JFT-300M 上训练了一个 ViT-B/32 模型,每个单元格对应不同 head/body 权重衰减值的性能。

他们观察到的有趣的一点是:尽管提升了迁移性能,但 head 中高权重衰减却降低了预训练(上游)任务的性能。

在这里插入图片描述

五、通过移除 [class] token 节省内存

对于 ViT 模型,当前的 TPU 硬件将 token 维数填充为 128 的倍数,这可能导致高度 50% 的内存开销。

为了解决这一问题,研究者尝试探索「使用额外 [class] token」的替代方法。

具体地,他们对全局平均池化( GAP)和多头注意力池化(MAP)进行评估以聚合来自所有 patch token 的表示,并将 MAPhead 的数量与模型其他部分中注意力 head 的数量设为相同。

为了进一步简化 head 设计,研究者原始 ViT 论文中出现的、最终预测层之前的最终非线性映射。

为了选择最佳 head,研究者对 [class] tokenGAP / MAP head 进行了并排比较,结果如上图(右)所示。他们发现,所有 head 的表现类似,同时 GAPMAP 由于进行了填充(padding)考虑,因而具备更高的内存效率。

此外,非线性映射还可以安全地进行移除。因此,研究者选择了 MAP head,这是因为其表现力最强,并且能够生成最统一的架构。

六、实验结果

在接下来的实验中,研究者在多达 30 亿个弱标记图像上训练了几个 ViT 模型。

研究者改变架构大小、训练图像的数量和训练持续时间。所有模型都在 TPUv3 上训练,因此总计算量是以 TPUv3 核每天(core-days)数来衡量的。

为了评估由模型学习的表征的质量,研究者进行了一下测量:

(i)通过在固定权值上训练线性分类器来进行小样本迁移;

(ii)通过对所有数据的整个模型进行微调,将其传递给多个基准测试任务。

6.1 将计算、模型和数据一起扩展

下图显示了在 ImageNet 上的 10-shot 线性评估和微调评估,并进行了高层级的观测。

首先,将计算、模型和数据一起扩展可以提高表征质量。

第二,模型尺寸会影响表征质量。

第三,大型模型受益于额外的数据,甚至超过 1B 图像。

在这里插入图片描述

下图显示了在预训练期间「可见」的图像总数(批大小乘以 step 数)的表征质量。

除了在公共验证集上进行 ImageNet 微调和线性 10-shot 结果外,研究者还报告了在 ImageNet-v2 测试集上的 ImageNet 微调模型的结果,作为鲁棒泛化的指标。

下图中展示了对 30 亿张图像进行预训练的三个 ViT 模型。

在这里插入图片描述
实验可得,有足够的数据,以较少的步骤训练一个更大的模型是可取的。

6.2 ViT-G/14 结果

该研究训练了一个大型的视觉 TransformerViT-G/14,它包含近 20 亿个参数。

实验评估了 ViT-G/14 模型在一系列下游任务中的应用,并将其与 SOTA 结果进行了比较。研究者在 ImaegNet 上进行微调,并报告 ImageNetImageNet-v2ReaLObjectNet 的准确率。此外,该研究还报告了在 VTAB-1k 基准上的迁移学习效果,该基准包括 19 个不同的任务。

显示了在 ImageNet 上进行小样本学习(few-shot learning)结果。由结果可得,ViT-G/14 比以前最好的 ViT-H/14 模型表现优异(超过 5%),达到 84.86% 的准确率,每类 10 个例子。

在这里插入图片描述
下表展示了其他基准上的结果。

ViT-G/14ImageNet 数据集上实现了 90.45% 的 Top-1 准确率,成为新的 SOTA

此外,在 ImageNet-v2 上,ViT-G/14 比基于 EfficientNet-L2Noisy Student 模型提升了 3%。

ReaL 数据集上,ViT-G/14 略微优于 ViT-HBiT-L,再次表明 ImageNet 分类任务性能可能达到了饱和点。

ObjectNet 数据集上,ViT-G/14 大幅度优于 BiT-L,较 Noisy Student 模型提升 2%,比 CLIP 落后约 2%。

在这里插入图片描述

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

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

相关文章

PoseiSwap合规、隐私与支持更广泛的资产

Nautilus Chain 代表了公链赛道发展的一个新的范式形态,作为目前行业内首个 Layer3 链,是目前行业内第一个并行化且运行速度最快的EVM Rollup 方案。作为首个模块化链,存储、计算、共识等都在不同的模块中,意味着其能够获得更高的…

如何建立DDR3测试工程

要建立DDR3的测试工程,首先要生成mig IP核,然后写测试模块使用这个IP核进行测试。 一、生成 mig IP核 建立一个新工程,然后生成 mig IP核。 关键步骤如下: (1)点击 IP catalog,在搜索框输入…

SSM框架学习-AOP通知类型

在AOP中,通知(Advice)是对切点进行操作的方法,用于实现切面定义的具体逻辑。Spring框架支持五种类型的通知: 1. 前置通知(Before advice) 在连接点执行前,执行通知 Before("**…

【跟着陈七一起学C语言】今天总结:C语言的结构体和其它数据形式

友情链接:专栏地址 知识总结顺序参考C Primer Plus(第六版)和谭浩强老师的C程序设计(第五版)等,内容以书中为标准,同时参考其它各类书籍以及优质文章,以至减少知识点上的错误&#x…

OpenGL高级-立方体贴图

运行效果 源代码 着色器 渲染物体的顶点着色器: #version 330 core // 传入局部坐标下的顶点坐标 layout( location 0 ) in vec3 position; layout (location 1) in vec2 texCoords;// 传入变换矩阵 uniform mat4 model; uniform mat4 view; uniform mat4 proje…

d2l的一些理论知识的整理【1】

目录 考试知识整理引言2 预备知识2.1. 数据操作2.2. 数据预处理2.3. 线性代数2.4. 微积分2.5. 自动微分2.6. 概率2.7. 查阅文档 3 线性神经网络3.1. 线性回归3.2. 线性回归的从零开始实现3.3. 线性回归的简洁实现3.4. softmax回归3.5. 图像分类数据集3.6. softmax回归的从零开始…

AT24C16页写和多页写

AT24C16 2K字节(存储内存) 128(页面数)* 16 (每页的字节数) 2^11 (寻址地址位数 11位)。 AT24C16有128(2^7128)页只需要7位地址,分为高3位和低4位,高3位在设备地址中,低4位在字地址中。 设备…

Flutter GetX Tag 属性使用详解

Flutter GetX Tag 属性使用详解 了解 Flutter GetX Tag 属性的定义、用途、实现方式和常见问题。 前言 Flutter中,GetX是一款非常流行的状态管理库。它不仅提供了状态管理的功能,还有路由、依赖注入和许多其他功能。在这篇文章中,我将介绍如…

Node.js简易教程

目录 介绍 fs模块 演示 writeFile 异步写入 appendFile/appendFileSync 追加写入 createWriteStream流式写入 readFile异步读取文件/readFileSync同步读取文件 createReadStream流式读取 文件移动与重命名 文件删除 http模块 创建服务 url 格式化 获取静态文件服务 node模…

“卷爆了“的IT互联网行业,为啥至今还有人头铁往里冲?

细数互联网过往的发展史,造就了成千上万的企业家、创业者,众多职场人趋之若鹜地选择互联网行业,想从这个领域捞一桶金。 但不知道从什么时候开始,一篇篇关于互联网红利消失,流量枯竭的文章接踵而至,现在转…

没关系,前端还死不了

前言 网络上的任何事情都可以在《乌合之众》书中找到答案。大众言论没有理性,全是极端,要么封神,要么踩死。不少人喷前端,说前端已死?前端内卷?前端一个月800包吃住? 对此我想说,“…

【python】批量采集次元岛cos美图,只是为了学习~

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 这里写目录标题 前言开发环境:模块使用:代码展示美图欣赏尾语 💝 开发环境: Python 3.8 Pycharm 模块使用: 第三方模块 需要安装 在cmd里面 进行 pip install requests requests >>> 数据请求模块 …

ACWING 高精度-加减乘除 791 - 794

读取字符串的高精度数字,然后用int数组存上,通过最基础的每位加减乘除和进位等操作完成。 下方给出了所有的操作函数,注意函数的所有输入均为vector 的数组,并且数组存储是从数的低位开始存1000 [0,0,0,1],和正常存储…

Linux -- 进阶 Web服务器 虚拟主机 -- 基于端口号

虚拟主机 一个Web 服务器,如果只能运行一个网站的话,那么对于一些经费不是很足的小公司来说, 那就有些奢侈了,资源没有办法完全利用上 ( 无论是 内存,CPU,硬盘,带宽等等 &#xff09…

EIScopus检索 | 2023年智能交通与未来出行国际会议(CSTFM 2023)

会议简介 Brief Introduction 2023年智能交通与未来出行国际会议(CSTFM 2023) 会议时间:2023年7月28日-30日 召开地点:中国长沙 大会官网: CSTFM 2023-2023 International Conference on Smart Transportation and Future Mobility(CSTFM 202…

OpenCL编程指南-3.3矢量数据类型

矢量数据类型 OpenCL C还增加了对矢量数据类型的支持。矢量数据类型如下定义,首先是类型名,具体包括char、uchar、short、ushort、int、uint、float、long或ulong,后面是一个字面值n来定义矢量中的元素个数。对于所有矢量数据类型&#xff0…

母亲节快到了,祝所有母亲节日快乐!Happy Mother‘s Day

《游子吟》唐孟郊 慈母手中线,游子身上衣。 临行密密缝,意恐迟迟归。 谁言寸草心,报得三春晖。 My kind mother has a needle and thread in her hand,Making new clothes for her son who is to travel far away. She is busy sewing c…

FE_Vue学习笔记 Vue监视数据的原理

1 通过更新时的一个问题-this.personList[0] { 更新值 } 不起作用 引入 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script type"text/javascript" src"…

每日一博 - 闲聊“突发流量”的应对之道

文章目录 概述思路 概述 面对“突发流量”的情况,我会采取以下应急措施: 扩容现有资源。这是最直接和最常用的方法。可以通过增加CPU、内存、节点等来扩容。典型案例是双11等大促期间,阿里会大规模扩容幕布等系统以应对流量激增。横向扩展,增加更多服务器或节点。通过增加服务…

lambda处理异常四种方式

最近对接第三方呼叫系统&#xff0c;第三方SDK的所有方法里都有异常抛出&#xff0c;因为用到了lambda&#xff0c;所以异常处理还是很必要的。 本文主要用到了四种解决方案&#xff1a; 直接代码块处理自定义函数式接口&#xff0c;warp静态方法通过Either 类型包装通过Pair 类…