Visual预训练模型:BEiT
创始人
2025-05-30 09:28:35

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ϕ​(z∣x)将图片像素x\bm xx映射为离散的tokens z\bm zz,重构目标为Ez∼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)]Ez∼qϕ​(z∣x)​[logpψ​(x∣z)],使用Gumbel-softmax relaxation训练网络参数。

重参数化技巧(Gumbel-Softmax)

Backbone Network: Image Transformer

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

  • 网络输入:H0=[e[s],Ex1p,...,ExNp]+Epos\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层网络:Hl=Transformer(Hl−1)\bm H^l=\text{Transformer}(\bm H^{l-1})Hl=Transformer(Hl−1)
  • 网络输出:HL=[h[S]L,h1L,...,hNL]\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]∈RD\bm e_{[\mathtt M]}\in\R^{D}e[M]​∈RD,经L层Transformer编码后得到隐状态{hiL}i=1N\{\bm h_{i}^L\}_{i=1}^N{hiL​}i=1N​,对于每一个掩盖的image patch,使用softmax分类层预测与之对应的visual tokens,预训练目标是最大化正确visual tokens的对数似然:
max⁡∑x∈DE[∑i∈Mlog⁡pMIM(zi∣xM)],pMIM(z′∣xM)=softmaxz′(WchiL+bc)\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) maxx∈D∑​E[i∈M∑​logpMIM​(zi​∣xM)],pMIM(z′∣xM)​=softmaxz′​(Wc​hiL​+bc​)

式中:

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

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

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]稳定训练,缩放每一层自注意力和前馈网络的输出矩阵(每层的最后一层线性投影层)至12l\frac{1}{\sqrt{2l}}2l​1​。

相关内容

热门资讯

{我来教教您}新众亿牛牛到底有... 您好:新众亿牛牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9158489】或【6534-9...
今日重大通报欢喜麻将有透视挂吗... 您好:欢喜麻将游戏这款游戏可以开挂,确实是有挂的,需要软件加微信【2418389】,很多玩家在欢喜麻...
经验传递“川麻圈 有挂吗”开挂... 您好:川麻圈这款游戏可以开挂,确实是有挂的,需要软件加微信【3398215】,很多玩家在川麻圈这款游...
科普实测“新海狮斗牛到底有挂吗... 您好:新海狮斗牛这款游戏可以开挂,确实是有挂的,需要软件加微信【69174242】,很多玩家在新海狮...
这款“新豪派可不可以开挂?”专... 您好:新豪派这款游戏可以开挂,确实是有挂的,咨询加微信【2667252】很多玩家在这款游戏中打牌都会...