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) # ReLU3. 転置 ─ 軸を入れ替える
。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
関連記事
- 2026-04-30学習法データサイエンティストのキャリア ─ 年収・職種・転職の現実データサイエンティスト・MLエンジニア・AIエンジニアの違い、年収レンジ、転職の戦略、ポートフォリオの作り方。実際の求人から見えた 2026 年の市場動向。
- 2026-04-30実装OpenAI API 実装入門 ─ Chat / Embeddings / Function CallingOpenAI API を使ったプロダクション開発の基礎。Chat Completion・Embedding・Function Calling・ストリーミング・コスト管理まで実装パターンを網羅。
- 2026-04-30実装Vercel で AI アプリをデプロイする ─ Next.js + AI SDK 入門Vercel にデプロイする最短ルート。Next.js の AI SDK + AI Gateway で OpenAI/Claude を統合し、ストリーミングチャット UI を 1 時間で公開する手順。