4.1.1 線形代数ロードマップ:データはベクトル、バッチは行列
線形代数は、AI がデータを表し、変換するための言語です。証明の暗記から始めず、まず各オブジェクトがコードで何をするかを見ます。
まずマップを見る

この小章の流れです。

| 概念 | AI での最初の意味 |
|---|---|
| ベクトル | 1つの対象を数値列で表す |
| 行列 | 複数のベクトルを積む、または変換を表す |
| 内積 | 対応する位置を掛けて合計する |
| 行列積 | 多くの内積を一度に行う |
| 固有値/固有ベクトル | 重要な方向。PCA の直感に使う |
最小ループを動かす
linear_algebra_first_loop.py を作り、numpy をインストールしてから実行します。
import numpy as np
student = np.array([90, 85, 92])
students = np.array(
[
[90, 85, 92],
[70, 88, 75],
[95, 91, 89],
]
)
weights = np.array([0.4, 0.2, 0.4])
single_score = student @ weights
all_scores = students @ weights
print("student_vector:", student)
print("matrix_shape:", students.shape)
print("single_score:", round(single_score, 2))
print("all_scores:", all_scores.round(2))
出力:
student_vector: [90 85 92]
matrix_shape: (3, 3)
single_score: 89.8
all_scores: [89.8 75.6 91.8]
@ ではなく * を使うと、重み付きスコアではなく要素ごとの掛け算になります。最初にここを区別できるとかなり楽になります。
この順番で学ぶ
| 順番 | 読む | まず見ること |
|---|---|---|
| 1 | 4.1.2 ベクトル | 対象 -> ベクトル、長さ、内積、コサイン類似度 |
| 2 | 4.1.3 行列 | バッチデータ、行列積、X @ W + b |
| 3 | 4.1.4 固有値と固有ベクトル | 特別な方向、PCA の直感 |
| 4 | 4.1.5 ベクトル空間 | 基底、次元、線形変換 |
合格ライン
1つのサンプルがベクトル、バッチが行列である理由、@ が何をするか、そして RAG 類似度、PCA、ニューラルネットワーク層に再登場する理由を説明できれば合格です。