Vision Transformer (ViT)
コンピュータビジョンにおけるVision Transformer(ViT)の能力をご覧ください。ViTがグローバルな画像コンテキストを捉え、CNNを上回る方法を学びます。
Vision Transformer(ViT)は、もともと自然言語処理(NLP)のために設計された非常に成功したTransformerモデルをコンピュータビジョン(CV)タスクに適用するニューラルネットワークアーキテクチャの一種です。Googleの研究者によって論文「An Image is Worth 16x16 Words」で紹介されたViTは、支配的な畳み込みニューラルネットワーク(CNN)アーキテクチャからの大きな脱却を表しています。ViTは、スライディングフィルターで画像を処理する代わりに、画像をパッチのシーケンスとして扱い、自己注意メカニズムを使用して、画像内の異なる部分間のグローバルな関係をキャプチャできるようにします。
Vision Transformerの仕組み
ViTの基本的な考え方は、Transformerがテキストを処理する方法を模倣するように画像を処理することです。このプロセスには、いくつかの重要なステップが含まれます。
- 画像パッチ処理: 入力画像は、最初に固定サイズの重ならないパッチのグリッドに分割されます。たとえば、224x224ピクセルの画像は、それぞれ16x16ピクセルの196個のパッチに分割される場合があります。
- パッチ埋め込み: 各パッチは単一のベクトルに平坦化されます。これらのベクトルは、より低次元の空間に投影され、「パッチ埋め込み」が作成されます。空間情報を保持するために、学習可能な「位置埋め込み」が各パッチ埋め込みに追加されます。
- Transformerエンコーダ:この埋め込みのシーケンスは、標準的なTransformerエンコーダに供給されます。自己注意レイヤーを通じて、モデルはすべてのパッチのペア間の関係を学習し、最初のレイヤーから画像全体のグローバルコンテキストをキャプチャできます。
- 分類ヘッド: 画像分類などのタスクの場合、追加の学習可能な埋め込み(BERTの[CLS]トークンと同様)がシーケンスに追加されます。Transformerからの対応する出力は、予測を生成するために最終的な分類レイヤーに渡されます。
ViT対CNN
ViTとCNNはどちらもコンピュータビジョンの基本的なアーキテクチャですが、アプローチが大きく異なります。
- 帰納バイアス:CNNは、畳み込み層とプーリング層を通じて、局所性や並進同変性のような、データに関する強い帰納バイアス(仮定)を持っています。ViTは、より弱い帰納バイアスを持っており、より柔軟性がありますが、データから直接パターンを学習することへの依存度が高くなります。
- データの依存性: ViTは、バイアスが弱いため、最先端のCNNよりも優れた性能を発揮するには、一般的に大規模なデータセット(例:ImageNet-21k)または広範な事前トレーニングが必要です。より小さなデータセットでは、CNNの方が一般的に汎化性能が優れています。そのため、ViTでは転移学習が非常に重要になります。
- Global vs. Local Context: CNNは、ローカルなパターンからグローバルなパターンへと階層的な特徴を構築します。対照的に、ViTは、最も初期のレイヤーからパッチ間のグローバルな相互作用をモデル化できるため、特定のタスクに対してより効果的に広範なコンテキストをキャプチャできる可能性があります。
- 計算コスト: ViTのトレーニングは計算負荷が高くなる可能性があり、多くの場合、かなりのGPUリソースが必要です。PyTorchやTensorFlowのようなフレームワークは、これらのモデルをトレーニングするための実装を提供します。
アプリケーションとハイブリッドモデル
ViTは、特にグローバルコンテキストの理解が重要な様々なアプリケーションにおいて、卓越した性能を示しています。
- 医用画像解析: ViT は、MRI や組織病理学的画像などの医用画像を解析するのに非常に効果的です。例えば、腫瘍検出では、ViT は遠く離れた組織間の関係を識別し、局所的なテクスチャのみに焦点を当てたモデルよりも正確に腫瘍を分類するのに役立ちます。
- 自動運転: 自動運転車では、ViTは物体検出とセグメンテーションのために複雑なシーンを分析できます。シーン全体をグローバルに処理することで、車両、歩行者、インフラストラクチャ間の相互作用をより良く理解できます。詳細については、複数の自動車AIに関する研究を参照してください。
ViTの成功は、ハイブリッドアーキテクチャにも影響を与えています。RT-DETRのようなモデルは、効率的な特徴抽出のためにCNN バックボーンと、オブジェクトの関係をモデル化するためのTransformerベースのエンコーダーデコーダーを組み合わせています。このアプローチは、CNNの効率とTransformerのグローバルなコンテキスト認識という、両方の長所を得ることを目指しています。
多くのリアルタイムアプリケーション、特にリソース制約のあるエッジデバイスでは、Ultralytics YOLOファミリー(YOLOv8やYOLO11など)のような高度に最適化されたCNNベースのモデルが、速度と精度のより良いバランスを提供することがよくあります。RT-DETRとYOLO11のトレードオフを理解するために、詳細な比較をご覧ください。ViTとCNNのどちらを選ぶかは、最終的には特定のタスク、利用可能なデータ、計算予算によって決まります。