B バイナンス · 世界最大級の暗号資産取引所バイナンス 登録 → AD OKX OKX · 世界の大手暗号資産取引所OKX 登録 → AD
📐 数学の基礎 · 第10講 / 10

AIを理解するための数学

AIの計算は、結局のところ「数のリスト同士をかけて足す」ことと「間違いの度合いが減る方向に少しずつ直す」ことの繰り返しです。小さな例題を手で計算してみると、巨大なモデルの原理も同じ形をしていることが見えてきます。

⏱ 約20分 ✍️ 確認問題 4問 更新 2026-10-08
🎯 この講義の学習目標
  • ベクトルの内積と大きさを計算し、コサイン類似度の意味を説明できる
  • 行列とベクトルの積を重み付き和として計算できる
  • 平均二乗誤差で、予測の間違いの度合いを計算できる
  • 勾配降下法の1歩を計算し、学習率が大きすぎるときの問題を説明できる

1.ベクトル ― 何でも数のリストに

AIは文字も写真も好みも、数のリストに変えて扱います。この数のリストをベクトルといいます。映画の好みを(アクション、恋愛、コメディ)の好き度で表せば、さくらは [5, 1, 3]、けんたは [4, 2, 3]、ゆいは [1, 5, 2] のように書けます。言語モデルは単語や単語のかけら1つを、数百から数千個の数からなるベクトルに変えますが、原理はこの3つの数の例と同じです。

ベクトルが2つあれば、「どれくらい似ているか」を計算できます。第6講で見た2点間の距離が1つの方法で、AIでよりよく使われるのが内積とコサイン類似度です。

2.内積とコサイン類似度

内積は、2つのベクトルの同じ位置の数同士をかけて、すべて足した値です。2人が同じ項目をそろって好きであるほど、大きな数同士がかけ合わされて内積が大きくなります。ただし内積は、数が全体的に大きいベクトルほど無条件に大きくなるので、ベクトルの大きさ(長さ)で割って向きだけを比べたものがコサイン類似度です。

コサイン類似度は −1 から 1 までの値です。1に近ければ同じ向き(好みが似ている)、0なら互いに関係のない向き(直角)、−1なら正反対です。検索やおすすめで「意味の似た文書を探す」とは、たいていこの値を計算して大きい順に選ぶことです。

内積 a · b = a₁b₁ + a₂b₂ + a₃b₃
大きさ |a| = √(a₁² + a₂² + a₃²)
コサイン類似度 = (a · b) ÷ (|a| × |b|)
例題さくら [5, 1, 3] とけんた [4, 2, 3]、さくらとゆい [1, 5, 2] のコサイン類似度をそれぞれ求め、だれがさくらと好みが似ているかを判断しましょう。
  1. 手順1:内積。さくら・けんた = 5×4 + 1×2 + 3×3 = 20 + 2 + 9 = 31。さくら・ゆい = 5×1 + 1×5 + 3×2 = 5 + 5 + 6 = 16。
  2. 手順2:大きさ。|さくら| = √(25 + 1 + 9) = √35 ≈ 5.92、|けんた| = √(16 + 4 + 9) = √29 ≈ 5.39、|ゆい| = √(1 + 25 + 4) = √30 ≈ 5.48。
  3. 手順3:さくら・けんたの類似度 = 31 ÷ √(35 × 29) = 31 ÷ √1015 ≈ 31 ÷ 31.86 ≈ 0.97。
  4. 手順4:さくら・ゆいの類似度 = 16 ÷ √(35 × 30) = 16 ÷ √1050 ≈ 16 ÷ 32.40 ≈ 0.49。
  5. 検算:どちらの類似度も −1 と 1 の間にあります。さくらとけんたはアクションがいちばん好きという点が同じで、ゆいは恋愛がいちばん好きなので、結果は直感とも合っています。
答えさくら・けんた ≈ 0.97、さくら・ゆい ≈ 0.49 ― けんたのほうが似ています

3.行列の積 ― 重み付き和をまとめて

ニューラルネットワークのニューロン1つがすることは単純です。入力ごとに重みをかけて足し(重み付き和)、バイアスを加えた後、その結果を決まった規則で1回変換します。最もよくある規則の一つは、負の数なら0に、正の数ならそのままにするものです。入力 [2, 3]、重み [0.5, −1]、バイアス 1 なら 0.5×2 + (−1)×3 + 1 = −1 で、負の数なので0を出力します。

ニューロンがいくつもあれば、重み付き和を何回も計算しなければなりません。これを一度に書く方法が行列です。行列の各行がニューロン1つの重みで、行列とベクトルの積は「行ごとに入力ベクトルと内積をとる」ことです。巨大なAIモデルの計算のほとんどがこの行列の積であり、だからこそ行列の積を高速に行う専用チップが重要になりました。

