Vision Transformer(ViT)

Vision Transformer

Vision Transformerとは

Vision Transformer(ViT)は、2020年にGoogleの研究チームが発表した、Transformerアーキテクチャを画像認識に応用したモデルです。従来の画像認識で主流だったCNNを使用せず、画像をパッチに分割してトークンとして扱い、Transformerのエンコーダーで処理するアプローチを取ります。大規模データでの事前学習により、CNNを上回る性能を達成しました。

表:Vision Transformer(ViT)の要点まとめ
ひとことで言うと画像を小さなタイルに切り、単語のように扱ってTransformerで処理するモデル。
何がうれしいか画像全体の離れた場所どうしの関係を捉えやすく、大規模データで高精度。
注意点学習に非常に多くの画像が必要。データが少ない場合はCNNのほうが有利。

ViTの構造

ViTは入力画像を固定サイズのパッチ(通常16×16ピクセル)に分割し、各パッチを線形変換で埋め込みベクトルに変換します。これにクラストークン[CLS]と位置エンコーディングを追加し、標準的なTransformerエンコーダーに入力します。最終的な[CLS]トークンの表現を用いて分類を行います。

図:ViTが画像を読むしくみ
1タイルに分割16×16のパッチに切る
▶
21枚ずつベクトル化単語のように扱う
▶
3位置情報を付与どこのタイルか伝える
▶
4自己注意で処理タイル同士の関係を計算
▶
5分類結果画像全体のラベル

CNNとの比較

ViTは帰納バイアス(局所性、平行移動等変性)がCNNより弱いため、小規模データでは性能が劣りますが、大規模データではCNNを上回ります。ViTの自己注意機構は画像全体の大域的な関係を直接捉えられるのが強みです。一方、パッチ分割による局所的な情報の損失が課題として指摘されています。

ViTの発展と影響

ViTの登場以降、DeiT(データ効率の改善)、Swin Transformer(階層的な構造と窓アテンション)、BEiT(マスク画像モデリング)など、多くの改良版が提案されています。Swin Transformerは計算効率と性能の両面でViTを改善し、物体検出やセグメンテーションでも優れた成果を上げています。ViTはコンピュータビジョンにおけるTransformerの可能性を実証した画期的な研究です。