Skip to main content

BEiT

BEiT (BERT Pretraining of Image Transformers) は、BERT の discrete token prediction を image に持ち込んだ masked image modeling です。Pixel ではなく、別途学習した discrete visual token を target として予測します。

構造

  • Discrete VAE (dVAE) で各 patch を 離散 codebook token に符号化
  • ViT は masked patch の token id を予測
  • Pixel 予測ではなく classification 問題 として解く

なぜ discrete token なのか

Pixel 予測は連続値 regression であり、natural image の細部 (texture、noise) まで再現することにエネルギーを使ってしまいます。Discrete token は、

  • 意味的な単位に近い (色のばらつきが吸収される)
  • BERT と同じ MLM framework が使える
  • Vision-language の token-level alignment と相性が良い

という利点があります。

数式で見る BEiT の token 予測

BEiT では、masked patch の pixel をそのまま回帰するのではなく、別の tokenizer が作った discrete visual token を分類問題として予測します。Mask された index 集合を M\mathcal{M}、見えている patch を xMˉx_{\bar{\mathcal{M}}} とします。Patch ii の discrete token を qiq_i とすると、loss は次のように書けます。

qi=Tokenizer(xi){1,,K}q_i = \mathrm{Tokenizer}(x_i) \in\{1,\dots,K\} LBEiT=iMlogpθ(qixMˉ)\mathcal{L}_{\mathrm{BEiT}} = -\sum_{i\in\mathcal{M}} \log p_\theta(q_i\mid x_{\bar{\mathcal{M}}})

ここで、KK は codebook size、pθ(qixMˉ)p_\theta(q_i\mid x_{\bar{\mathcal{M}}}) は visible patches から token qiq_i を予測する確率です。この式の気持ちは、「連続的な pixel の細かい値を当てるのではなく、画像 patch がどの視覚的な記号に属するかを当てる」というものです。

Pixel MSE では、色や texture の細部まで平均的に合わせる方向に学習が進みやすくなります。一方で BEiT の token prediction では、target が discrete class になるため、BERT の masked language modeling に近い形で学習できます。BEiT v2 では tokenizer 側を semantic feature に近づけることで、qiq_i が単なる低レベルな見た目ではなく、より意味的な単位を表すように改善しています。

BEiT の発展

  • BEiT v2: Tokenizer を semantic 強化 (CLIP feature を target に近づける)
  • BEiT-3: Vision、language、vision-language を一つの MoE モデルで統一

BEiT-3 は image / text / image-text の三領域 SoTA を一度に達成し、後続の MLLM の流れに影響しました。

MAE との比較

観点MAEBEiT
TargetPixel (連続値)Discrete token
LossReconstruction (MSE)Cross-entropy
Tokenizer不要dVAE が必要
Decoder軽量 ViT1-layer head
単純さより単純やや複雑

両者は補完的で、目的に応じて使い分けられます。

関連ページ

主なソース