[[1, 2], [3, −1]] × [4, 1]
= [1×4 + 2×1, 3×4 + (−1)×1]
= [6, 11]
例題重みの行列の1行目が [1, 2]、2行目が [3, −1] で、入力が [4, 1] のとき、2つのニューロンの重み付き和を求めましょう(バイアスなし)。
  1. 手順1:1つ目のニューロン = 1行目と入力の内積。1×4 + 2×1 = 4 + 2 = 6。
  2. 手順2:2つ目のニューロン = 2行目と入力の内積。3×4 + (−1)×1 = 12 − 1 = 11。
  3. 手順3:結果のベクトルは [6, 11] です。
  4. 検算:行列の列ごとに計算し直してみます。入力 4 × 1列目 [1, 3] = [4, 12]、入力 1 × 2列目 [2, −1] = [2, −1]、足すと [6, 11] で同じです。
答え[6, 11]

4.損失関数 ― どれだけ間違えたかを数で

モデルが学ぶには、まず「どれだけ間違えたか」を1つの数で測らなければなりません。この数を出す関数を損失関数といいます。数を予測するモデルでよく使われるのが平均二乗誤差(MSE)です。予測と正解の差(誤差)を2乗して平均した値で、第8講の分散とほとんど同じ形をしています。

2乗する理由は2つあります。誤差が正でも負でもすべて「間違い」として数えるため、そして大きく外れたものをより重く罰するためです。誤差が2なら4、誤差が4なら16になります。

MSE = (誤差₁² + 誤差₂² + … + 誤差ₙ²) ÷ n
誤差 = 予測 − 正解
例題予測が [3, 5, 8]、正解が [2, 5, 10] のとき、平均二乗誤差を求めましょう。
  1. 手順1:誤差。3 − 2 = 1、5 − 5 = 0、8 − 10 = −2。
  2. 手順2:2乗。1、0、4。合計は5。
  3. 手順3:平均。5 ÷ 3 ≈ 1.67。
  4. 検算:誤差がいちばん大きい3つ目の値(−2)が、合計5のうち4を占めています。大きく外れた値が損失を左右するという2乗の性質と合っています。
答え5/3 ≈ 1.67

5.傾きと勾配降下法

損失を減らすには、重みをどちらへ直せばよいのでしょうか。霧のかかった山で谷へ下りていく人を思い浮かべてください。遠くは見えませんが、足もとの傾きは感じられます。下り坂のほうへ1歩進み、また傾きを感じ取り、さらに1歩進みます。第4講で見た「1点での傾き」がまさにこの足もとの傾きで、こうして下りていく方法が勾配降下法です。

いちばん簡単な例として、損失が L(w) = (w − 3)² の場合を見てみましょう。w = 3 のとき損失は0で最小です。この関数の傾きは 2(w − 3) です。w が3より小さければ傾きは負なので w を大きくし、大きければ正なので小さくしなければなりません。そこで「新しい w = w − 学習率 × 傾き」と直します。学習率は1歩の大きさです。

実際のモデルには重みが数十億個あることもありますが、することは同じです。重みごとに「これを少し変えると損失がどれだけ変わるか」(傾き)を計算し、損失が減る方向へ少しずつ直すことを、数えきれないほど繰り返します。

L(w) = (w − 3)², 傾き = 2(w − 3)
新しい w = w − 学習率 × 傾き
例題L(w) = (w − 3)² で、w = 0、学習率 0.25 から始めて、勾配降下法を3回行いましょう。
  1. 手順1:w = 0。傾き 2(0 − 3) = −6、新しい w = 0 − 0.25 × (−6) = 1.5。損失 9 → (1.5 − 3)² = 2.25。
  2. 手順2:w = 1.5。傾き 2(1.5 − 3) = −3、新しい w = 1.5 − 0.25 × (−3) = 2.25。損失 (2.25 − 3)² = 0.5625。
  3. 手順3:w = 2.25。傾き 2(2.25 − 3) = −1.5、新しい w = 2.25 − 0.25 × (−1.5) = 2.625。損失 (2.625 − 3)² = 0.140625。
  4. 検算:目標の3までの残りの距離が 3 → 1.5 → 0.75 → 0.375 と毎回半分になります。損失は毎回 1/4 になり、9 → 2.25 → 0.5625 → 0.140625 と減っていきます。
答えw は 1.5、2.25、2.625 と3に近づき、損失は 0.140625 まで減ります
例題同じ関数で学習率を1.1と大きくとり、w = 0 から1歩進むとどうなるでしょうか。
  1. 手順1:傾き −6、新しい w = 0 − 1.1 × (−6) = 6.6。
  2. 手順2:目標3との距離。最初の3から |6.6 − 3| = 3.6 と、かえって遠ざかりました。損失も9から12.96へと大きくなりました。
  3. 手順3:次の1歩。傾き 2(6.6 − 3) = 7.2、新しい w = 6.6 − 7.92 = −1.32、距離 4.32。反対側へ飛び越えながら、だんだん遠ざかります。
  4. 検算:3.6² = 12.96 で、距離は毎回1.2倍(3 → 3.6 → 4.32)になるので発散します。
