Visual预训练模型:BEiT、BEiT v2

BEiT: BERT Pre-Training of Image Transformers

基于Image Transformers的双向编码、自监督视觉表征模型,使用Masked Image Modeling(MIM)任务进行预训练。图1为预训练过程。

预训练前,利用discrete variational autoencoder(dVAE)以自编码的方式训练词表大小为8192的“image tokenizer”,以将图片切分为离散的visual tokens。
预训练时,图像有image patches和visual tokens两种表示,首先将图片大小缩放至224x224,以网格法分割成14x14的patches,每个patch的大小为16x16,。随机掩盖部分image patches,即图中灰色的patches替换为[M],拉平作为视觉Transformer输入,预训练任务是将利用视觉Transformer输出的编码向量,还原掩盖的image patches对应的visual tokens。

在这里插入图片描述

Image Patch

使用网格分割法,将224x224的图片分割成14x14的patches,每个patch的大小为16x16。

Visual Token

以dVAE方式训练image tokenizer,模型包含tokenizer和decoder两部分。

Tokenizer q ϕ ( z ∣ x ) q_\phi(\bm z|\bm x) qϕ(zx)将图片像素 x \bm x x映射为离散的tokens z \bm z z,重构目标为 E z ∼ q ϕ ( z ∣ x ) [ log ⁡ p ψ ( x ∣ z ) ] \mathbb{E}_{\bm z\sim q_\phi(\bm z|\bm x)}[\log p_\psi(\bm x|\bm z)] Ezqϕ(zx)[logpψ(xz)],使用Gumbel-softmax relaxation训练网络参数。

重参数化技巧(Gumbel-Softmax)

Backbone Network: Image Transformer

使用标准Transformer作为网络骨架。对于image patche序列 x \bm x x,使用矩阵 E ∈ R P 2 C × D \bm E\in \R^{P^2C\times D} ERP2C×D,将image patch线性投影为patch embeddings。输入序列头部添加[S],并与1D位置嵌入相加后作为骨架网络输入。

  • 网络输入: H 0 = [ e [ s ] , E x 1 p , . . . , E x N p ] + E p o s \bm H^0=[\bm e_{[\mathtt s]}, \bm E\bm x_1^p, ..., \bm E\bm x_N^p] + \bm E_{\mathtt{pos}} H0=[e[s],Ex1p,...,ExNp]+Epos
  • 第l层网络: H l = Transformer ( H l − 1 ) \bm H^l=\text{Transformer}(\bm H^{l-1}) Hl=Transformer(Hl1)
  • 网络输出: H L = [ h [ S ] L , h 1 L , . . . , h N L ] \bm H^L=[\bm h_{[\mathtt S]}^L, \bm h_1^L, ..., \bm h_N^L] HL=[h[S]L,h1L,...,hNL]

Pre-Training BEIT: Masked Image Modeling

随机将40%的image patches替换为可学习嵌入 e [ M ] ∈ R D \bm e_{[\mathtt M]}\in\R^{D} e[M]RD,经L层Transformer编码后得到隐状态 { h i L } i = 1 N \{\bm h_{i}^L\}_{i=1}^N {hiL}i=1N,对于每一个掩盖的image patch,使用softmax分类层预测与之对应的visual tokens,预训练目标是最大化正确visual tokens的对数似然:
max ⁡ ∑ x ∈ D E [ ∑ i ∈ M log ⁡ p M I M ( z i ∣ x M ) ] , p M I M ( z ′ ∣ x M ) = softmax z ′ ( W c h i L + b c ) \max \sum_{\bm x\in\mathcal D}\mathbb E\bigg[\sum_{i\in\mathcal M}\log p_{\mathtt{MIM}}(z_i|x^{\mathcal M})\bigg],\quad p_{\mathtt{MIM}(z'|x^{\mathcal M})}=\text{softmax}_{z'}(\bm W_c\bm h_i^L+\bm b_c) maxxDE[iMlogpMIM(zixM)],pMIM(zxM)=softmaxz(WchiL+bc)

式中:

  • D \mathcal D D,训练语料库;
  • M \mathcal M M,随机掩盖的位置;
  • x M x^{\mathcal M} xM,使用 M \mathcal M M掩盖的图像;

算法1 Blockwise Masking
输入: N( = h × w =h\times w =h×w) image patches
输出: 掩盖位置 M \mathcal M M
M ← { } \mathcal M \leftarrow \{\} M{}重复以下步骤
  采样blocksize, s ← R a n d ( 16 , 0.4 N − ∣ M ∣ ) s\leftarrow \mathtt{Rand}(16,0.4N-|\mathcal M|) sRand(16,0.4NM)
  采样行比率, r ← R a n d ( 0.3 , 1 / 0.3 ) r\leftarrow \mathtt{Rand}(0.3,1/0.3) rRand(0.3,1/0.3)
  计算采样行列数, a ← s ⋅ r ; b ← s / r a\leftarrow \sqrt{s·r}; b\leftarrow \sqrt{s/r} asr ;bs/r
  采样block的左上点, t ← R a n d ( 0 , h − a ) ; l ← R a n d ( 0 , w − b ) t\leftarrow \mathtt{Rand}(0,h-a);l\leftarrow \mathtt{Rand}(0,w-b) tRand(0,ha);lRand(0,wb)
  合并采样结果, M ← M ⋃ { ( i , j ) : i ∈ [ t , t + a ] , j ∈ [ l , l + b ] } \mathcal M\leftarrow \mathcal M \bigcup \{(i,j):i\in[t, t+a], j\in[l,l+b]\} MM{(i,j):i[t,t+a],j[l,l+b]}
直到: ∣ M ∣ > 0.4 N |\mathcal M|>0.4N M>0.4N
返回: M \mathcal M M

From the Perspective of Variational Autoencoder

BEiT使用两阶段预训练,一阶段预训练tokenizer,二阶段预训练MIM,预训练可被看作为变分自编码器。(没看懂

Pre-Training Setup

网络架构与ViT-Base一致,12层Transformer,隐藏层维度768,注意力头12,前向网络中间维度3072。patch size为16x16,image tokenizer直接使用[RPG+21],词表大小为8192。

预训练数据集ImageNet-1K,含120万张图片,使用随机缩放、裁剪、水平翻转、色彩抖动图像增强策略,图片分辨率为224x224。使用网格法分割成14x14个image patches,并随机掩盖至多75个patches(约40%)。

预训练500k步,800epochs,batch size为2k,Adam β 1 , β 2 \beta1,\beta2 β1,β2为0.9和0999,学习率1.5e-3,warmup 10epochs,学习率余弦衰减,weight decay 0.05,随机深度0.1,不使用dropout。16 V100 32GB耗时5天。

所有参数初始化范围至[-0.02, 0.02]稳定训练,缩放每一层自注意力和前馈网络的输出矩阵(每层的最后一层线性投影层)至 1 2 l \frac{1}{\sqrt{2l}} 2l 1


BEiT v2: Masked Image Modeling with Vector-Quantized Visual Tokenizers

使用semantic-rich tokenizer作为重建目标,以系统的方式将MIM从像素级提升为语义级。通过向量化知识蒸馏训练tokenizer,可将连续语义空间离散为紧凑代码,然后在通过MIM任务重建image patches中的被掩盖的visual tokens。此外,还引入了patch aggregation strategy,可增强discrete image patches中的全局语义表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值