Exploring the Limits of Masked Visual Representation Learning at Scale论文笔记

论文名称:EVA: Exploring the Limits of Masked Visual Representation Learning at Scale
发表时间:CVPR2023
作者及组织:北京人工智能研究院;华中科技大学;浙江大学;北京理工大学
GitHub:https://github.com/baaivision/EVA

问题与贡献

本文中,作者提出了一个以视觉为中心的基础模型,EVA,来探索大规模masked视觉特征学习的局限性。

EVA is a vanilla ViT pretrained to reconstruct the masked out image-text aligned vision features conditioned on visible image patches.

EVA,是一个普通的ViT模型,预训练任务的目标是重建掩码patches的CLIP特征。通过新的pretext代理任务,可以有效地扩大EVA到10亿参数量,同时在一系列下游任务中取得新的记录。EVA除了可以作为视觉编码器之外,还可以应用到多模态任务中对齐图像和文本。使用EVA初始化CLIP可以极大减少训练波动,相对于从头开始训练CLIP使用更少的样本和计算量,为扩大和加速多模态基础模型的训练提供了一个新的方向。

模型、理论和方法

vision pretext task

基于之前的视觉预训练模型研究工作,有两个主流方案:

  • 重建masked out tokenized semantic vision features;
  • 重建来自大规模预训练模型蒸馏的特征;

两者都使用了预先训练图像文本对齐的视觉特征。通过下面的一些实验,可以发现CLIP的特征标记化对于好的下游任务表现不是必须的;随着预训练时间延长,重建蒸馏特征并不能带来一致的性能增益。作者发现简单地重建以可见图像块为条件的masked图像文本对齐视觉特征,效果更好。
image.png

pre-training objective

EVA有10亿参数量,与ViT giant和BEiT-3相当。在预训练阶段,EVA没有使用相对位置编码和layer-scale。EVA对输入的patchs进行mask,掩码率为40%。其重建目标来自使用224×224像素图像训练的OpenAI CLIP-L/14视觉encoder。EVA输出特征首先归一化,然后通过线性层映射成CLIP特征相同的维度。使用negative cosine similarity作为损失函数。
image.png
EVA的训练数据集共29.6million,来自于不同的开源数据集。用于生成预测模型的CLIP使用4亿图文对数据进行训练。因此,在EVA的预训练阶段也会从这些数据中学习到知识。

pre-training设置

image.png
如上图所示,EVA使用Adam优化器进行优化,decoupled weight decay参数设置为0.05。初始学习率设置为1e-3,采用余弦衰减方案缩放学习率。设置随机深度的比例为0.1用于正则化。数据增强的方案采用RandResizeCrop(0.2,1),没有使用Color jitter
image.png
预训练过程中的细节如上图所示。作者采用的GPU平台为NVIDIA A100-SXM4-40GB。预训练代码基于BEiT代码修改得来。同样,采用DeepSpeed优化库和ZeRO stage-1优化器来节省显存。在训练过程中,使用fp16精度搭配dynamic loss缩放模型整体收敛稳定,因此使用bfloat16是没有必要的。由于EVA使用fp16精度训练,因此可以使用16×NVIDIA 24GB(32GB)GPUs带(不带)梯度检查点进行预训练。

实验结果

为了证明EVA预训练模型的效果,在不同的下游任务,如图像分类,视频动作识别,目标检测和实例分割,语义分割,以及零样本评估的对比图文预训练,进行实验。

图像分类

对于图像分类任务,EVA在ImageNet-1K 的验证集上进行评估。同时在其他6个数据集上评估模型的鲁棒性和泛化性。

image.pngimage.png

EVA首先在ImageNet-21k上训练60个epoch,然后ImageNet-1K的训练集上训练10个epoch。与其他网络的复杂结构不同,EVA简单使用一个线性层作为分类器。需要注意的是,在ImageNet-21k上进行中间微调时,相比于MIM的预训练阶段只消耗了约1/5的时间和计算资源。然后对于其他billion参数级别的视觉模型,如SwinV2-G-3B,监督训练阶段消耗的资源约为MIM预训练的1.5倍。
image.png
上图为EVA与其他模型在ImageNet-1K上的实验效果。输入大小为336×336时,EVA的top-1精度达到了89.6%。使用更大的输入分辨率 56 0 2 560^2 5602可以进一步将top-1精度提升至89.7%。需要注意的是BEiT-3将图像分类任务作为一个图文检索任务,因此BEiT-3进行图像分类任务时额外引入了十亿参数量的语言编码器,该编码器是由350万图文对和160GB文本数据预训练得到。而EVA仅仅在模型基础上添加一个线性分类层,使用ImageNet-21k图像数据用于微调。使用公开的数据,EVA在ImageNet-1K上取得了一个新的记录。
为了验证EVA模型的鲁棒性和泛化能力,EVA在6个不同ImageNet-1K的非同源数据集上进行实验。如下图所示,EVA与timm库中一些性能较好开源的模型进行比较。所有的模型首先在ImageNet-1K的训练集上进行微调,然后在不同的非同源数据集上进行评估,该过程不做任何参数调整和额外微调。
image.png
由于模型的训练数据、输入大小、模型参数量,以及框架无法对齐,因此这些结果无法直接比较。作者以其他6个数据集的平均top-1值和原始ImageNet-1K的top-1之间的差距进行比较。从gap来看,EVA不仅取得了最高的平均值,并且性能差距也是最小的,表明EVA具有优秀的鲁棒性和泛化性。

