BEiT: BERT Pre-Training of Image Transformers 论文笔记

这篇具有很好参考价值的文章主要介绍了BEiT: BERT Pre-Training of Image Transformers 论文笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

BEiT: BERT Pre-Training of Image Transformers 论文笔记

论文名称:BEiT: BERT Pre-Training of Image Transformers

论文地址:2106.08254] BEiT: BERT Pre-Training of Image Transformers (arxiv.org)

代码地址:unilm/beit at master · microsoft/unilm (github.com)

作者讲解:BiLiBiLi

作者PPT:文章资源



首先展示的是我基于这个算法搭建的网页demo,欢迎体验。https://wangqvq-beit-gradio.hf.space/
BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划


整体结构图

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划


Visual Tokens

将图像分解为离散的标记

  • 离散 variational autoencoder

  • 学习通过视觉令牌的条件来重建原始图像

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

  • 图像表示(两个视角)

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划


  • 分块遮罩
    • 每次都会对图像块进行遮罩处理

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划


  • 将受损图像补丁输入到 Transformer
    • 最终的隐向量被视为编码表示

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划


  • 在给定受损图像的情况下恢复正确的视觉标记
    • 视觉标记将细节总结为高层抽象

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划


1.1 总体方法

  • BERT 启发,提出了一项预训练任务,即掩码图像建模(MIM)
  • MIM为每个图像使用了两种视图,即图像块(image patches)和视觉标记(visual tokens)
  • 图像被分割成一个网格的图像块,这些图像块是骨干Transformer的输入表示。
  • 通过离散变分自编码器(discrete variational autoencoder),图像被“标记化”(tokenized)为离散的视觉标记,其中离散变分自编码器来自于 DALL·E。

在预训练阶段,图像的一部分图块(image patches)会被随机地遮挡(masked),然后将这些被遮挡的输入提供给Transformer模型。模型会学习如何从遮挡后的输入中恢复原始图像中的视觉标记(visual tokens),而不是从遮挡的图块中恢复原始像素。

换句话说,模型在这个过程中学习了如何通过遮挡和损坏的输入来推断出原始图像的部分内容,这有助于模型学习图像的语义和特征。作者认为这种预训练策略可以增强模型在图像处理任务中的能力,使其能够更好地理解和表示图像。

1.2 图像表示

图像具有两种表示视图,即图像块视觉标记。这两种类型在预训练期间分别用作输入和输出表示。

1.2.1 图像块 (Image Patches)

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

  • 尺寸为 H × W × C H×W×C H×W×C 的二维图像被分割成大小为 P 2 P^2 P2 的图像块序列 x p x_p xp(其中 p p p 1 1 1 N N N),其中 p a t c h patch patch 的数量 N N N = H W / P 2 HW/P^2 HW/P2
  • 图像块 x p x_p xp 被展平为向量,并且进行线性投影,这与 BERT 中的词嵌入类似。

具体而言,BEiT 将每个 224 × 224 224×224 224×224 的图像分割成一个 14 × 14 14×14 14×14 的图像块网格,每个图像块大小为 16 × 16 16×16 16×16

1.2.2 视觉标记 (Visual Tokens)

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

图像不再以原始像素的形式表示,而是被分解成一系列离散的标记(tokens),这些标记是通过一个名为“图像分词器”(image tokenizer)获得的。换句话说,图像被转化成了一串由特定标记组成的序列,而不再是像素点的集合。

具体而言,尺寸为 H × W × C H×W×C H×W×C 的图像被标记化为 z = [ z 1 , … , z N ] z=[z1, …, zN] z=[z1,,zN],其中词汇表 V = { 1 , 2 , … , ∣ V ∣ } V=\{1, 2, …, |V|\} V={1,2,,V} 包含离散的标记索引。

  • 由 DALL·E 学习的离散变分自编码器(dVAE)直接使用了图像标记器。

  • 在视觉标记学习过程中,存在两个模块,即标记器tokenizer)和解码器decoder)。

  • 标记器 q ( z ∣ x ) q(z|x) q(zx) 将图像像素 x x x 映射为离散标记 z z z,根据一个视觉码本(即词汇表)。

  • 解码器 $p(x|z) $学习基于视觉标记 z z z 重构输入图像 x x x

  • 词汇表大小设置为 ∣ V ∣ = 8192 |V| = 8192 V=8192


1.3 ViT Backbone

  • ViT的基础上,使用了 T r a n s f o r m e r Transformer Transformer 骨干网络。

  • T r a n s f o r m e r Transformer Transformer 的输入是图像块序列 x i p x_i^p xip

  • 然后,图像块通过线性投影得到块嵌入 E x i p Ex^p_i Exip

  • 标准的可学习的一维位置嵌入 E p o s E_{pos} Epos 被添加到块嵌入中:

H 0 = [ e [ S ] , E x i p , … , E x N p ] + E p o s \boldsymbol{H}_{0}=\left[\boldsymbol{e}_{[\mathrm{S}]}, \boldsymbol{E} \boldsymbol{x}_{i}^{p}, \ldots, \boldsymbol{E} \boldsymbol{x}_{N}^{p}\right]+\boldsymbol{E}_{p o s} H0=[e[S],Exip,,ExNp]+Epos

  • 编码器包含 L L L T r a n s f o r m e r Transformer Transformer 块:

H l =  Transformer  ( H l − 1 ) \boldsymbol{H}^{l}=\text { Transformer }\left(\boldsymbol{H}^{l-1}\right) Hl= Transformer (Hl1)

  • 最后一层的输出向量为:

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

这些向量被用作图像块的编码表示,其中 h i L h^L_i hiL 是第 i i i 个图像块的向量。

  • 使用了ViTBase,它是一个包含 12 12 12 T r a n s f o r m e r Transformer Transformer 的模型,每层有 768 768 768 的隐藏大小和 12 12 12 个注意力头。前馈网络的中间大小为 3072 3072 3072

2. BEiT的预训练:掩码图像建模

2.1. Masked Image Modeling (MIM)

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

  • 将图像分割成图像块后,如上所述,大约 40 % 40\% 40% 的图像块会被随机遮蔽,遮蔽的位置标记为M。被遮蔽的块会被可学习的嵌入e[M]所取代。在 BEiT 中,最多会遮蔽 75 75 75 个图像块。

  • 然后,好的和被遮蔽的图像块被输入到 L L L T r a n s f o r m e r Transformer Transformer 中。

  • 使用softmax分类器来预测相应的视觉标记:

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

预训练目标是最大化给定受损图像情况下正确视觉标记 z i z_i zi 的对数似然:

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

  • BEiTImageNet-1K 的训练集上进行预训练。

  • 预训练大约运行了500k步(即800epoch),使用了2k的批大小。这500k个训练步骤使用了16Nvidia Tesla V100 32GB GPU 卡,大约花费了五天的时间。

2.2. Blockwise Masking 分块遮蔽

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

补丁块是随机遮蔽的,如上图和算法所示,而不是以随机方式逐个遮蔽每个补丁。

2.3. From VAE Perspective 从VAE的角度

  • BEiT 的预训练可以看作是变分自编码器的训练:

    原始图像: x x x

    当前图像: x ~ \widetilde{x} x

    视觉标记: z z z

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

  • 在第一阶段,图像标记器作为一个离散变分自编码器获得。具体来说,第一阶段最小化重构损失,使用均匀先验。
  • 在第二阶段,保持 q φ q_φ qφ p ψ p_ψ pψ 固定的同时学习先验 p θ p_θ pθ
  • 因此,上述方程被重写为:

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

其中第二项是提出的 BEiT 预训练目标。

3. 实验结果

3.1. ImageNet-1K 和 ImageNet-22K 预训练,以及在 ImageNet-1K 上的图像分类

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

  • 一个简单的线性分类器被用作任务层。平均池化被用来聚合表示,并将全局表示输入到一个 softmax 分类器中。
  • 预训练的 BEiT 显著提高了在这两个数据集上的性能。

BEiT 在 ImageNet 上提高了性能,显示了在资源丰富的设置下的有效性。

  • 更高的分辨率在 ImageNet 上将 BEiT 的结果提高了 1+ 个百分点。

更重要的是,即使在使用相同输入分辨率时,预训练于 ImageNet-1KBEiT384 甚至在性能上超越了使用 ImageNet-22K 进行监督预训练的 ViT384

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

BEiT 进行微调不仅实现了更好的性能,而且收敛速度比从零开始训练的 DeiT 快得多。

3.2. ADE20K的语义分割

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

  • 使用了 SETR-PUP 中使用的任务层

  • 具体来说,将预训练的 BEiT 用作骨干编码器,并结合几个反卷积层作为解码器来产生分割。

BEiT 比监督式预训练具有更好的性能,尽管 BEiT 不需要手动注释进行预训练。

  • 在 ImageNet上对 BEiT 进行中间微调,即首先在ImageNet上对预训练的 BEiT 进行微调,然后在ADE20K上对模型进行微调。

中间微调进一步改善了语义分割的 BEiT

3.3. 消融研究

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

  • 块屏蔽(Blockwise masking)对这两个任务都是有益的,尤其是在语义分割方面

  • 所提出的掩蔽图像建模(MIM)任务明显优于朴素像素级自动编码。结果表明,视觉代币的预测是 BEiT 的关键要素。

  • 恢复所有视觉对象令牌会损害下游任务的性能。

  • 对模型进行更长时间的预训练(800 个 epoch)可以进一步提高下游任务的性能

3.4. 自注意力图分析