答え谷を飛び越えて反対側へ跳ね、だんだん遠ざかります(発散)― 学習率が大きすぎると学習は失敗します
学習率が小さすぎると下りるのに時間がかかり、大きすぎると谷を飛び越えて跳ね上がります。実際の学習でも、学習率は最初に調整する値の一つです。

📌 要点まとめ

  • AIは単語・写真・好みを数のリスト(ベクトル)に変えて扱う
  • 内積は同じ位置同士をかけて足した値、コサイン類似度は大きさで割った向きの似かたである
  • 行列 × ベクトル = 行ごとの内積 = いくつものニューロンの重み付き和をまとめて計算したもの
  • 損失関数は間違いの度合いを1つの数で測る ― 平均二乗誤差は誤差²の平均である
  • 勾配降下法:新しい重み = 重み − 学習率 × 傾き。損失が減る方向へ繰り返し直す
  • 学習率が大きすぎると発散し、小さすぎると遅い

✍️ 確認問題

まず自分で解いてから「解答と解説」を開いてください。

Q1. ベクトル [1, 2, 3] と [4, 5, 6] の内積はいくつでしょうか。

⭕ 正解です

❌ もう一度考えてみましょう

解答と解説
正解 ② 32

1×4 + 2×5 + 3×6 = 4 + 10 + 18 = 32 です。[4, 10, 18] はかけた後に足していないもので、内積の結果は1つの数です。

Q2. 2つのベクトルのコサイン類似度が0であるとは、どういう意味でしょうか。

⭕ 正解です

❌ もう一度考えてみましょう

解答と解説
正解 ③ 2つのベクトルが互いに直角(関係のない向き)である

コサイン類似度0は内積が0、つまり2つの向きが直角だという意味です。同じ向きなら1、正反対なら −1 です。

Q3. 2つの予測の誤差が2と −2 のとき、平均二乗誤差を求めましょう。

解答と解説
解答例 4

2乗すると4と4、平均は (4 + 4) ÷ 2 = 4 です。誤差をそのまま平均すると0になり、「まったく間違えていない」と誤って見えてしまうので2乗します。

Q4. L(w) = (w − 3)² で、w = 5、学習率 0.1 のとき、勾配降下法で1歩進んだ後の w を求めましょう。

解答と解説
解答例 4.6

傾き 2(5 − 3) = 4、新しい w = 5 − 0.1 × 4 = 4.6 です。目標の3に近づき、損失は4から (4.6 − 3)² = 2.56 に減りました。

🤖 AIにはこう聞いてみましょう

コピーして [ ] の部分を自分の状況に書き換えて使います。答えはそのまま信じず、本文と比べて確かめましょう。

AIの概念を小さな数で自分で確かめたいとき

コサイン類似度を、3つの数からなるベクトル3つを使って説明してください。内積、大きさ、類似度を段階ごとに計算してほしいのですが、最後の答えを言う前に私が自分で計算してみられるように、途中の結果だけを先に見せてください。

勾配降下法を手でたどってみたいとき

損失関数 L(w) = (w − 3)² で勾配降下法を練習したいです。開始値と学習率を変えながら、3つの場合(うまく収束する、遅すぎる、発散する)をそれぞれ5歩ずつ表で見せてください。各表に w、傾き、新しい w、損失の列を入れてください。最初の2行は私が自分で計算して答え合わせをします。

AIが出した数学の説明を検証するとき

今の説明で使った数式それぞれに、ごく小さな数の例を1つずつ入れて、実際に計算して見せてください。説明と計算結果が食い違うところがあれば印をつけてください。
参考
  • 高校の数学教科書の一般的な内容(ベクトル、行列、微分の基礎)
  • 高校でAIのための数学を扱う教科・教材の一般的な内容

学習目標をすべて達成できたら完了を押しましょう。

📐 数学の基礎

  1. 1数と計算 ― 分数と小数をもう一度
  2. 2比と割合 ― パーセントを正しく読む
  3. 3方程式 ― わからない数を見つける天びん
  4. 4関数とグラフ ― 変化を読む目
  5. 5指数と対数 ― かけ算で大きくなる世界
  6. 6図形の基礎 ― 面積と三平方の定理
  7. 7確率 ― 不確かさを数で表す
  8. 8統計 ― 平均値・中央値・分散
  9. 9データを読む ― グラフの落とし穴
  10. 10AIを理解するための数学
📚 あわせて読みたい
🧠生成AIができることと限界→ ✍️質問(プロンプト)の上手な書き方→ 🔍AIの回答を検証する→ 📚勉強・仕事での使い方と剽窃の注意→
← AI時代の基礎学力講座