本文へ移動

G検定(ジェネラリスト検定)

びじょんとらんすふぉーまー

Vision Transformer

ViT

Vision Transformer

Vision Transformer(ViT)は、画像を小さなパッチに分割し、NLPの単語と同じように系列として純粋なTransformerへ入力して画像分類を行うモデルです。CNNが主流だった画像認識にTransformerを直接持ち込みました。

詳しい説明

CNNが主流だった画像認識にTransformerを持ち込む

Vision Transformer(ViT)は、画像認識にTransformerをほぼそのまま適用したモデルです。自然言語処理(NLP)では、Transformerはすでに事実上の標準的な手法になっていました。一方でコンピュータビジョンでは、畳み込みを使うアーキテクチャ(CNN)が依然として主流でした。

それまでの画像認識での注意機構(アテンション)の使い方は、主に次の2通りでした。

  • 畳み込みネットワークと組み合わせて使う
  • 畳み込みネットワークの一部の部品を注意機構で置き換え、全体の構造はCNNのまま残す

畳み込みを完全に置き換えようとする研究もありました。しかし、それらは特殊な注意のパターンを使うため、理論上は効率的でも、現代のハードウェアアクセラレータの上ではうまく規模を拡大できていませんでした。そのため、大規模な画像認識では、ResNetのような古典的なアーキテクチャが最高性能を保っていました。

Vision Transformerは、このようにCNNに頼る必要はないことを示しました。画像パッチの系列に純粋なTransformerを直接適用するだけで、画像分類で非常に良い性能を出せることを示した点が、このモデルの意義です。

画像をパッチに分けて単語のように扱う仕組み

Vision Transformerの基本的な考え方は、NLPで成功したTransformerを、できるだけ手を加えずに画像へ適用することです。そのために、入力の作り方を次のように工夫します。

1. 画像を小さな領域(パッチ)に分割します。
2. 各パッチを線形埋め込みして、ベクトルに変換します。

3. これらのベクトルを並べた系列を、Transformerへの入力とします。

ここで重要なのは、画像パッチがNLPのトークン(単語)と同じように扱われる点です。文章を単語の並びとしてTransformerに入れるのと同じように、画像をパッチの並びとして入れます。Transformer本体の構造はNLPで使われる標準的なものをそのまま使い、画像に特有の部品は最小限にとどめています。

学習は、画像分類のタスクで教師あり学習として行います。

中規模データでの弱点と、その理由

Vision TransformerはどんなデータでもCNNより優れているわけではありません。ImageNetのような中規模のデータセットで、強い正則化をかけずに学習させると、同程度の規模のResNetよりも数ポイント低い、控えめな精度にとどまります。

この結果は予想できるものとして説明されています。CNNには、並進等価性(入力の位置がずれると出力も同じようにずれる性質)や局所性(近くの画素どうしの関係を重視する性質)といった帰納バイアスが、構造そのものに組み込まれています。Transformerには、こうしたCNN固有の帰納バイアスの一部が欠けています。そのため、学習データの量が十分でないと、うまく汎化できません。

つまり、CNNは画像に関する前提を構造として最初から持っているのに対し、Vision Transformerはそうした前提を持たない分、データから学ぶ必要がある、という対比になります。

大規模データでの事前学習と転移で真価を発揮する

一方で、大量のデータで事前学習を行い、そのモデルを複数の中規模または小規模の画像認識ベンチマーク(ImageNet、CIFAR-100、VTABなど)へ転移させると、Vision Transformerは最先端の畳み込みネットワークと比べて優れた結果を出します。しかも、学習に必要な計算資源はCNNよりも大幅に少なくて済みます。

まとめると、Vision Transformerの特徴は次の3点です。

  • 畳み込みを使わない純粋なTransformerを、画像パッチの系列に直接適用する
  • 画像パッチをNLPのトークン(単語)と同じように扱う
  • 中規模データだけではCNNにやや劣るが、大規模データでの事前学習と転移によって、少ない計算資源で優れた結果を出す

データの量が少ないときはCNNの帰納バイアスが有利に働き、データの量が十分に多いときはTransformerの利点が生きる、という関係を押さえておくと理解しやすくなります。

試験で問われること

G検定

  • Vision Transformerは、画像をどのような単位に分割し、それをNLPにおける何と同じように扱ってTransformerへ入力するか説明できますか。
  • それまでの画像認識で注意機構がCNNとどのような関係で使われていたか(併用、または一部の置き換え)と比べて、Vision Transformerが畳み込みを使わない純粋なTransformerを採用した点の違いを説明できますか。
  • ImageNetのような中規模データセットで強い正則化なしに学習したVision Transformerが、同程度の規模のResNetよりやや低い精度になる理由を、並進等価性と局所性という帰納バイアスの観点から説明できますか。
  • 大規模データでの事前学習と中小規模ベンチマークへの転移を行ったとき、Vision Transformerが最先端のCNNと比べて精度と学習時の計算資源の両面でどのような結果を示したか説明できますか。

最終更新日: 2026/09/23