JA EN
体系VLM・マルチモーダル
·★ 会員·論文·10分で読めます

論文解説: ViT — 画像を単語のように扱う

ViT原論文(Dosovitskiy et al., 2020/2021)を本文だけを根拠に読む。16×16のパッチを単語として扱うという一手、位置埋め込みのアブレーション、CNNの帰納バイアスを捨てた代償、そして「大規模データでCNNを超える」という条件付きの主張の中身。

対象imageタスクclassification

An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

一次資料 — この記事の根拠

論文の発表 2020-10-22この解説の公開 2026-08-065年9か月後

An Image is Worth 16x16 Words: Transformers for Image Recognition at ScaleAlexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov ほか · 2020-10-22 · v2arXiv:2010.11929論文ページ·PDF
原文の要旨(Abstract)を読む

While the Transformer architecture has become the de-facto standard for natural language processing tasks, its applications to computer vision remain limited. In vision, attention is either applied in conjunction with convolutional networks, or used to replace certain components of convolutional networks while keeping their overall structure in place. We show that this reliance on CNNs is not necessary and a pure transformer applied directly to sequences of image patches can perform very well on image classification tasks. When pre-trained on large amounts of data and transferred to multiple mid-sized or small image recognition benchmarks (ImageNet, CIFAR-100, VTAB, etc.), Vision Transformer (ViT) attains excellent results compared to state-of-the-art convolutional networks while requiring substantially fewer computational resources to train.


画素をそのまま並べると破綻する

自己注意は系列の要素どうしを総当たりで比べます。ならば画像も画素の列にすればよさそうですが、論文は関連研究の冒頭でこれを否定します。素朴に適用すると各画素が他の全画素に注意することになり、画素数に対して二次のコストがかかるためスケールしない。だから当時の研究は局所近傍だけ、疎な近似、軸ごと、といった特殊な注意パターンを設計しており、それらは「アクセラレータ上で効率的に実装するには複雑な工学を要する」(§2)。ここが出発点です。

FIG 1総当たりの計算量は要素数の2乗で伸びる。224×224をそのまま画素の列にすると5万要素で、桁が違う

パッチに切る、という一手

ViTの操作は単純です。画像 xRH×W×C\mathbf{x}\in\mathbb{R}^{H\times W\times C}P×PP\times P の固定サイズのパッチへ切り、平坦化して学習可能な線形射影で DD 次元に落とす。パッチ数は N=HW/P2N=HW/P^{2} で、これがそのままTransformerの実効系列長になります(§3.1)。

z0=[xclass;xp1E;xp2E;;xpNE]+Epos\mathbf{z}_{0}=[\mathbf{x}_{\text{class}};\,\mathbf{x}^{1}_{p}\mathbf{E};\,\mathbf{x}^{2}_{p}\mathbf{E};\cdots;\,\mathbf{x}^{N}_{p}\mathbf{E}]+\mathbf{E}_{pos}
(1)

xpiE\mathbf{x}^{i}_{p}\mathbf{E}ii 番目のパッチの埋め込み、xclass\mathbf{x}_{\text{class}} はBERTの [class] トークンに倣って先頭に足す学習可能なベクトル、Epos\mathbf{E}_{pos} が位置埋め込み。あとは標準のTransformerエンコーダに通し、最終層の先頭トークンの状態を画像表現とします(§3.1)。

この式は要するに、パッチを一列に並べ、どのパッチにも属さない「画像全体の判定を溜めるための席」を先頭にひとつ足し、それぞれの席に「元の画像のどこから来たか」を記したベクトルを足し込む、ということです。z0\mathbf{z}_{0} はその一列そのもので、エンコーダはこれを入力として受け取ります。

つまり「16×16の画素ブロック1個=単語1個」。タイトルはこの読み替えの宣言です。元のTransformerにできるだけ忠実に保つ意図は明示されていて、利点はNLP側のスケーラブルな実装をほぼそのまま流用できること(§3)。ViT-L/16 はLargeをパッチ16で使う意味で、系列長はパッチサイズの2乗に反比例するため、小さいパッチほど計算は高くつきます(§4.1)。

位置埋め込みは、ほとんど何でもよかった

位置埋め込みは学習可能な1次元のものを使います。2次元を意識した高度な埋め込みから有意な向上が観測されなかったから、というのが理由です(§3.1)。付録D.4のアブレーションは端的で、ImageNet 5-shot linear の値は位置埋め込み無し 0.61382、1次元 0.64206、2次元 0.64001、相対位置 0.64032。「有る/無い」の差は大きいが「どう符号化するか」の差はほぼ無い(表8)。入力が画素単位ではなくパッチ単位で空間解像度が 14×1414\times14 程度しかないため、どの方式でも同じくらい簡単に学べるのだろう、というのが論文の推測です。

そして §4.5 の可視化では、学習後の位置埋め込みは近いパッチほど似た値を持ち、行と列の構造が現れます。2次元の位相を勝手に学んでいた——これが手作りの2次元埋め込みが効かない理由の説明になる、と論文は書きます。位置の与え方はTransformerの位置エンコーディングも併せてどうぞ。

CNNでは局所性・2次元の近傍構造・平行移動同変性がモデル全体の各層に焼き込まれています。ViTではMLP層だけが局所的で平行移動同変であり、自己注意層は大域的。2次元の近傍構造が使われるのは画像をパッチに切る最初の一手と、解像度を変えたときの位置埋め込みの調整だけで、それ以外の空間関係はすべてゼロから学ぶ必要があります(§3.1「Inductive bias」)。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn et al.. (2020-10-22) An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です