1行定義
Vision Transformerとは、画像を小さな正方形のパッチに分けて単語の列のように扱い、Transformerで画像を分類するモデルのことです。
くわしく
Vision Transformer(ViT)は、2020年にGoogleのAlexey Dosovitskiyらが発表した画像分類のモデルです。画像を16×16画素ほどの小さな正方形(パッチ)に切り分け、それぞれを文章中の単語のように扱います。
しくみ
- 画像をパッチに分けます。224×224画素の画像を16×16画素で区切ると、196枚のパッチになります。
- 各パッチの画素を1列に並べ、線形変換で1つのベクトル(埋め込み)にします。
- 列の先頭に分類用の特別なトークンを加え、各パッチが画像のどこにあったかを示す位置埋め込みを足します。
- Transformerのエンコーダに入力し、分類用トークンの出力からクラスを予測します。
Self-Attentionにより、最初の層からすべてのパッチどうしの関係を計算でき、画像全体を見渡せます。
CNNとの違いと大規模データ
CNNは、近くの画素どうしの関係を重視する(局所性)、同じ模様は位置がずれても同じように捉える、といった画像向けの前提を構造として組み込んでいます。こうした前提を帰納バイアスと呼びます。
ViTは帰納バイアスが少ないぶん、データから多くを学ぶ必要があります。論文では、ImageNet程度のデータだけで強い正則化なしに学習すると、同程度の大きさのResNetより精度がやや劣りました。一方、約1,400万枚のImageNet-21kや約3億枚のJFT-300Mで事前学習してから転移すると、当時最高水準のCNNに並ぶか上回る精度を、より少ない学習の計算量で達成しました。
位置づけ
ViTは、自然言語処理で成功したTransformerが、画像認識でも主役になりうることを示しました。以後、マルチモーダルのCLIPなど、画像を扱う多くのモデルでViTの構成が使われています。
覚え方
「画像は16×16の単語でできた文章」と覚えます。
G検定での出題
出題のされ方
畳み込みを使わず画像をパッチの系列としてTransformerに入力する点、大規模なデータでの事前学習が必要な理由(帰納バイアスの少なさ)、CNNとの違いが問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| Vision Transformerこのページの用語 | 画像を小さな正方形のパッチに分けて単語の列のように扱い、Transformerで画像を分類するモデル |
| CNN | 小さなフィルタを入力の上でずらしながら特徴を取り出す畳み込み層を中心に組み立てた、ニューラルネットワーク |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
Vision Transformerの論文では、ImageNet程度の規模のデータだけで強い正則化をかけずに学習した場合、同程度の大きさのResNetより精度がやや低かった。
答えを見る
答え ◯ 正しい
CNNが構造として備える局所性などの前提(帰納バイアス)が少ないためです。より大規模なデータで事前学習すると、CNNと同等以上の精度になりました。
-
Vision Transformerは、各パッチが画像のどこにあったかをモデルが自然に区別できるため、位置の情報を加える必要がない。
答えを見る
答え × 誤り
Self-Attentionは並び順を区別しません。そのため、各パッチの埋め込みに位置埋め込みを足して、位置の情報を与えます。
-
元のVision Transformerでは、パッチの列の先頭に分類用の特別なトークンを加え、そのトークンに対応する出力からクラスを予測する。
答えを見る
答え ◯ 正しい
BERTの先頭トークンと同じ考え方です。Self-Attentionで全パッチの情報を集めたこのトークンの出力を、分類に使います。