Self-Attention
ディープラーニングにおけるセルフアテンションの基礎を解説します。Query、Key、ValueベクトルがTransformerとUltralytics YOLO26の優れたAIパフォーマンスをどのように支えているかを学びましょう。
セルフアテンションは、ディープラーニングにおける基礎的なメカニズムであり、モデルが入力シーケンス内の各要素の重要度を相互に関連付けて重み付けすることを可能にします。データを順次処理したり、局所的な近傍のみに注目したりする従来のアーキテクチャとは異なり、セルフアテンションはニューラルネットワーク全体が同時にコンテキスト全体を検証できるようにします。この機能により、システムは文章中の単語や画像内の特定の領域といった、データ内の離れた部分同士の複雑な関係を特定できるようになります。これは、Transformerアーキテクチャの核心を成す構成要素であり、生成AIや現代の知覚システムにおける飛躍的な進歩の原動力となっています。
Link to this sectionセルフアテンションの仕組み#
このメカニズムは、各入力特徴量に対して「アテンションスコア」と呼ばれる重みを割り当てることで、認知的な集中を模倣します。これらのスコアを計算するために、モデルは入力データ(通常はエンベディングとして表現されます)をQuery、Key、Valueという3つの異なるベクトルに変換します。
- Query (Q): シーケンスの残りの部分から関連するコンテキストを探している現在のアイテムを表します。
- Key (K): シーケンス内のすべてのアイテムに対するラベルまたは識別子として機能し、Queryとの照合に使用されます。
- Value (V): 集約されるアイテムの実際の情報コンテンツが含まれています。
モデルは、ある要素のQueryを他のすべての要素のKeyと比較して互換性を判定します。これらの互換性スコアは、softmax関数を使用して正規化され、確率のような重みが作成されます。これらの重みはValueに適用され、コンテキストが豊富な表現を生成します。このプロセスにより、大規模言語モデル (LLMs)や視覚システムは、ノイズを除去しながら重要な情報を優先的に処理できるようになります。
Link to this section実社会での応用#
セルフアテンションの汎用性は、人工知能 (AI)のさまざまな分野で広く採用される結果となりました。
- 自然言語処理 (NLP): 機械翻訳などのタスクにおいて、セルフアテンションは代名詞とその指示対象を結びつけることで曖昧さを解消します。例えば、「The animal didn't cross the street because it was too tired(動物は疲れていたので通りを渡らなかった)」という文章では、モデルはセルフアテンションを使用して、「it」を「通り(street)」ではなく「動物(animal)」と強く関連付けます。このようなコンテキストの認識能力が、Google Translateのようなツールを支えています。
- グローバルな画像コンテキスト: コンピュータビジョン (CV)では、Vision Transformer (ViT)のようなアーキテクチャが画像をパッチに分割し、セルフアテンションを適用してシーンをグローバルに理解します。これは、オブジェクトの識別がその周囲環境の理解に依存する複雑な環境における物体検出において極めて重要です。
Link to this section関連用語の区別#
しばしば同様の概念と並べて議論されますが、これらの用語には明確な技術的定義があります。
- アテンションメカニズム: モデルがデータの特定の箇所に集中できるようにする技術の広範なカテゴリーです。これには、モデルが(デコーダー出力のような)1つのシーケンスを使用して(エンコーダー入力のような)別のシーケンスをクエリするクロスアテンションが含まれます。
- セルフアテンション: Query、Key、Valueのすべてが同一の入力シーケンスから派生する特定のアテンションタイプです。単一のデータセット内の内部依存関係を学習するように設計されています。
- Flash Attention: スタンフォード大学の研究者によって開発された最適化アルゴリズムであり、数学的な出力を変更することなく、GPU上でのセルフアテンションの計算を大幅に高速化し、メモリ効率を向上させます。
Link to this sectionコード例#
The following Python snippet demonstrates how to use RTDETR, a Transformer-based object detector included in the ultralytics package. Unlike standard convolutional networks, this model relies heavily on self-attention to process visual features.
from ultralytics import RTDETR
# Load the RT-DETR model which utilizes self-attention for detection
model = RTDETR("rtdetr-l.pt")
# Perform inference on an image to detect objects with global context
# Self-attention helps the model understand relationships between distant objects
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of objects detected
print(f"Detected {len(results[0].boxes)} objects using Transformer attention.")Link to this section進化と将来の展望#
Self-attention effectively solved the vanishing gradient problem that hindered earlier Recurrent Neural Networks (RNNs), enabling the training of massive foundation models. While highly effective, the computational cost of standard self-attention grows quadratically with sequence length. To address this, current research focuses on efficient linear attention mechanisms.
Ultralytics integrates these advancements into state-of-the-art models like YOLO26, which combines the speed of CNNs with the contextual power of attention for superior real-time inference. These optimized models can be easily trained and deployed via the Ultralytics Platform, streamlining the workflow for developers building the next generation of intelligent applications.






