Vision Transformer (ViT)
Vision Transformer (ViT)の力を探求しましょう。自己注意機構(Self-attention)とパッチトークン化が、CNNを超えてコンピュータビジョンをどのように革新するかをUltralyticsで学びます。
Vision Transformer (ViT) は、もともとNatural Language Processing (NLP)向けに設計された自己注意メカニズムを視覚タスクの解決に適応させたディープラーニングアーキテクチャです。ローカルのピクセルグリッドの階層を通じて画像を処理する従来のConvolutional Neural Network (CNN)とは異なり、ViTは画像を離散的なパッチのシーケンスとして扱います。このアプローチは、画期的な研究論文である"An Image is Worth 16x16 Words"によって一般に広く知られるようになり、純粋なTransformerアーキテクチャが畳み込み層に依存することなくcomputer vision (CV)で最先端のパフォーマンスを達成できることが示されました。グローバルなアテンションを活用することで、ViTは最初の層から画像全体にわたる長距離の依存関係を捉えることができます。
Vision Transformer の仕組み#
ViTの根本的な革新は、入力データの構造化の方法にあります。画像を標準的なTransformerと互換性のあるものにするために、モデルは視覚情報を一連のベクトルに分解し、言語モデルが単語の文を処理する方法を模倣します。
-
パッチのトークン化: 入力画像は、通常16x16ピクセルの固定サイズの正方形のグリッドに分割されます。各正方形はベクトルに平坦化され、実質的にビジュアルなtokenになります。
-
線形射影: これらの平坦化されたパッチは、トレーニング可能な線形層を通過して、高密度のembeddingsを作成します。このステップにより、生のピクセル値がモデルが処理できる高次元空間にマッピングされます。
-
位置エンコーディング: このアーキテクチャはシーケンスを並列処理し、順序や空間に関する本質的な理解を持たないため、学習可能なpositional encodingsがパッチの埋め込みに追加されます。これにより、モデルは各パッチが元の画像のどこに属しているかについての空間情報を保持できるようになります。
-
自己注意メカニズム: シーケンスはTransformerエンコーダーに入り、そこでself-attentionによってすべてのパッチが他のすべてのパッチと同時に相互作用できるようになります。これにより、ネットワークはグローバルなコンテキストを学習し、左上のピクセルが右下のピクセルとどのように関連しているかを理解できるようになります。
-
分類ヘッド: image classificationなどのタスクでは、特別な「クラストークン」がシーケンスの先頭に追加されることがよくあります。このトークンの最終的な出力状態は画像の集約表現として機能し、その後、multilayer perceptron (MLP)などの分類器にフィードされます。
Vision Transformer と CNN の比較#
両方のアーキテクチャは視覚データを理解することを目的としていますが、その動作原理には大きな違いがあります。CNNには、平行移動不変性として知られる強力な「帰納バイアス」があり、これは、ローカルな特徴(エッジやテクスチャなど)がその位置に関係なく重要であると本質的に仮定していることを意味します。これにより、CNNはデータ効率が非常に高く、小規模なdatasetsで効果を発揮します。
逆に、Vision Transformersは画像固有のバイアスが少なくなっています。JFT-300Mや完全なImageNetデータセットなどの大量のtraining dataを使用して、最初から空間関係を学習する必要があります。これによりトレーニングの計算負荷が高くなりますが、ViTは非常に優れたスケーラビリティを発揮します。十分なデータとcompute powerがあれば、ローカルな畳み込みでは見逃してしまう可能性のある複雑なグローバル構造を捉えることで、CNNを凌駕することができます。
実社会での応用#
グローバルなコンテキストを理解できる能力により、ViT は複雑で高い精度が求められる環境で特に有用です。
- 医療画像解析: healthcare AIにおいて、ViTはMRIや組織病理学スライドなどの高解像度スキャンを分析するために使用されます。たとえば、tumor detectionでは、ViTは組織内の微妙なテクスチャの異常とスライド全体にわたるより広範な構造的変化を相関させ、ローカル処理では見落とす可能性のある悪性パターンを特定できます。
- 衛星画像とリモートセンシング: ViTは、オブジェクト間の関係が広範囲に及ぶsatellite image analysisに優れています。たとえば、森林破壊の現場と遠く離れた林道を結び付けるには、景観の「全体像」を理解する必要があります。これは、標準的なCNNの限られた受容野よりも、ViTのグローバルなアテンションが優れているタスクです。
Ultralytics での Transformer の活用#
ultralyticsライブラリは、Transformerベースのアーキテクチャをサポートしており、最も注目すべきはRT-DETR (Real-Time Detection Transformer)です。主力製品であるYOLO26は、エッジデバイスでの速度と精度のバランスの良さから好まれることが多いですが、RT-DETRはグローバルコンテキストを優先するシナリオに対して強力な代替手段を提供します。
次のPythonの例は、事前トレーニング済みのTransformerベースのモデルをロードして推論を実行する方法を示しています。
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model (Vision Transformer-based)
model = RTDETR("rtdetr-l.pt")
# Run inference on an image source
# The model uses self-attention to detect objects globally
results = model("https://ultralytics.com/images/bus.jpg")
# Display the detection results
results[0].show()今後の展望#
ViTの高い計算コストに対処するため、研究は急速に進展しています。FlashAttentionなどの技術により、これらのモデルはより高速かつメモリ効率が高くなっています。さらに、CNNの効率性とTransformerのアテンションを組み合わせたハイブリッドアーキテクチャが一般的になりつつあります。こうした高度なワークフローを管理したいチームのために、Ultralytics Platformは、データにアノテーションを付け、クラウド経由で複雑なモデルをトレーニングし、多様なエンドポイントにデプロイするための統一された環境を提供します。






