コンピュータ・ビジョンにおけるヴィジョン・トランスフォーマー(ViT)の威力をご覧ください。グローバルな画像コンテキストを捉えることで、どのようにCNNを凌駕するのかを学んでください。
ヴィジョン・トランスフォーマー(ViT)は、もともと自然言語処理(NLP)用に設計されたトランスフォーマー・モデルを応用したニューラルネットワーク・アーキテクチャの一種である。Google 研究者が「画像は16x16の言葉に値する」という論文で紹介したViTは、トランスフォーマーの自己アテンションメカニズムを画像パッチのシーケンスに直接適用し、画像処理をシーケンスのモデリングタスクとして扱う。このアプローチは、コンピュータ・ビジョン(CV)における畳み込みニューラルネットワーク(CNN)の優位性からの大きな転換を意味する。
ViTは、畳み込みフィルタを用いて画像をピクセルごとに処理する代わりに、まず入力画像を固定サイズで重なりのないパッチに分割する。次に、これらのパッチはベクトルに平坦化され、線形に埋め込まれ、空間情報を保持するために位置埋め込みで補強される(NLPで単語の位置がエンコードされる方法に似ている)。この一連のベクトルは、次に標準的なTransformerエンコーダーに送られる。Transformerエンコーダーは、マルチヘッド自己注意のレイヤーを使って、異なるパッチの重要度を相対的に評価する。Transformerエンコーダからの最終出力は、通常、画像分類のようなタスクのための単純な分類ヘッド(多層パーセプトロンのような)に渡される。このアーキテクチャにより、ViTは画像内の長距離依存性とグローバルコンテキストを効果的にモデル化することができる。
Vision Transformersは、特にImageNetのようなデータセットや、さらに大規模な独自のデータセットで大規模な事前学習を行うことで、そのスケーラビリティと印象的なパフォーマンスにより、現代のディープラーニングにおいて非常に重要なものとなっている。グローバルなコンテキストをモデル化する能力により、基本的な分類にとどまらず、以下のような幅広いCVタスクに適している:
ViTは、Ultralytics HUBのようなプラットフォームやHugging Face Transformersのようなライブラリに統合されつつあり、以下のようなフレームワークを使って研究や展開にアクセスできるようになっている。 PyTorchや TensorFlow.また、以下のようなツールを使って、NVIDIA Jetsonや Google EdgeTPUようなデバイス上でエッジAIを展開するために最適化することもできる。 TensorRT.
ViTもCNNもコンピュータ・ビジョンの基礎となるアーキテクチャだが(視覚モデルの歴史を参照)、そのアプローチは大きく異なる:
ViTとCNNのどちらを選択するかは、特定のタスク、利用可能なデータセット、計算リソースに依存することが多い。ViTは一般的に、大量の学習データが利用可能で、グローバルなコンテキストが最も重要な場合に優れている。のバックボーンとして使用されているようなCNNは、そのようなタスクに適している。 Ultralytics YOLOファミリー(例 YOLOv8YOLOv10、 YOLO11)は、特に制約のあるデバイス上でのリアルタイムの物体検出において、非常に効果的かつ効率的であり続けている。RT-DETRように)畳み込み特徴と変換層を組み合わせたハイブリッド・アーキテクチャも、両方のアプローチの長所を活用しようとするもので、有望な方向性を示している。ViTであれCNNベースであれ、事前に訓練されたモデルを微調整することは、転移学習のような技術を用いた一般的な手法である。