統計ロードマップ
2026-04-29·数学·⏱ 約 4

AI のための線形代数 ─ 5 つの概念だけで Transformer まで届く

ベクトル・内積・行列積・固有値・特異値分解 ─ 機械学習・DL に必要な線形代数を 5 つに絞り、Python 実装と直感解説で。

「AI には線形代数が必要」と言われますが、実際に必要な範囲は驚くほど狭い。本記事では 5 つの中核概念だけで、Transformer まで届く道筋を示します。

1. ベクトルと内積 ─ 類似度の言葉

内積は 2 ベクトルがどれくらい同じ方向を向いているか。コサイン類似度はここから来ます。

コサイン類似度
import numpy as np

def cosine(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

print(cosine([1, 0], [1, 1]))  # 0.707
🛠 実務での出番

Word2Vec / BERT の単語類似度、推薦システム、検索リランキングはすべて内積。

2. 行列積 ─ 線形変換

ニューラルネットの 1 層 = 行列積 + 活性化関数。線形回帰の予測 も行列積。

簡易 NN の forward pass
X = np.random.randn(32, 100)        # 32 サンプル, 100 次元
W1 = np.random.randn(100, 64) * 0.1
b1 = np.zeros(64)

h = X @ W1 + b1                    # 行列積で全結合
h = np.maximum(h, 0)                # ReLU

3. 転置 ─ 軸を入れ替える

Transformer の attention で必須:

Q が問い合わせ ・ K がキー、内積 で『どのトークンに注目するか』が決まります。

4. 固有値分解 ─ 主成分分析(PCA)の根

が固有ベクトル ・ が固有値。共分散行列の固有ベクトル = データの主軸。これが PCA。

PCA を 3 行で
from sklearn.decomposition import PCA

pca = PCA(n_components=2)
X_2d = pca.fit_transform(X)
print('説明分散比:', pca.explained_variance_ratio_)

5. SVD(特異値分解) ─ 万能ツール

任意の行列を 3 つに分解 できる魔法。応用例:

  • 画像圧縮: 上位 k 個の特異値だけ残す
  • 推薦システム: 評価行列の低ランク近似
  • LSI(潜在意味解析): 単語-文書行列の SVD
  • 最小二乗法: 数値的に安定した解法

勾配 ─ 学習の方向

勾配は 損失関数を最も急に増やす方向。学習はその逆向き(勾配降下)に進みます。

学習順

  • [Phase 1 数学基礎](/math)(本サイト)
  • [ベイズ統計と頻度論](/blog/bayes-vs-frequentist) ─ 行列の分布表現
  • [scikit-learn 入門](/blog/sklearn-introduction) ─ 実装で確認
  • [E 資格 教科書](/certs/e-shikaku/textbook) ─ Transformer の数式まで

まとめ

5 概念で Transformer まで届く ─ つまり 狭く深く やれば AI に必要な線形代数は十分です。完璧主義に走らずに、実装と数式を行き来して血肉化しましょう。

Related Articles

関連記事