ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
本稿は Attention(注意機構) に関する記事です。
| この記事の要点 |
|---|
|
Attention とは?
Attention(注意機構) は、ニューラルネットワークが入力データの中で「どこに注目すべきか」を学習する仕組みです。「重み付き平均」をデータから動的に決める、と言い換えてもよいです。
もともと 2014〜2015 年に機械翻訳の Encoder-Decoder モデルで、長文翻訳の精度を上げる補助機構として提案されました。2017 年の 「Attention Is All You Need」 論文で、RNN を完全に置き換えて Attention だけで系列モデルを作る Transformer が提案され、現代 AI の基礎技術になりました。
身近な直感
| 補足: なぜ「注意」と呼ぶか |
|---|
| 人間が文章を読むとき、すべての単語に均等に注目するのではなく、文脈に応じて重要な単語に「注意」を向けます。 例:「彼女はリンゴを買った。それは赤かった。」を読むとき、「それ」が指すのは「リンゴ」だと自然に判別します。これは「それ」と「リンゴ」に強い注意関係があるからです。Attention 機構は、この「重要な部分により強く向く重み」をデータから学習します。 |
Q / K / V の基本
Attention は各入力位置を 3 つのベクトルに変換します。
| 記号 | 名称 | 役割 |
|---|---|---|
| Q | Query(クエリ) | 「何を探しているか」を表す |
| K | Key(キー) | 「自分が何の情報を持つか」のラベル |
| V | Value(バリュー) | 「実際に運ぶ情報」 |
計算の流れ:
- 各クエリ Q が各キー K と内積(類似度)を計算
- √d でスケールして softmax で確率分布に変換(合計 1)
- その確率で V を重み付き平均
数式で書くと:
|
Attention(Q, K, V) = softmax(Q KT / √dk) V |
√dk で割るのは、内積が次元数 d に比例して大きくなり softmax が極端になるのを防ぐためです。
Self-Attention と Cross-Attention
| 種類 | Q の出所 | K, V の出所 | 用途 |
|---|---|---|---|
| Self-Attention | 同じ系列 | 同じ系列 | 文脈の理解(LLM の中核) |
| Cross-Attention | ある系列 | 別の系列 | 翻訳 (Encoder-Decoder)、画像 + テキスト |
| Masked Self-Attention | 同じ系列 | 同じ系列(過去のみ) | 因果的生成(GPT 系) |
Multi-Head Attention
1 つの Attention だけだと「ひとつの関係」しか学べないため、複数の Attention を並列に走らせ、異なる視点(語順 / 意味 / 構文など)を同時に捉えます。これを Multi-Head Attention と呼びます。
例: 1 つの Head は「主語と動詞の関係」、別の Head は「代名詞と先行詞の関係」、また別の Head は「対比語の関係」…のように、各 Head が違う種類の依存性を担当するように自動で分担されます(明示的に指定するわけではない)。
応用範囲(系列に限らない)
| 領域 | Attention の使われ方 |
|---|---|
| 自然言語処理 | 文中の単語間の依存関係(LLM の中核) |
| 画像 (ViT) | 画像を「パッチ」に分割し、パッチ間の Attention |
| 音声 (Whisper) | 音声フレーム間の Attention |
| マルチモーダル | テキストと画像トークン間の Cross-Attention |
| 強化学習 | Decision Transformer の系列処理 |
| グラフ | Graph Attention Network (GAT) |
| 推薦システム | ユーザの過去行動系列を Attention で要約 |
| タンパク質 | AlphaFold の構造予測 |
計算量とメモリの課題
| 注意: O(n²) の壁 |
|---|
| 標準の Self-Attention は系列長 n に対して計算量・メモリとも O(n²) です。系列長を倍にすると計算が 4 倍、メモリも 4 倍。これが LLM のコンテキストウィンドウ上限と、長文を扱う際のコスト・遅延の主因です。 |
長文対応の改良
| 改良 | 概要 |
|---|---|
| FlashAttention | GPU のメモリ階層を活かして同じ計算を高速化(数学的には等価) |
| Sliding Window Attention | 近傍だけ見る(Mistral 等で採用) |
| Sparse Attention | 一部のトークンだけ Attention(Longformer 等) |
| Linear Attention / Linformer | 計算を線形に近似 |
| GQA (Grouped Query Attention) | 推論時の KV キャッシュを削減 |
| MLA (Multi-head Latent Attention) | DeepSeek の効率化手法 |
| State Space Model (Mamba) | Attention 自体を別構造に置き換える代替案 |
最小サンプル: PyTorch で Self-Attention
|
import torch, torch.nn as nn |
運用上のヒント
| Tips |
|---|
|
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?