⚙️ インタラクティブ設定 (パラメータ自由調整)
※スライダーを動かすと現在の学習ステップがリセットされ、新しい設定で再配置されます。
ステップのタイトル
ステップの説明が入ります。
実行される数式 (Math)
実際の数値をあてはめた計算式:
全ステップ一覧
1. なぜ「逆伝播」と呼ぶのか?
ニューラルネットワークの学習(重みの最適化)における目的は、出力値 $y$ と 正解 $t$ のズレを示す**「誤差関数 $E$」を最小化する**ことです。
そのためには、各重み $w$ が「どれくらい誤差の増減に影響しているか(傾き=勾配 $\frac{\partial E}{\partial w}$)」を求めなければなりません。
- 順伝播 (Forward): 入力信号 $x$ を受け取り、左から右へ重みと活性化関数をかけ合わせながら出力 $y$ を作ります。
- 逆伝播 (Backward): 計算した最後の誤差 $E$ を起点にし、**「右から左(出力層 → 中間層 → 入力層)」へと誤差情報(勾配の種となる値)を伝送します。**
「誤差の発生源(出力)」から出発し、その誤差の原因がどの重み(シナプス)にあるかをさかのぼって伝えていくため、**誤差逆伝播**と呼ばれます。
2. 誤差感度 $\delta$ (デルタ)はどのように決まるのか?
逆伝播の実体とは、すべてのノードにおける**誤差感度 $\delta$ (デルタ)**の決定プロセスそのものです。 数学的に $\delta$ は、**「そのノードの総入力 $z$ が $1$ 動いたときに、最終誤差 $E$ がどれだけ変化するか(偏微分 $\frac{\partial E}{\partial z}$)」**と定義されます。
出力値 $y$ は直接誤差 $E = \frac{1}{2}(y-t)^2$ に繋がっています。よって、チェインルールより:
※ここで、シグモイド関数の微分が $\sigma'(z) = y(1-y)$ と極めて簡潔になる性質が活きています。
中間層2のノード $i$ の出力は、重み $w_{3,1,i}$ を通って出力層に伝わります。したがって、自身の変化がもたらす影響は、**「出力層の感度 $\delta_{3,1}$」に「結合重み $w_{3,1,i}$」を乗じたもの**になります:
出力層から、重みという名の「逆方向の減衰率/増幅率」を掛け算してメッセージをバケツリレーしているのが分かります。
ここが一般式に直した最大のポイントです。中間層1のノード $i$ の信号は、中間層2の**「3つのノードすべて」**に分岐して誤差を生み出しています。 したがって、逆伝播させるときは、**「次層のノードすべてから返ってきた反省($\delta_{2,j}$)に、それぞれの結合重みを掛けたものを合算する($\sum$)」**必要があります:
3. 誤差感度 $\delta$ が求まると、なぜ一瞬で重みが更新できるのか?
逆伝播の最後の魔法は、各パラメータの勾配(傾き)の計算です。 チェインルールを解きほぐすと、ある重み $w$ に対する誤差の傾き(勾配)は、**「その重みの右側のノードが持っている誤差感度 $\delta$」に、「左側のノードから届いていたシグナル $a_{prev}$(入力値)」をただ掛け算するだけ**という究極にシンプルな形で求まります。
これにより、ネットワーク全体に「誤差感度 $\delta$」の情報さえ右から左に流し終えてしまえば、すべての重みの修正量(勾配)を簡単な掛け算だけで一度に、並列して、いっぺんに計算・更新できるようになるのです。
4. 順伝播の繰り返し(数値微分) vs 逆伝播(バックプロパゲーション)
| 手法 | メリット | デメリット(最大の弱点) |
|---|---|---|
| 数値微分 (重みを1つずつ少し動かして順伝播を繰り返す) |
・実装が極めて簡単 ・微分の数式が一切不要 |
・超低速:重みが $N$ 個あると順伝播が $N$ 回必要。 ・現代のAI(パラメータ数 数百億)では計算量が爆発し物理的に絶対不可能。 |
| 誤差逆伝播法 (バックプロパゲーション) |
・超高速!一度の逆方向パスだけで、数億個すべての重みの勾配を「同時」に計算可能。 | ・手動で微分の式(数式モデル)を解いて、プログラムとして実装する必要がある(※現代のフレームワークでは自動化)。 |