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 は最初から層全体にわたり、画像全体の長距離依存関係を捉えることができます。
Link to this sectionVision Transformer の仕組み#
ViT の基本的な革新性は、入力データの構造化方法にあります。画像を標準的な Transformer と互換性のあるものにするために、このモデルは視覚情報をベクトルシーケンスへと分解します。これは、言語モデルが単語の文を処理する方法を模倣したものです。
-
パッチトークン化 (Patch Tokenization): 入力画像は、通常 16x16 ピクセルの固定サイズ正方形グリッドに分割されます。各正方形はベクトルに平坦化され、実質的に視覚的な token となります。
-
線形投影 (Linear Projection): これらの平坦化されたパッチは、学習可能な線形層を通過し、高密度な embeddings を生成します。このステップにより、生のピクセル値がモデルで処理可能な高次元空間へマッピングされます。
-
位置エンコーディング (Positional Encoding): このアーキテクチャはシーケンスを並列処理するため、順序や空間に関する本質的な理解を欠いています。そのため、学習可能な positional encodings がパッチ埋め込みに追加されます。これにより、モデルは各パッチが元の画像のどこに位置するのかという空間情報を保持できるようになります。
-
セルフアテンション機構 (Self-Attention Mechanism): シーケンスは Transformer エンコーダーに入力され、そこで self-attention によってすべてのパッチが他のすべてのパッチと同時に相互作用できるようになります。これにより、ネットワークはグローバルなコンテキストを学習し、左上隅のピクセルが右下隅のピクセルとどのように関連しているかを理解することが可能になります。
-
分類ヘッド (Classification Head): image classification のようなタスクでは、多くの場合、特殊な「クラストークン」がシーケンスの先頭に追加されます。このトークンの最終的な出力状態は画像全体の集約された表現として機能し、それが multilayer perceptron (MLP) などの分類器に供給されます。
Link to this sectionVision Transformer と CNN の比較#
どちらのアーキテクチャも視覚データの理解を目的としていますが、その運用哲学には大きな違いがあります。CNN は「翻訳不変性」と呼ばれる強力な「帰納的バイアス」を備えています。つまり、CNN は局所的な特徴(エッジやテクスチャなど)がその位置に関係なく重要であると本質的に想定しています。このため、CNN は高いデータ効率を誇り、小規模な datasets でも効果を発揮します。
Conversely, Vision Transformers have less image-specific bias. They must learn spatial relationships from scratch using massive amounts of training data, such as the JFT-300M or full ImageNet datasets. While this makes training more computationally intensive, it allows ViTs to scale remarkably well; with sufficient data and compute power, they can outperform CNNs by capturing complex global structures that local convolutions might miss.
Link to this section実社会での応用#
グローバルなコンテキストを理解できる能力により、ViT は複雑で高い精度が求められる環境で特に有用です。
- 医療画像解析: healthcare AI において、ViT は MRI や組織病理スライドなどの高解像度スキャンの解析に使用されます。例えば、tumor detection では、ViT が組織内の微妙なテクスチャの異常とスライド全体にわたるより広い構造的な変化を相関させることで、局所的な処理では見逃される可能性のある悪性のパターンを特定できます。
- 衛星画像とリモートセンシング: ViT は、オブジェクト間の関係が広範囲に及ぶ satellite image analysis に優れています。例えば、森林破壊の現場と遠く離れた伐採用の道路を関連付けるには、景観の「全体像」を理解する必要があり、このタスクにおいては、ViT のグローバルアテンションが標準的な CNN の限られた受容野よりも優れたパフォーマンスを発揮します。
Link to this sectionUltralytics での 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()Link to this section今後の展望#
ViT の高い計算コストに対処するための研究が急速に進んでいます。FlashAttention のような技術により、これらのモデルはより高速でメモリ効率の高いものになっています。さらに、CNN の効率性と Transformer のアテンションを組み合わせたハイブリッドアーキテクチャも一般的になりつつあります。こうした高度なワークフローを管理したいチームのために、Ultralytics Platform は、データのラベル付け、クラウド経由での複雑なモデルのトレーニング、そして多様なエンドポイントへのデプロイを行うための統合環境を提供しています。






