Self-Attention
ディープラーニングにおけるセルフアテンションの基礎を解説します。Query、Key、ValueベクトルがTransformerとUltralytics YOLO26の優れたAIパフォーマンスをどのように支えているかを学びましょう。
セルフアテンション(自己注意機構)は、ディープラーニングにおける基本的なメカニズムであり、モデルが入力シーケンス内の異なる要素の重要度を互いに関連付けて比較できるようにします。データを順番に処理したり、局所的な近傍のみに注目したりする従来のアーキテクチャとは異なり、セルフアテンションによりニューラルネットワークはコンテキスト全体を同時に検証することができます。この機能により、文中の単語や画像内の特定の領域など、データの離れた部分の間にある複雑な関係性をシステムが識別できるようになります。これは、ジェネレーティブAI(生成AI)や現代の知覚システムの飛躍的な進化を牽引してきたTransformerアーキテクチャの中核をなす構成要素となっています。
セルフアテンションの仕組み#
このメカニズムは、各入力特徴量に「アテンションスコア」と呼ばれる重みを割り当てることで、認知的なフォーカスを模倣します。これらのスコアを計算するために、モデルは通常埋め込み(エンベディング)として表現される入力データを、Query(クエリ)、Key(キー)、**Value(バリュー)**という3つの異なるベクトルに変換します。
- Query (Q): シーケンスの残りの部分から関連するコンテキストを探している現在のアイテムを表します。
- Key (K): シーケンス内のすべてのアイテムに対するラベルまたは識別子として機能し、Queryとの照合に使用されます。
- Value (V): 集約されるアイテムの実際の情報コンテンツが含まれています。
モデルは、ある要素のQueryを他のすべての要素のKeyと比較して適合性を決定します。これらの適合性スコアはsoftmax関数を使用して正規化され、確率に似た重みが作成されます。次に、これらの重みがValueに適用され、コンテキストに富んだ表現が生成されます。このプロセスにより、大規模言語モデル(LLMs)やビジョンシステムがノイズをフィルタリングしながら重要な情報を優先的に処理できるようになります。
実社会での応用#
セルフアテンションの汎用性の高さから、人工知能(AI)のさまざまな領域で広く採用されるようになりました。
- 自然言語処理(NLP): 機械翻訳などのタスクにおいて、セルフアテンションは代名詞とその指示対象を結びつけることで曖昧さを解消します。例えば、「その動物はあまりに疲れていたので道を渡らなかった」という文において、モデルはセルフアテンションを使用して、「それ」を「道路」ではなく「動物」に強く関連付けます。このコンテキスト認識能力がGoogle翻訳のようなツールを支えています。
- グローバルな画像コンテキスト: コンピュータビジョン(CV)においては、Vision Transformer(ViT)などのアーキテクチャが画像をパッチに分割し、セルフアテンションを適用してシーンをグローバルに理解します。これは、オブジェクトの識別がその周囲の理解に依存する複雑な環境において、物体検出を行うために不可欠です。
関連用語の区別#
しばしば同様の概念と並べて議論されますが、これらの用語には明確な技術的定義があります。
- アテンション機構: モデルがデータの特定の部分に焦点を合わせることを可能にする技術の幅広いカテゴリ。これには、モデルが1つのシーケンス(デコーダ出力など)を使用して別のシーケンス(エンコーダ入力など)をクエリするクロスアテンションが含まれます。
- セルフアテンション: Query、Key、Valueのすべてが同一の入力シーケンスから派生する特定のアテンションタイプです。単一のデータセット内の内部依存関係を学習するように設計されています。
- Flash Attention: スタンフォード大学の研究者によって開発された最適化アルゴリズムであり、数学的出力を変更することなく、GPU上でのセルフアテンションの計算を大幅に高速化し、メモリ効率を高めます。
コード例#
次のPythonスニペットは、ultralyticsパッケージに含まれるTransformerベースの物体検出器であるRTDETRの使用方法を示しています。標準的な畳み込みネットワークとは異なり、このモデルは視覚的特徴を処理するためにセルフアテンションに大きく依存しています。
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.")進化と将来の展望#
セルフアテンションは、初期の循環ニューラルネットワーク(RNNs)の妨げとなっていた勾配消失問題を効果的に解決し、大規模な基盤モデルのトレーニングを可能にしました。非常に効果的である一方で、標準的なセルフアテンションの計算コストはシーケンス長に対して二次関数的に増加します。これに対処するため、現在の研究は効率的なリニアアテンション機構に焦点を当てています。
Ultralyticsは、CNNの速度とアテンションのコンテキストパワーを組み合わせて優れたリアルタイム推論を実現するYOLO26のような最先端モデルにこれらの進歩を統合しています。これらの最適化されたモデルは、Ultralytics Platformを介して簡単にトレーニングおよびデプロイでき、次世代のインテリジェントアプリケーションを構築する開発者のワークフローを合理化します。






