ニューラルネットワークの誤差と偏微分〜中学生でもわかる機械学習の基礎【第2回】〜
ニューラルネットワークの誤差と偏微分〜中学生でもわかる機械学習の基礎【第2回】〜
今回は、ロボットがどのようにして学習し、より正確に判定できるようになるのかを、中学生レベルで理解できるように説明します。
第1章:ニューラルネットワークのおさらい
1-1. ニューラルネットワークの構造
ニューラルネットワークは、脳の神経細胞の仕組みをまねた計算モデルです。
入力層 隠れ層 出力層
赤い [つまみ] 判定結果
↓ [つまみ] 判定機 ↓
丸い → [つまみ] → 計算 → 「トマト!」
↓ [つまみ] か
甘そう [つまみ] 「りんご!」
1-2. 「重み(w)」とは
各層のユニット(計算機)がつながっている部分に「つまみ」のようなものがあります。これが「重み」です。
このつまみをどう調整するかが、ロボットが正しく判定できるかどうかを決めます。
第2章:「誤差」を理解する
2-1. 誤差(Error)とは
誤差 = 本当の答えと、ロボットが出した答えの差
テストの例:
- 正解:3 + 2 = 5
- あなたの答え:4
- 誤差 = 5 - 4 = 1
ロボットの例:
- 本当の答え:トマト
- ロボットの答え:りんご
- 誤差:大きい
2-2. ロボット学習の目標
ロボットの学習は、誤差をできるだけ小さくすることです。
学習前:誤差が大きい → ロボット下手
↓
つまみを調整
↓
学習後:誤差が小さい → ロボット上手
2-3. 誤差の計算式
一般的には、以下のように計算します:
E(θ) = (本当の答え - ロボットの答え)²
※θ(シータ)は、全てのつまみの集合を表します
二乗する理由は、誤差が正でも負でも「大きさ」で判定するためです。
第3章:「つまみをどう調整するか」を考える
3-1. 温度調整で理解する
冷房のつまみを「少し」変えたとき、部屋の温度がどう変わるか考えます。
つまみを少し回す
↓
室外機の冷気がちょっと変わる
↓
部屋の温度が変わる
大事なポイント: つまみをほんのちょっと変えたとき、温度がどれくらい変わるかで、「どの方向に回すべきか」がわかります。
- つまみ↑ → 温度↑なら、もっと上げましょう
- つまみ↑ → 温度↓なら、下げましょう
3-2. ロボットのつまみも同じ
つまみを少し調整
↓
判定が少し変わる
↓
誤差が小さくなったか大きくなったか判定
↓
どう調整すべきかがわかる
第4章:「鎖のようにつながっている」という大事な考え方
4-1. 部屋の温度の例
部屋の温度を変えるには、複数のステップが「鎖のように」つながっています。
冷房の温度設定
↓
室外機の冷気の強さ
↓
空気の流れ
↓
部屋の温度
部屋の温度を完全に理解するには、このすべての影響を考える必要があります。
①冷房の設定を1度上げる
↓
②そしたら室外機の冷気は何%強くなる?
↓
③そしたら部屋の温度は何度下がる?
これら全部をかけ算する!
4-2. ロボットも鎖のようにつながっている
1個目のつまみを調整
↓
2個目のユニットの計算が変わる
↓
3個目のユニットの計算が変わる
↓
最終的な判定(出力)が変わる
↓
誤差が変わる
これら全部をかけ算する!
この計算のやり方が「逆伝播(バックプロパゲーション)」です。
第5章:「逆算していく」という考え方
5-1. 原因を逆にたどる
お店の売上が「悪い」とします。原因は何か逆算します:
売上が悪い
↑
客足が少ない
↑
宣伝が足りない
↑
つまりチラシをもっと配ろう!
最後の結果から、原因を逆にたどっていくのです。
5-2. ロボットも逆算する
誤差が大きい
↑
出力層のつまみが悪い
↑
その前の層のつまみも悪い
↑
その前の層のつまみも悪い
↑
最初のつまみから順に調整していこう!
第6章:具体的な計算例
6-1. シンプルな例
ロボットが「りんご」を見分けるために、2つのヒントを使うとします。
【ヒント1】赤さ [つまみA = 3] ↘
判定
【ヒント2】甘さ [つまみB = 2] ↗
計算式:
りんご度 = 赤さ × 3 + 甘さ × 2
6-2. りんごを見せた場合
赤さ = 8
甘さ = 7
りんご度 = 8×3 + 7×2 = 24 + 14 = 38
ロボットが「りんご度38」と計算しました。
でも本当は「りんご度は50にしたい」とします。
差 = 50 - 38 = 12(これが誤差)
6-3. 「つまみをちょっと変えたら、誤差がどう変わるか」を計算
つまみAを0.1だけ大きくしてみました:
りんご度 = 赤さ × 3.1 + 甘さ × 2
= 8 × 3.1 + 7 × 2
= 24.8 + 14
= 38.8
重要な発見:
- つまみAを大きくする → りんご度が大きくなる
- 誤差が小さくなった(38.8は50に近い)
- だからつまみAをもっと大きくしましょう!
第7章:上下の層がつながっている場合
7-1. 3層の構造
入力層 隠れ層 出力層
赤さ [つまみ群] 判定ユニット
↓ ↓
甘さ → ユニットA → 「りんご度」
ユニットB
ユニットC
隠れ層には複数のユニット(計算機)があります。
7-2. より詳しい構造
赤さ ──[つまみ1]─→ ユニットA
──[つまみ2]─→ ユニットB ──[つまみ群]→ 出力
甘さ ユニットC
──[つまみ3]─→
──[つまみ4]─→
7-3. 出力層のつまみを変えたら、何に影響するか?
「出力層のつまみ」を少し変える
どうなるか?
↓
「隠れ層のユニットA,B,Cからの信号」にどう影響するか考える
例:ユニットAからの信号が2になった
ユニットBからの信号が3になった
ユニットCからの信号が1になった
この3つ全部を合計して、総合的な誤差の変化を計算する!
第8章:偏微分(へんびぶん)について
8-1. 「普通の変化」と「偏微分」の違い
1つの数字だけが変わる場合
お小遣い = 100円
毎日10円増える
1日後 → 110円
2日後 → 120円
3日後 → 130円
これは中学1年生で習う「一次関数」です。簡単ですね。
複数の数字が一緒に変わる場合
お店の売上 = (客の数) × (1人あたりの購入額)
客が増えたら → 売上が増える
1人あたりの購入額が増えたら → 売上が増える
2つ一緒に変わる!
こんなとき、「1つだけが変わったら、どうなるか」を知りたい。
これが「偏微分」です。
8-2. 「1つだけに注目する」という考え方
ピザの値段の例
ピザの値段は、2つの要素で決まります。
ピザの値段 = (生地の大きさ) + (トッピングの数) × 100円
例:
- 生地が大きいピザ = 基本値段800円
- トッピング1個 = 100円
- トッピング2個 = 100円×2 = 200円
ピザの値段 = 800 + 200 = 1000円
「生地だけ」の影響を知りたい場合
【条件】トッピングは「2個のまま」に固定
生地が小さい → 700円
生地が中くらい → 800円
生地が大きい → 900円
「生地だけが変わったら、値段は100円ずつ変わる」
この「生地だけが変わったときの影響」を見ることが偏微分です!
「トッピングだけ」の影響を知りたい場合
【条件】生地は「大きいまま」に固定
トッピング0個 → 800円
トッピング1個 → 900円
トッピング2個 → 1000円
トッピング3個 → 1100円
「トッピング1個増えるたびに、値段は100円増える」
第9章:「∂」という記号について
9-1. 記号は「短く書くため」に作られた
数学は「短く書くため」に記号を作りました。
「2を3回かけ算する」を毎回言うのは長い
↓
「2³」という記号で表す
「1から5までの全部の和」を毎回言うのは長い
↓
「Σ」という記号で表す
同じように、「複数の要因がある中で、1つだけを変えたときの影響」という長い意味を、短く表す記号が「∂」です。
9-2. 「d」と「∂」の違い
「d」は昔からある記号
中学2年生で習う「一次関数」を思い出してください。
y = 2x + 1
このグラフで「傾き」を計算する方法:
yが4から10に変わった(4増えた)
xが3から6に変わった(3増えた)
傾き = 4 ÷ 3 = 1.33...
dy
── = 1.33...
dx
「d」はもともと「変化」という意味の記号です。
「d」は「1つの原因だけ」
y = 2x + 1
xだけが変わる。
他には何も変わらない。
だから「d」を使う。
dy
── = 2
dx
9-3. 「∂」という新しい記号が生まれた理由
複数の原因がある場合の問題
売上 = 客の数 × 1人あたりの購入額
客の数も変わる
かつ
1人あたりの購入額も変わる
2つ一緒に変わる!
もし「d」で書くと...
d売上 = ?
「何が変わったのか」がハッキリしない!
客の数が変わったの?
購入額が変わったの?
両方?
「複数の原因がある中で、1つだけの影響を見たい」というときは、『d』では駄目。
「∂」という新しい記号が生まれた
1770年代、フランス人の数学者「ラグランジュ」が、この記号を作りました。
「複数の変数がある場合、
1つだけを変えるって意図を、
明確にする記号が必要だ」
↓
「∂」という新しい記号を作ろう!
9-4. 「∂」の形の意味
「d」という文字に、
丸み(ラウンド)をつけた形
d → ∂(丸くした)
「これは普通の『d』じゃなくて、
特別な『d』だよ」
という目印。
9-5. 「∂」が表すこと
∂売上
──── = 「客の数だけを変えたときの売上の変わり方」
∂客数 (購入額は固定)
∂売上
──────── = 「購入額だけを変えたときの売上の変わり方」
∂購入額 (客の数は固定)
「分母に書いてある1つのもの『だけ』を変えるよ」という意思表示。
9-6. 「∂」の読み方
∂売上
───── = 「∂売上 ∂客数」
∂客数
(パーシャル・えいきぶん・の・かきすう)
または
「ラウンド・えいきぶん」
(「ラウンド」=「丸い」という意味の英語)
数学の授業では「ラウンド」と読む先生が多いです。
第10章:複数の「∂」を使う実例
10-1. 温度の例
部屋の温度は「暖房の強さ」と「外気温」で決まる
T = 温度
H = 暖房の強さ
O = 外気温
T(H, O)= 温度(暖房と外気温で決まる)
「暖房だけの影響」を知りたい
外気温を固定して、暖房だけを変える
∂T
── = 「暖房が1増えたときの、温度の変わり方」
∂H
「外気温だけの影響」を知りたい
暖房を固定して、外気温だけを変える
∂T
── = 「外気温が1増えたときの、温度の変わり方」
∂O
同じ温度を見ているのに、原因によって「温度の変わり方」が違う!
10-2. ロボットの学習での使用
誤差E = 全てのつまみ(w₁, w₂, w₃...)の組み合わせで決まる
つまみ1の影響を知りたい
他のつまみ(w₂, w₃...)は固定して、
w₁だけを変える
∂E
─── = 「つまみ1が0.1増えたときの、誤差の変わり方」
∂w₁
つまみ2の影響を知りたい
他のつまみ(w₁, w₃...)は固定して、
w₂だけを変える
∂E
─── = 「つまみ2が0.1増えたときの、誤差の変わり方」
∂w₂
各つまみについて、個別に『∂』で計算する。
10-3. ピザの値段(復習)
価格 = 生地の大きさ × 100円 + トッピング個数 × 50円
P(B, T)= 価格(生地とトッピング)
生地だけの影響
トッピングを固定して、生地だけを変える
∂P
── = 100 (生地が1増えると、価格は100円増える)
∂B
トッピングだけの影響
生地を固定して、トッピングだけを変える
∂P
── = 50 (トッピングが1増えると、価格は50円増える)
∂T
第11章:「連鎖的に変わる」場合(チェーンルール)
11-1. 売上の例で理解する
売上 = 客の数 × 1人あたりの購入額
でも実は、もっと複雑な場合があります:
客の数 ←「宣伝の多さ」で決まる
1人あたりの購入額 ←「商品の品質」で決まる
だから:
売上 = (宣伝の多さ) × (商品の品質)
11-2. 「宣伝だけ増やしたら?」
複数の経路で影響が伝わります:
【直接的な影響】
宣伝が増える → 客が増える → 売上が増える
【間接的な影響】
宣伝が増える → ? → 1人あたり購入額に影響?
11-3. チェーンルール
複数の経路での影響を全部計算する場合:
∂売上 ∂売上 ∂客数
────── = ───── × ─────
∂宣伝 ∂客数 ∂宣伝
「宣伝を変えたときの売上の変わり方」
= 「客数を変えたときの売上の変わり方」 × 「宣伝を変えたときの客数の変わり方」
これが「チェーンルール」です!
11-4. 視覚的に理解する
宣伝を変える
↓
そしたら客数が変わる
↓
そしたら売上が変わる
3つのステップの影響を「全部かけ算」する
第12章:ロボット学習での数式
12-1. 数式をもう一度見る
∂E(θ) ∂E(θ) ∂u^l_j
───── = ────── × ──────
∂w^l_{i,j} ∂u^l_j ∂w^l_{i,j}
12-2. 日本語にすると
「つまみwを変えたときの誤差Eの変わり方」
= 「ユニットの入力uを変えたときの誤差Eの変わり方」
× 「つまみwを変えたときのユニット入力uの変わり方」
つまり、2段階で影響が伝わります:
つまみw を変える
↓
ユニットu が変わる
↓
誤差E が変わる
12-3. ロボット学習の全体の流れ
1. 複数のつまみがある
↓
2. 各つまみについて「偏微分」で影響度を計算
↓
3. 「この方向に動かせば誤差が減る」とわかる
↓
4. つまみを調整
↓
5. 誤差が減る!
↓
6. 1~5を何度も繰り返す = 学習
第13章:「d」と「∂」の使い分け
13-1. 「d」を使う場合
1つの変数だけが関係している
例)y = 2x + 1
(yはxだけで決まる)
dy
── = 2
dx
13-2. 「∂」を使う場合
複数の変数が関係している
例)z = 2x + 3y
(zはxとyの両方で決まる)
∂z
── = 2 (yを固定してxだけを変えた場合)
∂x
∂z
── = 3 (xを固定してyだけを変えた場合)
∂y
「複数の原因」がある場合は必ず「∂」を使う。
第14章:「∂」が使われている分野
14-1. 様々な分野での活用
【物理学】
∂温度
───── = 時間が進むと温度がどう変わるか
∂時間
【経済学】
∂利益
──── = 商品の価格が変わると利益がどう変わるか
∂価格
【人工知能】
∂誤差E
────── = つまみを変えると誤差がどう変わるか
∂つまみw
複数の要因がある全ての分野で、この「∂」が活躍します。
まとめ
機械学習の本質
ロボットが学習する仕組みは、結局のところ**「試行錯誤してつまみを調整する」**ことです。
各要素の役割
| 要素 | 役割 |
|---|---|
| 誤差(E) | 「今どれくらい間違ってるか」の数字 |
| つまみ(w) | 「判定の強さ」を決める |
| 偏微分(∂) | 「複数の中から1つだけの影響」を計算 |
| チェーンルール | 「複雑な影響を全部考慮する」方法 |
| 逆伝播 | 「最後から最初へ、逆にたどって調整する」方法 |
学習のサイクル
1. ロボットに判定させる
2. 誤差を計算する
3. 「誤差を小さくするには、
各つまみをどう変えるべきか」を計算する
↓
(ここで偏微分とチェーンルールを使う!)
4. つまみを少しずつ調整する
5. 1~4を何度も繰り返す
6. 誤差がどんどん小さくなる
= ロボットが賢くなる!
「∂」の超シンプル説明
「変える」という意味の記号「d」を、
「複数の中から、これ1つだけ変えるよ」
という意思を込めて、
丸くして「∂」にした。
それだけ。
今回も学習お疲れ様でした!
記事作成日:2025年10月30日
対象読者:中学1年生~高校生、機械学習初心者
Discussion