不同条件下的EVA表现

image.png
其中psz14to16表示将patch_embed的kernel_size从14×14调整为16×16.这个对于目标检测、实例分割和语义分割的性能有提升作用。

训练EVA-CLIP

使用EVA初始化CLIP的图像编码器进行训练,在ImageNet-1K下的效果如下:
image.png

使用EVA-CLIP构建重建目标

EVA-L是ViT-Larger的一个变体,以MIM方式进行预训练,EVA-CLIP的特征作为预测目标。因此,在EVA-L的预训练阶段会从更强的teacher模型中获取知识。
采用MAE风格的预训练方式,预训练设置如下:
image.png
在ImageNet-1K的测试结果如下:
image.png

视频动作识别

**数据集:**对于视频动作识别任务,分别在Kinetics-400,Kinetics-600和Kinetics-700数据集上进行实验。首先在一个合并数据集coined Kinetics-722上进行中间微调,该数据集是由K-400,K-600和K-700通过删除在训练集和验证集中重复视频得到。经过去重操作之后,K-722中包含6.3亿视频数据包含722个动作类别。
**训练和评估设置:**EVA处理视频数据仅仅简单通过spatial-temporal attention,没有其他特殊的结构调整。首先使用K-722训练集上训练EVA,然后在每个数据集上仅仅微调1或者2epochs。设置frame×crop×clip为16×3×4用于微调和评估所有数据集。每一帧的分辨率为 22 4 2 224^2 2242
**结果:**如下图所示,EVA取得更好的效果相对于一些视频分类模型或者更大的基础模型。一个参考指标,对于经过K-722微调后的模型,直接在K-400上进行评估可以取得的top-1精度为88.4%。
image.png

目标检测&实例分割

**数据集:**使用COCO和LVISv1.0来评估目标检测和实例分割效果。COCO是一个大规模应用的目标检测数据集,其包含11.8万训练集、5千验证集和2万测试集,共80个类别。LVISv1.0中包含1200个目标类别,由超过2百万高质量的实例分割掩码图像。
**评价指标:**对于COCO,使用标准的box AP A P b o x AP^{box} APbox和mask AP A P m a s k AP^{mask} APmask作为评价指标。而LVISv1.0,给出了 A P b o x , A P m a s k AP^{box},AP^{mask} APbox,APmask A P r a t e m a s k AP_{rate}^{mask} APratemask指标。
**训练和评估设置:**EVA使用Cascase Mask R-CNN 作为检测器,采用ViTDet的训练方案和框架配置。按照正常的训练方案,首先在Objects365数据集上进行中间微调,分辨率为 102 4 2 1024^2 10242,然后分别在COCO和LVISv1.0训练集上进行微调,分辨率为 128 0 2 1280^2 12802
**COCO实验结果:**与其他最先进的方法进行比较,EVA在COCO数据集上创造了一个新的记录。与ViTDet-H相比,同样采用Cascasde Mask R-CNN,EVA结果表示采用一个更大模型,更好的编码器和检测器训练方案,相同框架下模型的效果可以取得很大进步。
image.png
**LVIS实验结果:**在LVIS1.0上,EVA使用单尺度评估在所有指标上都取得最好的结果,相较于之前的方法有很大进步。
image.png
**LVIS-COCO结果差异分析:**相比于COCO数据集的80类,LVIS有1200类物体,自然而然存在一个长尾分布问题,与现实应用场景更加符合。因此,LVIS相对于COCO更难,常见的方法在LVIS上相对于COCO有一个更大的性能下降。
如下图所示,分析了COCO和LVIS在不同模型的性能差异。对于之前的模型,如ViTDet,在 A P b o x AP^{box} APbox A P m a s k AP^{mask} APmask上的性能差异分别8和5。但是,采用相同检测器和参数配置,EVA不仅在LVIS&COCO上取得了最好的效果,同时极大的缩小了两个数据集上的性能。
image.png

语义分割

