BeiT v2 来袭 | BeiT升级,全面超越 MAE,实现 Vision Transformer 微调自由!

简介: BeiT v2 来袭 | BeiT升级,全面超越 MAE,实现 Vision Transformer 微调自由!

Masked image modeling 通过恢复损坏的图像块在自监督表示学习中展示了令人印象深刻的结果。然而,大多数方法仍然对 low-level 图像像素进行操作,这阻碍了对表示模型的 high-level 语义的利用。

在这项研究中,作者建议使用语义丰富的 visual tokenizer 作为 Mask 预测的重建目标,为将 MIM 从像素级提升到语义级提供了一种系统的方法。

具体来说,引入向量量化知识蒸馏来训练 tokenizer,它将连续的语义空间离散化为 compact codes。然后,通过预测 masked image patches 的原始 visual tokenizer 来预训练 Vision Transformers 。此外,作者鼓励模型将patches信息显式聚合到全局图像表示中,这有助于线性预测。

图像分类和语义分割的实验表明,本文的方法优于所有比较的 MIM 方法。在 ImageNet-1K(224 大小)上,base-size BEIT V2 在微调时达到 85.5% 的 top-1 精度,在线性预测时达到 80.1% 的 top-1 精度。large-size BEIT V2ImageNet-1K(224 大小)微调上获得 87.3% 的 top-1 准确率,在 ADE20K 上获得 56.7% 的 mIoU 用于语义分割。


1、简介


Masked image modeling 在学习视觉表示方面显示出令人印象深刻的结果,这极大地缓解了 Vision Transformer 的注释饥饿问题。给定一张图像,这些方法通常首先通过mask一些 patches 来破坏原始图像,相关任务是恢复原始图像。以开创性工作 BEiT 为例,每张图像在预训练期间都有2个视图,即图像 patchesvisual tokenizer。原始图像首先被tokenizer为离散 token。随机采样的图像 patches 在被馈送到 Vision Transformer 之前被 Masked。预训练的目标是根据损坏的图像 patches 恢复原始 visual tokenizer。在预训练视觉编码器后,可以通过附加轻量级任务层直接在各种下游任务上微调模型。

mask-then-predict 框架下,与之前工作的主要区别在于重建目标,例如 visual tokenizer、原始像素和手工制作的 HOG 特征。然而,恢复low-level监督往往会浪费建模能力来预训练高频细节和短程依赖关系。例如,当掩盖戴在男人头上的“帽子”时,更喜欢模型在给定整个上下文的情况下学习被掩盖的“帽子”的高级概念,而不是在像素级细节上苦苦挣扎。相比之下,语言建模中的掩码词通常被认为具有比像素更多的语义。这促使通过在预训练期间利用语义感知监督来挖掘 MIM 的潜力。

在这项工作中,作者引入了一种自监督的视觉表示模型 BEIT V2,旨在通过学习语义感知的 visual tokenizer 来改进 BEIT 预训练。具体来说,提出了向量量化知识蒸馏(VQ-KD)算法来离散化语义空间。VQ-KD 编码器首先根据可学习的 codebook 将输入图像转换为离散token。然后解码器学习重建由教师模型编码的语义特征,以离散token为条件。在训练 VQ-KD 后,其编码器用作 BEIT 预训练的 visual tokenizer,其中离散 code 用作监督信号。

此外,作者建议通过明确鼓励 CLS token 聚合所有 patches 来预训练全局图像表示。该机制解决了 Masked image modeling 仅预训练 patch-level 表示的问题。结果,在聚合全局表示的帮助下,线性预测的性能得到了提高。

image.png

ImageNet-1k 上对 basebig Vision Transformer 进行自监督学习,并在多个下游任务上进行评估,例如图像分类、线性预测和语义分割。如图 1 所示,BEIT V2ImageNet 微调上大大优于以前的自监督学习算法,例如,在 ViT-B/16 ViT-L/16 上都比 BEIT 提高了大约2个点。BEIT V2ImageNet 线性预测上优于所有比较的 MIM 方法,同时在 ADE20k 上实现语义分割的巨大性能提升。

本研究的贡献总结如下:

• 引入向量量化知识蒸馏,将Masked image modeling从像素级提升到语义级,以进行自监督表示学习。

• 提出了一种Patch聚合策略,该策略在给定 Patch-Level Masked image modeling 的情况下强制执行全局表示。

• 对下游任务进行了广泛的实验,例如 ImageNet 微调、线性预测和语义分割。实验结果表明,BEIT V2显著提高了模型大小、训练步骤和下游任务的性能。


2、BeiT v2


BEIT V2 继承了用于Masked image modelingBEIT 框架。具体来说,给定输入图像,使用visual tokenizer将图像标记为离散的visual token。然后屏蔽一部分图像patch并将其输入 Vision Transformer。预训练任务是根据损坏的图像恢复Mask的visual token

2.1、Image Representations

