コンテンツにスキップ

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_score89.8
all_scores[89.8 75.6 91.8]

@ ではなく * を使うと、重み付きスコアではなく要素ごとの掛け算になります。最初にここを区別できるとかなり楽になります。

このページを終えたら、この evidence card を残します。

数学対象
ベクトル、行列、固有値、基底、またはベクトル空間の概念
数値例
これを計算するために使う小さな数値または NumPy のスニペット
可視化または出力
形状、変換後の点、類似度スコア、固有方向、または射影
AI との関係
これが embeddings、バッチ、PCA、ニューラル層、または attention のどこに現れるか
期待される成果
計算と、それを AI の操作に結びつける1文
順番読むまず見ること
14.1.2 ベクトル対象 -> ベクトル、長さ、内積、コサイン類似度
24.1.3 行列バッチデータ、行列積、X @ W + b
34.1.4 固有値と固有ベクトル特別な方向、PCA の直感
44.1.5 ベクトル空間基底、次元、線形変換

1つのサンプルがベクトル、バッチが行列である理由、@ が何をするか、そして RAG 類似度、PCA、ニューラルネットワーク層に再登場する理由を説明できれば合格です。

確認の考え方と解説
  • 線形代数ルートを通過できる目安は、X @ W を shape の操作としても、内積のバッチとしても読めることです。
  • 証拠として、ベクトル類似度の例、行列変換の例、PCA または固有ベクトルの図、SVD または rank チェックを 1 つずつ残します。
  • 大事なのは記号の美しさではなく、方向、長さ、次元、冗長性がどう変わったかを説明できることです。