**数据集:**EVA在ADE20K和COCO-Stuff-164K数据集上评估语义分割任务。ADE20K数据集中包含150个分割类别,包含2万张训练集和2千张验证集。COCO-Stuff-164K共包含16.4万张图像数据,包含172个类别。相比于ADE20K,COCO-Stuff更具有挑战性。
**实验结果:**与其他最先进的语义分割方法进行比较,EVA在ADE20K和COCO-Stuff-164K数据集上都取得了较好的结果。可以看到EVA的性能在ADE20K上略低于BEiT-3,这个可能是因为由于资源限制弱化了网络结构配置。
image.png

CLIP零样本评估

CLIP是一种多模态基础模型通过对比图像文本预训练来对齐视觉和语言。CLIP可以直接应用于任何图像分类benchmark,仅仅只需要提供数据集的类别名称即可。将EVA作为CLIP的视觉编码器,评估其在零样本图像/视频benchmark上的效果。
**训练设置:**使用预训练的EVA作为CLIP的视觉编码器,语言编码器保持OpenAI CLIP-L原样。该实现是基于Open CLIP代码。使用DeepSpeed优化库来节省显存。作者发现使用fp16精度搭配dynamic loss缩放在整个训练过程能稳定收敛。基于此,训练1.1B的CLIP模型在256× NVIDIA A100 40GB GPUs上batch size可以设置为41k。
**评估设置:**作者在12个数据集上评估每个CLIP模型的零样本图像/识别分类性能。对于零样本分类任务,选择了8个数据集。对于CLIP模型的鲁棒性评估,以这些数据集的平均性能与原始ImageNet-1K验证集的差异作为指标。对于零样本视频分类任务,选择了4个数据集,分别为UCF-101,Kinetics-400,Kinetics-600和Kinetics-700。
**实验结果:**EVA-CLIP取得了最好的平均精度,在12个数据集上有10个为最优。此外,数据集之间的性能差异也是最小的,表示模型具有很好的鲁棒性。

image.png
在下图中,展示了EVA-CLIP在零样本、线性探测和端到端微调的top-1精度。该方法相对于现有所有的自监督方法的性能都更好。
image.png
EVA-CLIP的视觉分支是从OpenAI CLIP-L中学习得到,而语言分支是用CLIP-L模型直接初始化得到。因此,从430M参数的CLIP-L出发,进一步放大得到1.1B EVA CLIP-g模型,在性能上取得了很大提升。这意味着交错的 MIM 和图像文本对比预训练可能是一种高效且可扩展的 CLIP 训练方法。 据我们所知,EVA CLIP-g 是通过公开数据和资源训练的最大的高性能 CLIP 模型。 我们希望我们在扩展和改进 CLIP 方面的实践也能够启发并转移到其他大规模多模态基础模型的研究。

思考

本文中,作者推出了 EVA,一个 10 亿参数的普通 ViT 编码器,以探索掩码视觉表示学习的局限性。 我们展示了以简单的掩码特征作为重建目标,可以在一组具有代表性和多样化的下游任务中获得优异的结果。 作者希望EVA可以缩小视觉和语言研究之间的差距,为视觉研究做出贡献。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从公务员转行网络安全工程师,铁饭碗也比不过“金饽饽”。

前言 随着疫情的不断变化,影响力席卷大多数的行业,许多人也在这次疫情中失去了工作,或是收入与之前相比大打折扣,因此越来越多的人涌入到了考公或考事业单位的大潮之中。 考公是一场与实力与运气的battle,不到上岸的…

MS2244模拟开关可Pin to Pin兼容NJM2244

MS2244 是一款集成的视频开关,实现三输入视频或音频信号的三选一。可Pin to Pin兼容NJM2244。 芯片集成了 75Ω驱动电路,可以直接驱动电视监控器。芯片工作电压 5V~12V,带宽 10MHz,抗串扰 70dB (4.43MHz)。另外芯片还集…

NC(65)元数据增加字段

以报销单主表er_bxzb表为例,增加15个字段字段以及两个其他业务所需字段 1、先在er_bxzb增加字段 增加字段 alter table er_bxzb add no_invoice char(1) default(N);alter table er_bxzb add is_enabled_taxation_cloud char(1) default(N);alter table er_bxzb a…

SANSAN新鲜事|场站数字化避“坑”指南

场站如何定义 场站是指在某个特定的区域内,为了完成某个特定的任务而建立的一个或多个设施的集合。常见的场站涉及各行各业,比如电力行业的变电站、开闭所、配电房等;再比如燃气行业的门站、调压站、加气站等; 另外,还…

Ansys Speos | 3D Texture 车灯案例应用

Speos 3D Texture功能提供了一种解决方案,可以绕过 CAD 系统限制来设计和模拟数百万个小图案:pattern图案的分布类型和重复次数。3D Texture可用于设计照明系统,例如光导、车灯、亮度增强膜 (BEF) 和由数百万个几何元素…