使用Vision Transformer作为主干网络来获得图像表示。给定输入图像 ,将图像  reshape为  个patches ,其中  和  是patch-size。在实验中,将每个 224×224 的图像分割成一个 14×14 的图像patch网格,其中每个patch为 16×16。然后将图像patch  展平并线性投影到 Transformer 的输入嵌入中。对于 N 个图像块,将编码向量表示为 。

2.2、Training Visual Tokenizer

visual tokenizer 将图像映射到一系列离散 tokens。具体来说,图像 x 被标记为  ,其中vocabulary V(即visual codebook)包含 |V| 离散code。请注意,token的数量与图像块的数量相同。本文提出向量量化知识蒸馏(VQ-KD)来训练visual tokenizer。如图 2 所示,VQ-KD 在训练过程中有两个模块,即visual tokenizer和解码器。

image.png

visual tokenizerVision Transformer编码器和量化器组成。分词器首先将输入图像编码为向量。接下来,向量量化器在codebook中查找每个patch表示  的最近邻。让  表示 codebook 嵌入。对于第 i 个图像块,其量化代码由下式获得:

image.png

其中  归一化用于codebook查找。上述距离相当于根据余弦相似度找code

在将图像量化为visual token之后,将-normalized codebook embeddings 提供给解码器。解码器也是一个多层 Transformer 网络。输出向量  旨在重建教师模型的语义特征,例如 DINOCLIP。让  表示第 i 个图像块的教师模型的特征向量。最大化解码器输出  和教师指导  之间的余弦相似度。

因为量化过程(等式 1)是不可微分的。如图 2 所示,为了将梯度反向传播到编码器,梯度直接从解码器输入复制到编码器输出。直观地说,量化器为每个编码器输出查找最近的code,因此codebook embeddings的梯度指示了编码器的有用优化方向。

VQ-KD的训练目标是:

image.png

其中,sg[·]表示停止梯度算子,它是向前传递时的一个身份,而在反向传递过程中梯度为零,D表示用于tokenizer训练的图像数据。

提高codebook利用率

矢量量化训练的一个常见问题是 codebook 崩溃。换句话说,只使用了一小部分code。作者凭经验发现有几种技术可用于提高 codebook 利用率。于等人建议对codebook查找应用降维和 l2 归一化。等式 1 表明计算 l2 归一化距离以找到最近的 code。此外,将查找空间的维度减少到 32 维。低维codebook嵌入在馈入解码器之前被映射回高维空间。此外,采用指数移动平均线来更新codebook嵌入,这在实验中往往更加稳定。

2.3、Pretraining BEIT V2

遵循BEIT中的MIM设置,以预训练 Vision Transformers 的图像表示。给定一个输入图像 x,分块选择大约40%的图像 patch 进行 mask。如果 if ,其中δ(·)是指示函数,则使用共享的可学习嵌入来替换的原始图像patch嵌入。随后,在输入前准备了一个可学习的CLS token,即,并将它们提供给vision Transformer。最终的编码向量记为,其中为CLS token

接下来,使用一个mask图像建模head,基于损坏的图像来预测mask位置的 visual tokens。对于每个mask位置,一个softmax分类器预测 visual tokens ,其中是mask图像,,是分类器的权重。visual tokens是由第2.2节中训练的标记器获得的,该节为mask图像建模提供了监督。最后,MIM的训练损失可以表述为:

其中表示原始图像的visual tokens,D表示训练前的图像。

预训练全局表示

受(Gao和Callan,2021)的启发,明确地预训练了CLS token以进行全局表示。目标是减轻patch-level预训练和 image-level 表示聚合之间的差异。

image.png

如图3所示,构建了一个 representation bottleneck 来指导CLS token收集信息。对于L-layer Transformer,让${h^l_i\}^N_{i=1}表示第层的输出向量,其中l=1····l$。为了预先训练最后一层的CLS token ,连接中间l层的patch向量${h^l_i\}^N_{i=1},即S=[h^L_{CLS},h^l_1,···,h^l_N]$。然后,将S输入一个浅层(例如,两层)Transformer decoder,并进行mask预测。

注意,这里也计算了第l层的MIM损失,如公式3所示。所以最终的训练损失是两项的总和,即,在第l层的原始损失,和浅层Transformer decoder的MIM损失。在实现中还共享2个头的MIM Softmax权重。

直观地看,该模型倾向于将全局信息推到,因为该模型倾向于充分利用从第1层到第l+1层的参数,以减少额外的MIM损失。information-flow bottleneck鼓励CLS token比未经训练的对应token获得更可靠的全局表示。新添加的浅层解码器仅用于对CLS token进行预训练,经过预训练后将被丢弃。


3、实验



4、参考


[1].BEIT V2: Masked Image Modeling with Vector-Quantized Visual Tokenizers


5、推荐阅读


小目标绝技 | 用最简单的方式完成Yolov5的小目标检测升级!

