4 AI 数学:最小限の基礎

第 4 章の目的は 1 つです。モデルの中の数学を、実行でき、説明できる道具として感じられるようにすることです。
まずモデル数学ループを見る

先に図を見てください。このコースの AI 数学の多くは、次のループを支えます。
データを表す -> 不確かさを測る -> 損失を測る -> パラメータを更新する
ベクトルと行列はデータを表し、確率は不確かさを表し、損失はどれくらい間違ったかを示し、勾配はどちらへ改善するかを示します。
学習順序とタスクリスト
先に理論を学び、その後でフルワークショップを実行します。ワークショップは、概念をゼロから紹介する場ではなく、学んだ内容をつなげる場です。
| ページ | 手を動かすこと | 残す証拠 |
|---|---|---|
| 4.1 線形代数 | ベクトル、行列、内積、ノルム、コサイン類似度で例を比較する | ベクトル類似度の計算 1 件 |
| 4.2 確率と統計 | 不確かさ、分布、平均、分散、エントロピー、損失をシミュレーションする | 確率またはエントロピーのメモ |
| 4.3 微積分と最適化 | 導関数、勾配、学習率、勾配降下を追跡する | パラメータ更新表 |
| 4.4 フル数学ワークショップ | ベクトル類似度、確率、エントロピー/損失、勾配降下を 1 つの実行スクリプトにつなげる | ch04_math_workshop_evidence/ |
本章でよく使う用語:
| 用語 | 意味 |
|---|---|
Embedding | テキスト、画像、ユーザー、アイテムのベクトル表現 |
dot product | 2 つのベクトルの方向がどれくらい一致するか |
norm | ベクトルの長さや強さ |
entropy | 不確かさや驚き |
loss | モデルの誤りを測る数値 |
gradient | 値を最も速く変える方向 |
GD / SGD | 勾配降下 / 確率的勾配降下:損失の下り坂を進む方法 |
最初の実行ループ
NumPy がなければ先に入れます。
python -m pip install numpy
次のスクリプトを実行します。Embedding や検索の前に、ベクトル類似度がなぜ重要かを確認します。
import numpy as np
python_topic = np.array([1.0, 1.0, 0.0])
data_topic = np.array([1.0, 0.8, 0.2])
unrelated_topic = np.array([0.0, 0.1, 1.0])
def cosine(a, b):
return a @ b / (np.linalg.norm(a) * np.linalg.norm(b))
print("Python vs data:", round(cosine(python_topic, data_topic), 3))
print("Python vs unrelated:", round(cosine(python_topic, unrelated_topic), 3))
期待される出力:
Python vs data: 0.982
Python vs unrelated: 0.071
コードは小さいですが、この考え方は後で Embedding、検索、推薦、Attention、RAG に何度も出てきます。
よくある失敗
| 症状 | 最初に確認すること | よくある修正 |
|---|---|---|
| 数式が抽象的すぎる | どのモデル動作を支えるか | 表す、比較する、不確かさを測る、損失を測る、更新する、に訳す |
| ベクトル例が任意に見える | 各次元が何を意味するか | 計算前に次元ラベルを書く |
| 確率の用語が混ざる | 何がランダムで、何がイベントか | サンプル、結果、確率を小さな表にする |
| 勾配降下が発散する | 学習率が大きすぎないか | 各ステップの loss を表示し、学習率を下げる |
| ワークショップが魔法に見える | 理論を飛ばしていないか | 先に 4.1、4.2、4.3 のロードマップを読む |
通過チェック
次の 5 つに答えられたら、第 5 章へ進めます。
- 1 つのサンプルはどうやってベクトルになりますか?
- モデル出力を確率や信頼度として読めるのはなぜですか?
- loss は何を測っていますか?
- 勾配はパラメータにどちらへ動くべきかをどう伝えますか?
- 4.4 フル数学ワークショップ を実行し、生成ファイルを説明できますか?
印刷用のチェックリストが必要なときは、4.0 学習ガイドとタスクリスト を使ってください。次の章では、この数学直感を sklearn のモデル学習と評価に落とし込みます。