マルチヘッドアテンション

term_id: multi_head_attention

Category: basic_concepts

Definition

マルチヘッドアテンションは、標準的なアテンションメカニズムを、異なる学習された線形射影を使用して並列で複数回実行することで拡張します。これにより、モデルは情報の異なる側面に結合して注意を向けることができます。

Summary

モデルが異なる表現サブスペースからの情報に同時に注意を向けることを可能にするトランスフォーマーモデルのメカニズム。

Key Concepts

  • セルフアテンション
  • 線形射影
  • 連結

Use Cases

  • 自然言語処理 (NLP)
  • 機械翻訳
  • ビジョントランスフォーマーを用いた画像分類

Code Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import torch.nn as nn

class MultiHeadAttention(nn.Module):
    def __init__(self, d_model, num_heads):
        super().__init__()
        self.num_heads = num_heads
        self.d_k = d_model // num_heads
        self.W_q = nn.Linear(d_model, d_model)
        self.W_k = nn.Linear(d_model, d_model)
        self.W_v = nn.Linear(d_model, d_model)
        self.W_o = nn.Linear(d_model, d_model)

    def forward(self, x):
        # Simplified forward pass logic
        pass