1.1 CNNの限界とTransformerの台頭

畳み込みニューラルネットワーク(CNN)は、局所受容野とプーリング操作により画像の階層的表現を学習するモデルとして1990年代から画像認識の主流であった。しかしCNNは、畳み込み演算の性質上、画像全体の大局的な依存関係を捉えるためには多数の層を積み重ねる必要があり、遠距離ピクセル間の相互作用を直接モデル化することが困難であった。一方、自然言語処理(NLP)分野では、2017年Vaswaniらが提案したTransformerが、自己注意機構(Self-Attention)を用いて系列中の全要素間の依存関係を一度に計算できるため、長距離依存性の学習に優れ、機械翻訳や文書分類でCNNやRNNを凌駕する成果を上げていた。この成功を受け、コンピュータビジョン分野でもTransformerを画像に適用する試みが加速した。

1.2 ViTの誕生(論文『An Image is Worth 16x16 Words』)

2020年、Google BrainのDosovitskiyらは、画像を固定サイズのパッチ(例:16×16ピクセル)に分割し、各パッチをNLPにおける単語トークンと見なしてTransformerエンコーダに入力するVision Transformer(ViT)を提案した。従来のCNNベースの手法では、畳み込みという帰納バイアスを暗にモデルに組み込んでいたのに対し、ViTは極力帰納バイアス排除し、純粋なTransformerアーキテクチャで画像認識を実現した。大規模データセット(例:JFT-300M)で事前学習することで、ImageNet分類において最先端のCNNモデルと同等以上の性能を示した。

2.1 パッチ分割と線形埋め込み

ViTは入力画像(例:224×224×3)を、重複のない正方形パッチ(例:14×14のパッチグリッド、パッチサイズ16×16)に分割する。各パッチはフラット化されて一次元ベクトル(16×16×3=768次元)となり、学習可能な線形投影層を通じてD次元の埋め込みベクトル(例:D=768)に変換される。これにより、画像はトークン系列として扱われる。

2.2 位置エンコーディング

パッチ分割後の系列には本来、空間的な位置情報が失われる。そのため、各パッチ埋め込みに学習可能な位置エンコーディング(Position Embedding)を加算することで、パッチの絶対位置をモデルに伝える。位置エンコーディングは1Dの順序埋め込み(各パッチのラスタスキャン順)であるが、2Dの相対位情報を学習可能な設計も試みられている。

2.3 Transformerエンコーダ

ViTの中核は、L層のTransformerエンコーダブロックである。各ブロックは、マルチヘッド自己注意機構(Multi-Head Self-Attention, MHSA)とMLPブロック、およびLayer Normalization残差接続から構成される。

2.3.1 マルチヘッド自己注意機構

自己注意機構は、入力系列の各トークンに対してQuery、Key、Valueの3つのベクトルを生成し、クエリとキーの内積スケーリング付き)で注意スコアを計算、そのソフトマックス重みをValueに乗じて出力を得る。マルチヘッドではこれをh個のヘッドで並列実行し、出力を結合することで多様な注意パターンを学習する。ViTではパッチ系列の全対全注意(Full Attention)を計算するため、パッチ数Nに対して計算量はO(N²)となる。

2.3.2 MLPブロックとLayer Normalization

各注意機構の後に、2層のMLP(通常、拡張係数4のGELU活性化付き全結合層)が配置される。Layer Normalizationは各ブロックの直前(Pre-LN)に適用される。残差接続により勾配の安定化が図られ、深い層の学習が可能になる。

2.4 クラストークンと分類ヘッド

BERTと同様に、入力系列の先頭に特別な学習可能トークン[CLS]を追加する。このトークンは他のパッチトークンと同様にTransformerエンコーダを通過し、最終層の[CLS]出力を分類ヘッド(通常1層または2層のMLP)に入力してクラス予測を得る。分類ヘッドは出力クラス数に応じた線形層とソフトマックス関数からなる。

3.1 大規模データセットによる事前学習

3.1.1 ImageNet-21k、JFT-300M

ViTは大規模データセットでの事前学習が性能に不可欠である。標準的なImageNet-1k(120万枚)ではCNNに劣るが、ImageNet-21k(1400万枚)やGoogleの社内データセットJFT-300M(3億枚)で事前学習することで、CNNを超える精度を達成した。これは、Transformerの帰納バイアスの欠如を大量データで補うためである。

3.1.2 教師あり学習と自己教師あり学習

オリジナルのViTは教師あり学習(クロスエントロピー損失)で事前学習された。その後、自己教師あり学習の手法も発展し、Masked Image Modeling(マスクされたパッチのピクセル再構成、例:MAE)や対比学習(例:DINO)により、ラベルなしデータから効果的な表現を学習できるようになった。

3.2 ファインチューニング

3.2.1 解像度の調整

下流タスクでは、事前学習時の入力解像度よりも高い解像度(例:384×384)を用いることが多い。パッチサイズは固定(例:16)であるため、解像度を上げるとパッチ数が増加し、位置エンコーディングの系列長も変わる。この場合、事前学習済みの位置エンコーディングを補間(例:2Dバイキュービック補間)して新しいグリッドに適合させる。

3.2.2 分類ヘッドの置き換え

下流タスクのクラス数が事前学習と異なる場合、分類ヘッドを新たに初期化した線形層に置き換える。ファインチューニングは通常、低学習率で数エポック行われ、Transformerエンコーダ全体も更新される。

