「BEiT」BERT Pre-Training of Image Transformers

1 核心思想

BEiT 提出了一种自监督学习图像表征的方法,核心思想是预训练任务实现 BEiT encoder 分类预测 mask patch 的 token。思路迁移自 BERT 的 encoder 结构,图像输入处理一方面将图像转为 patch 序列(ViT) ,另一方面用固定范围的 token 代替图片像素。

预训练 BERT: masked image modeling + 下游任务: image classification and semantic segmentation

「BEiT」BERT Pre-Training of Image Transformers_第1张图片
思路:

  1. 给定图片x

  2. 变成 N 个image patches

  3. 变成 N 个visual tokens

  4. 随机盖住 40%的 img patches, 替换为可学习的编码

  5. 把盖住替换后的编码 与原始的 visual tokens 通过 BEiT 的 L层 encoder, 得到一个 h L h^L hL 向量用来表示这个图片x

  6. 让向量 h L h^L hL通过一个分类器,目的是预测随机盖住 patch 的 visual tokens

  7. 训练过程使得分类器能使得预测类别正确的概率最大

2 Methods

2.1 图片表示

图像 patch

BEiT 使用ViT的方法,把一张图片转换为一系列小 patch, N = H W / P 2 N=HW/P^2 N=HW/P2:N = 14, P = 16, H = W = 224; 224 * 224 变成 14* 14 个 16 * 16 的 patch

视觉 token

用 token 代替 像素,把一张图片变成离散的 tokens 。字典 V 包含了所有离散 tokens 的索引 (indices),文章中 |V| = 8192。

视觉 token 可以理解为是一个取值在 [0, 8192] 的数字,是如何生成的呢?dVAE 模型,借用论文 Zero-Shot Text-to-Image Generation 的 tokenizer 与 decoder,Github 地址 https://github.com/openai/DALL-E

VAE 原理与EM算法类似,数理可证明最大化 log P(x) 等价求最小重构损失与KL分散度之和。论文提出构建推断网络减少重构损失、生成网络减少KL散度达到拟合 P(x) 的目的。

dVAE 是有bottleneck的卷积ResNet网络,encoder 最后一层输出是 32328192 logits 做分类。(encoder 第一层77,最后一层11,decoder 都是第一层和最后一层都是 1*1 卷积)

Zero-shot (OpenAI 21.02)是文本生成图像的自回归transformer模型。分两个阶段:

Stage1: dVAE 把 256256 的图片分割为3232后,变成1024个tokens,取值范围是8192

Stage2: 256 BPE-encoded 的文本 tokens 与 1024个图像 tokens 结合作为输入,训练一个自回归 transformer,刻画文本和图像 token 的联合概率分布。

2.2 主干网络:图片 transformer

2.3 Pre-training BEiT: MIM

遮住一部分 40% 图像 patch, 预测视觉 token。也不是完全随机盖住 40%, 而是通过 blockwise masking
「BEiT」BERT Pre-Training of Image Transformers_第2张图片

即随机生成 s, r, a, t,计算区间。如果 mask ratio 不达40% 重复随机生成 s, r, a, t

你可能感兴趣的:(-江户川-的自监督论文集,bert,深度学习,计算机视觉)