Jmeter的性能测试

性能测试的概念 定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。 由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在功能测试…

UGUI Panel的显示和隐藏优化

unity UI如何开启(显示)或者关闭(隐藏)Panel界面,相信大家都是知道的,但是如何做最好呢? 可能大家一般开启/关闭界面的方法就是直接SetActive吧。这样做通常是可以的,简答快速地解决…

leetcode——打家劫舍问题汇总

本章汇总一下leetcode中的打家劫舍问题,使用经典动态规划算法求解。 1、梦开始的地方——打家劫舍(★) 本题关键点就是不能在相邻房屋偷东西。 采用常规动态规划做法: 根据题意设定dp数组,dp[i]的含义为&#xff1a…

【rar压缩包密码】rar压缩包加密码怎么设置?

如何使用WinRAR加密压缩包?详细介绍WinRAR中的三种加密方法给大家。 方法一:加密 最简单的加密方法,就是在加密文件时输入想要设置的密码,完成加密和压缩了。 方法二:自动加密 普通的加密方式,需要我们加…

电影分线发行来势汹汹,行业新规到底利好谁?

年末的贺岁档,一直是各大影视公司的必争之地,但2023年却透露出一股不寻常的气息。 在10月份举办的第一届全国电影交易大会上,分线发行影片的机制被提出之后,贺岁档的多部影片启用了这一发行方式。 分线发行,简单来说…

sigmoid softmax优化

1.前言 最近在搞模型部署发现,推理速度不能满足我们需求,于是最近学习了优化算子技巧,学到了sigmoid,softmax算子优化,真的数学之美。2.sigmoid算子优化 一.算子优化图 我们根据sigmoid公式,我们进行求反…

JavaScript 中的双等号(==)和三等号(===)有何不同?何时使用它们?

​🌈个人主页:前端青山 🔥系列专栏:JavaScript篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript-等号区别 目录 和 区别,分别在什么情况使用 一、等于操作符…

wxWidgets实战:wxGrid创建表单之复选框样式

1》 创建wxGrid WX_GRID* m_fieldsGrid m_fieldsGrid new WX_GRID( sbFields->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );m_fields new FIELDS_GRID_TABLE<SCH_FIELD>( this, aParent, m_fieldsGrid, m_symbol );FDC_SHOW_NAME FDC_SHOW_…

视频监控EasyCVR如何通过设置sei接口,实现在webrtc视频流中添加画框和文字?

安防视频监控系统基于视频综合管理平台EasyCVR视频系统&#xff0c;采用了开放式的网络结构&#xff0c;可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;具备权限管…

嵌入式开发——ARM介绍

ARM架构 ARM是一种芯片架构,由英国的ARM Holdings公司开发和授权,被广泛应用于各种嵌入式系统、移动设备和消费电子产品中。ARM架构被设计成低功耗、高性能、可定制化的特点,能够满足各种应用场景下的需求。 ARM架构主要设计了以下几个部分内容: 指令集架构(Instruction…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)EventLoop初始化

这个Dispatcher是一个事件分发模型&#xff0c;通过这个模型,就能够检测对应的文件描述符的事件的时候,可以使用epoll/poll/select,前面说过三选一。另外不管是哪一个底层的检测模型,它们都需要使用一个数据块,这个数据块就叫做DispatcherData。除此之外,还有另外一个部分,因为…

Leetcode---376周赛---中位数贪心

题目列表 2965. 找出缺失和重复的数字 2966. 划分数组并满足最大差限制 2967. 使数组成为等数数组的最小代价 2968. 执行操作使频率分数最大 一、找到缺失和重复的数字 由于数据范围不是很大&#xff0c;可以直接暴力统计每个数字出现的次数&#xff0c;时间复杂度为O(n^2…

使用css实现旋转木马HTML

使用css实现旋转木马HTML 效果图 实现代码如下 <!DOCTYPE html> <html lang"zh-cn"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

分享msvcr120.dll丢失怎样修复,修复msvcr120.dll文件

在使用电脑的过程中你是不是遇到过msvcr120.dll丢失的情况&#xff0c;那么有什么办法能够解决msvcr120.dll丢失的文件&#xff0c;今天的这篇文章就一个目的&#xff0c;教会大家有效的解决msvcr120.dll 丢失的问题&#xff0c;&#xff0c;接下来就教大家msvcr120.dll丢失怎样…

MR实战:分科汇总求月考平均分

文章目录 一、实战概述二、提出任务三、完成任务&#xff08;一&#xff09;准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 &#xff08;二&#xff09;实现步骤1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、创建学生实体类5、创建科目平均分映射器类…