Two-Stage目标检测困难负样本如何利用?大小目标如何同时优化?nRPN给你答案!

超越YOLO5-Face | YOLO-FaceV2正式开源Trick+学术点拉满,让你欲罢不能!!!

相关文章
|
7月前
|
数据采集 监控 安全
拼多多API价格战预警:竞品监控不落人后!
在电商竞争激烈的当下,拼多多凭借低价策略迅速崛起,但也给商家带来定价挑战。本文解析如何利用API技术,构建实时价格预警与竞品监控系统,助力商家在价格战中抢占先机,实现智能调价与策略应对。
626 0
|
10月前
|
机器学习/深度学习 人工智能 算法
零训练成本优化LLM: 11种LLM权重合并策略原理与MergeKit实战配置
随着大语言模型快速发展,如何优化性能同时降低计算成本成为关键问题。本文系统介绍了11种零训练成本的LLM权重合并策略,涵盖线性权重平均(Model Soup)、球面插值(SLERP)、任务算术、TIES-Merging等方法,通过MergeKit工具提供实战配置示例。无论研究者还是开发者,都能从中找到高效优化方案,在有限资源下实现模型性能显著提升。
531 10
零训练成本优化LLM: 11种LLM权重合并策略原理与MergeKit实战配置
|
计算机视觉
RT-DETR改进策略【Neck】| TPAMI 2024 FreqFusion 频域感知特征融合模块 解决密集图像预测问题
RT-DETR改进策略【Neck】| TPAMI 2024 FreqFusion 频域感知特征融合模块 解决密集图像预测问题
464 17
RT-DETR改进策略【Neck】| TPAMI 2024 FreqFusion 频域感知特征融合模块 解决密集图像预测问题
|
机器学习/深度学习 人工智能 自然语言处理
通古大模型:古籍研究者狂喜!华南理工开源文言文GPT:AI自动断句+写诗翻译,24亿语料喂出来的学术神器
通古大模型由华南理工大学开发,专注于古籍文言文处理,具备强大的古文句读、文白翻译和诗词创作功能。
2309 11
通古大模型:古籍研究者狂喜!华南理工开源文言文GPT:AI自动断句+写诗翻译,24亿语料喂出来的学术神器
|
机器学习/深度学习 PyTorch 算法框架/工具
VQ-VAE:矢量量化变分自编码器,离散化特征学习模型
VQ-VAE 是变分自编码器(VAE)的一种改进。这些模型可以用来学习有效的表示。本文将深入研究 VQ-VAE 之前,不过,在这之前我们先讨论一些概率基础和 VAE 架构。
1401 10
|
机器学习/深度学习 存储 人工智能
《C++ 模型训练之早停法:有效预防过拟合的关键策略》
在C++模型开发中,过拟合是常见问题,早停法(Early Stopping)能有效避免这一陷阱。本文介绍如何在C++环境下通过设定监控指标、耐心值及记录最佳模型状态,实现早停法,确保模型在最佳状态下停止训练,保持良好泛化性能。
431 12
|
Linux 测试技术 Apache
国产 OpenEuler 向 CentOS 发起挑战:这场替代之战结局如何?
【10月更文挑战第3天】在服务器操作系统领域,CentOS 曾是首选,但因项目策略变化,寻找替代品变得迫切。本文将探讨国产开源操作系统 OpenEuler 是否能完美替代 CentOS。OpenEuler 具有强大的性能和稳定性,由国内社区推动,提供出色的安全性和及时更新。其包管理工具与 CentOS 类似,便于上手。
478 3
`scipy.signal`模块是SciPy库中的一个子模块,它提供了信号处理、滤波、频谱分析等功能。这个模块包含了许多用于信号处理的函数和类,其中`butter()`和`filtfilt()`是两个常用的函数。
`scipy.signal`模块是SciPy库中的一个子模块,它提供了信号处理、滤波、频谱分析等功能。这个模块包含了许多用于信号处理的函数和类,其中`butter()`和`filtfilt()`是两个常用的函数。
|
存储 关系型数据库 MySQL
MySQL InnoDB存储引擎的优点有哪些?
上述提到的特性和优势使得InnoDB引擎非常适合那些要求高可靠性、高性能和事务支持的场景。在使用MySQL进行数据管理时,InnoDB通常是优先考虑的存储引擎选项。
536 0
|
开发框架 搜索推荐 安全
【Uniapp 专栏】基于 Uniapp 的电商应用开发案例解析
【5月更文挑战第12天】使用Uniapp跨平台框架开发电商应用,结合丰富的组件和API,实现首页、商品详情、购物车及订单等关键功能。注重界面设计和用户体验,处理商品逻辑、订单管理和支付接口集成。同时,适应多平台特性,加入个性化推荐、商品直播和社交分享等特色功能,以降低成本、提升竞争力,打造高效购物体验。此案例展示了Uniapp在电商领域的潜力和优势。
702 4

热门文章

最新文章