🧠

ニューラルネットワークの誤差と偏微分〜中学生でもわかる機械学習の基礎【第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