BEiT: BERT Pre-Training of Image Transformers 论文笔记,多模态,bert,论文阅读,人工智能,原力计划

  • BEiT 中的自我注意机制可以分离物体。

    经过预训练后,BEiT 学会使用自我注意头来区分语义区域,而无需任何特定于任务的监督。BEiT 获得的这些知识有可能提高微调模型的泛化能力,特别是在小规模数据集上。文章来源地址https://www.toymoban.com/news/detail-677101.html


到了这里,关于BEiT: BERT Pre-Training of Image Transformers 论文笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GPT(Generative Pre-Training)论文解读及实现(一)

    Given an unsupervised corpus of tokens U = {u1, . . . , un}, we use a standard language modeling objective to maximize the following likelihood: 在给定语料上下文环境下,目标时最大化下面的语言模型,即在给定前 i-1个词和参数θ前提下,使第 i 个词出现的概率最大。 we use a multi-layer Transformer decoder [34] for

    2024年02月15日
    浏览(146)
  • 【论文笔记】Improving Language Understanding by Generative Pre-Training

    背景: 自然语言理解 包括广泛的不同任务,如文本蕴涵、QA问答、语义相似性评估和文档分类。 问题: 尽管 大型未标记文本语料库 (corpora)非常丰富;但用于 学习特定任务的标记数据 却很少,这使得采用传统的有监督深度学习方法训练得到的模型表现较差。 解决: 通过

    2024年03月24日
    浏览(46)
  • 【NLP经典论文精读】Improving Language Understanding by Generative Pre-Training

    chatGPT的初代工作,可以说没有GPT,就没有现在的大模型百家争鸣,本篇文章回顾这篇经典论文,思考作者是如何根据前者的工作在思想上进行创新,从而得到通用的模型架构。 Paper: https://www.mikecaptain.com/resources/pdf/GPT-1.pdf Code: https://github.com/huggingface/transformersGPT 自然语言理解

    2024年02月15日
    浏览(292)
  • 论文阅读《Vision-Language Pre-Training with Triple Contrastive Learning》

    本文是2022年CVPR上的一篇 多模态 论文,利用对比学习和动量来进行图片与文本信息的上游预训练。 作者提出问题 简单的跨模态比对模型无法确保来自同一模态的相似输入保持相似。(模态内部语义信息损失) 全局互信息最大化的操作没有考虑局部信息和结构信息。 对于上

    2024年04月13日
    浏览(36)
  • ChatGPT1论文解读《Improving Language Understanding by Generative Pre-Training》

    以下是我阅读完整篇论文做的个人总结,基本包含了ChatGPT1设计的完整框架思路,可以仅看【论文总结】章节。 在GPT1实现的核心架构中,包含两个阶段。 第一阶段 在 第一阶段 基于一个包含 7000本书籍 内容的海量 未标注文本数据集 进行无监督预训练,该阶段引入了一种 T

    2024年02月05日
    浏览(35)
  • Re58:读论文 REALM: Retrieval-Augmented Language Model Pre-Training

    诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称:REALM: Retrieval-Augmented Language Model Pre-Training 模型名称:Retrieval-Augmented Language Model pre-training (REALM) 本文是2020年ICML论文,作者来自谷歌,关注RAG+LLM。目标是解决纯用LM参数储存知识就得让LM尺寸越来

    2024年02月04日
    浏览(33)
  • 论文笔记--ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding

    标题:ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding 作者:Yu Sun, Shuohuan Wang, Yukun Li, Shikun Feng, Hao Tian, Hua Wu, Haifeng Wang 日期:2020 期刊:AAAI   文章给出了一种新的NLP预训练模型的训练方法,并提出了ERNIE2.0(Enhanced Representation through kNowledge IntErgration)。ERNIE2.0在ERNIE

    2024年02月09日
    浏览(41)
  • 【论文笔记】SimMTM: A Simple Pre-Training Framework for Masked Time-Series Modeling

    论文地址:https://arxiv.org/abs/2302.00861 时间序列分析被广泛应用于各个领域。近年来,为了降低标签费用,使各种任务受益, 自我监督式预训练 引起了人们的极大兴趣。一种主流范式是 masked 建模,它通过学习基于未 masked 部分 重构 masked 内容来成功地预训练深度模型。然而,

    2024年01月21日
    浏览(37)
  • 跨模态检索论文阅读:(PTP)Position-guided Text Prompt for Vision-Language Pre-training

    (PTP)Position-guided Text Prompt for Vision-Language Pre-training 视觉语言预训练的位置引导文本提示 视觉语言预训练(VLP)已经显示出将图像和文本对统一起来的能力,促进了各种跨模态的学习任务。 然而,我们注意到,VLP模型往往缺乏视觉基础/定位能力,这对许多下游任务如视觉推理至

    2024年02月11日
    浏览(34)
  • 论文阅读【自然语言处理-预训练模型2】BART:Denoising Sequence-to-Sequence Pre-training for Natural Language Generation

    BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension BART: 用于自然语言生成、翻译和理解的去噪序列对序列预训练 【机构】:Facebook AI 【作者】:Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov, Luke Zettlemoye

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包