4.1 DeiT(Data-efficient Image Transformers)

4.1.1 知識蒸留とデータ拡張

DeiTは、少ないデータ(ImageNet-1kのみ)でもViTを効果的に学習するための手法を提案した。教師モデル(CNNのRegNet)から知識蒸留(Distillation Tokenを追加)を行い、RandAugment、MixUp、CutMixなどの強力なデータ拡張を導入することで、大規模データなしでCNNと同等の精度を達成した。

4.2 Swin Transformer

4.2.1 シフトウィンドウ注意機構

Swin Transformerは、Windowsベースの自己注意機構と、層を跨いでウィンドウをシフトする手法により、計算量を線形に抑えつつ階層的な特徴マップを生成する。パッチを小さな領域(ウィンドウ)に分割して注意を計算し、ウィンドウ間の情報交換をシフト操作で実現する。これにより、物体検出やセマンティックセグメンテーションなど、ピクセル単位のタスクに適したバックボーンとして広く使われている。

4.3 その他の拡張(ViT-Tiny, ViT-Large, Tokens-to-Token ViT)

ViTにはスケールバリエーションとして、ViT-Tiny(小規模)、ViT-Base、ViT-Large、ViT-Hugeなどが存在する。また、T2T-ViT(Tokens-to-Token ViT)は、パッチを徐々に結合してトークン数を減らすことで、局所情報を段階的に集約し、計算効率と性能を両立させている。

5.1 画像分類

ViTの最も基本的な応用は画像分類である。大規模データセット(ImageNet、CIFAR-100、細分化分類)でファインチューニングすることで、CNNと同等以上のトップ1精度を達成する。特に、自己教師あり学習(MAE)後のViTは、ImageNetで約88%のトップ1精度を記録している。

5.2 物体検出(DETR, ViTDet)

DETR(Detection Transformer)は、Transformerエンコーダ・デコーダを用いたエンドツーエンドの物体検出手法であり、アンカーボックスやNMSを排除した。ViTDetは、ViTをバックボーンとして用い、シンプルな特徴ピラミッドネットワークを組み合わせることで、物体検出タスクで強力な性能を示した。

5.3 セマンティックセグメンテーション(SETR)

SETR(SEgmentation TRansformer)は、ViTをエンコーダとして用い、デコーダでピクセル単位のセグメンテーションマップを出力する。全階層で大局的な特徴を利用できるため、特にセグメンテーションの長距離依存性が重要なタスクで効果を発揮する。

5.4 動画理解(Video Transformer)

動画ではフレーム間の時間情報が重要となる。Video Transformer(例:TimeSformer、VideoViT)は、空間次元と時間次元に分割された注意機構(Divided Space-Time Attention)を用いて、動画クリップの認識、行動検出、ビデオキャプショニングなどに応用されている。

6.1 長所

6.1.1 大局的な特徴の捉えやすさ

ViTは自己注意機構により、画像内の任意の2点間の関係を直接計算できるため、物体の部品間の長距離依存性や背景との関係をCNNより容易に捉える。これにより、特に大規模データでの事前学習時に優れた表現学習が可能となる。

6.1.2 スケーラビリティ

ViTはモデルサイズ(層数、埋め込み次元、ヘッド数)とデータ量に対して性能がスケールしやすい。計算資源が許す限り、より大きなモデルとデータで性能が向上することが実証されている(Scaling Laws)。また、CNNのように畳み込みカーネルの設計に依存しないため、アーキテクチャの拡張が容易である。

6.2 短所

6.2.1 計算コストとデータ要求量

パッチ数Nに対して自己注意の計算量がO(N²)であるため、高解像度画像では計算コストが爆発的に増大する。また、帰納バイアスが弱いために、小~中規模データセットではCNNに劣り、大量の訓練データ(数百万~数億枚)が必要となる。ファインチューニング時の解像度変更も位置エンコーディングの補間を要する。

6.2.2 位置エンコーディングの固定性と帰納バイアスの欠如

事前学習時の位置エンコーディングは固定長であり、入力解像度が変わると補間による品質低下が生じる。また、CNNが持つ翻訳等価性や局所受容野といった帰納バイアスを持たないため、限られたデータでは過学習しやすく、データ拡張や正則化の工夫が不可欠である。

7.1 効率化(効率的注意機構、ハイブリッドモデル)

ViTのO(N²)問題に対し、線形注意(Linear Attention)や補助的な低ランク注意、スパース注意(シフトウィンドウ、軸注意)などが提案されている。また、CNNの階層的局所処理とTransformerの大域注意を組み合わせたハイブリッドモデル(例:BoTNet、CoAtNet)が、計算効率と性能のバランスを改善している。

7.2 マルチモーダルへの応用

ViTは画像エンコーダとして、CLIP(Contrastive Language–Image Pre-training)などのビジョン・ランゲージモデルの中核を担っている。テキストと画像の埋め込みを共通空間に整列させることで、ゼロショット分類や画像検索が実現された。今後は、音声や3Dデータなど他のモダリティとの融合が進むと期待される。

7.3 ViTとCNNの融合

ViTの大局的注意とCNNの局所的帰納バイアスを相互補完する研究が盛んである。例えば、ConvNeXtはCNNにViTの設計思想(逆ボトルネック、GELU、LayerNorm)を導入して性能を向上させた。押しも押されもせぬ両者のハイブリッドが、将来的なビジョンバックボーンの主流となる可能性がある。