【论文笔记】BEIT:BERT PRE-TRAINING OF IMAGE TRANSFORMERS

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

GitHub

1.介绍

1.1 挑战

  1. 视觉转换器的输入单元,即图像补丁,没有预先存在的词汇。
  2. 预测遮罩面片的原始像素往往会在预训练短程依赖性和高频细节上浪费建模能力

1.2 回顾一下Bert的基本架构和流程

  1. 输入编码:通过tokenizer将输入的文本中的每个单词转换为固定维度的向量表示
  2. 输入Transformer 编码器:使用多层的 Transformer 编码器来捕捉输入文本的上下文信息。

1.3 重点把握

  • 怎么tokenize:通过DiscreteVAE(代码中使用的是Dalle_VAE)的潜在code获得的!
  • 怎么将图片打上掩码?随机屏蔽一定比例的图像补丁!
  • 网络学习的是什么?视觉标记!

2.方法

【论文笔记】BEIT:BERT PRE-TRAINING OF IMAGE TRANSFORMERS

图一

2.1 图片表示

2.1.1 图片PATCH化

和vit基本相同,将每个224×224的图像分割成14×14的图像块网格

2.1.2 视觉token表示

将图像表示为“图像标记器”获得的离散标记序列,而不是原始像素。

使用离散变分自动编码器(dVAE)学习的图像标记器。视觉标记学习过程中有两个模块,即标记器和解码器。

  • 标记器:将图像像素x映射为离散标记z
  • 解码器:基于视觉标记z来重建输入图像x

由于潜在的视觉表征是离散的,因此模型训练是不可微的。

2.2 骨干网络:transformer

  • 为输入序列预先准备了一个特殊token[S](图一左下角)
  • 将标准可学习1D位置embeddings添加到补丁embeddings.
  • 编码器其实就是L层的transform
  • 最后一层的输出被用作图像块的编码表示

2.3 预训练BEIT

  • 给定一个输入图像x,我们将其拆分为N个图像块,并将其标记为N个视觉标记。我们随机屏蔽了大约40%的图像块。用可学习嵌入e[M]∈RD替换屏蔽的块。
  • mask的图像块被馈送到L层变换器。最终的隐藏向量被视为输入补丁的编码表示。
  • 使用softmax分类器来预测相应的视觉标记

预训练的目标是在给定损坏图像的情况下最大化正确视觉标记的对数似然性:

【论文笔记】BEIT:BERT PRE-TRAINING OF IMAGE TRANSFORMERS

三.代码

【论文笔记】BEIT:BERT PRE-TRAINING OF IMAGE TRANSFORMERS

核心代码如上图所示,输入的图片通过d_vae(代码中使用的是Dalle_VAE)来获得一个编码表示,通过一个Vit获得预测的图像块的编码表示

3.1 dataset

在上图中,一个batch得到三个输出:

samples, images, bool_masked_pos = batch

 数据集的构建只有短短四行

def build_beit_pretraining_dataset(args):
    transform = DataAugmentationForBEiT(args)
    print("Data Aug = %s" % str(transform))
    return ImageFolder(args.data_path, transform=transform)

【论文笔记】BEIT:BERT PRE-TRAINING OF IMAGE TRANSFORMERS

DataAugmentationForBEiT前两个还好说,分别是vit和vae的数据处理,第三个是用来随机生成mask的。

3.2 视觉token表示

【论文笔记】BEIT:BERT PRE-TRAINING OF IMAGE TRANSFORMERS

其实就是这个部分

        with torch.no_grad():
            input_ids = d_vae.get_codebook_indices(images).flatten(1)
            bool_masked_pos = bool_masked_pos.flatten(1).to(torch.bool)
            labels = input_ids[bool_masked_pos]

 通过DiscreteVAE(代码中使用的是Dalle_VAE)获得整张图片的code

codebook:这里的Codebook类似于一张表,一本词典,或者主成分分析里面的主成分向量。【参考深度量化学习中提到的codebook是什么意思?有点抽象但是我感觉意思和味道是对的】

【挖个小坑】VAE系列后面应该会读一读论文

3.3 图像变换器

其实就是加上了cls_token和mask_token的vit和一个线性层用来预测图像块的编码表示(code)

【论文笔记】BEIT:BERT PRE-TRAINING OF IMAGE TRANSFORMERS文章来源地址https://www.toymoban.com/news/detail-503128.html

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

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

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

相关文章

  • 【论文笔记】Improving Language Understanding by Generative Pre-Training

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

    2024年03月24日
    浏览(76)
  • 论文笔记--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日
    浏览(74)
  • 【论文笔记】SimMTM: A Simple Pre-Training Framework for Masked Time-Series Modeling

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

    2024年01月21日
    浏览(63)
  • 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日
    浏览(158)
  • 【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日
    浏览(446)
  • ChatGPT1论文解读《Improving Language Understanding by Generative Pre-Training》

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

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

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

    2024年04月13日
    浏览(51)
  • 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日
    浏览(44)
  • 跨模态检索论文阅读:(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日
    浏览(47)
  • 论文阅读【自然语言处理-预训练模型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日
    浏览(54)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包