バックプロパゲーションと連鎖律 (加算ノード)
バックプロパゲーションでは、連鎖律を用いて勾配を出力側から入力側へと伝播させます。入力 \(x\) に関する損失 \(L\) の勾配 \(\frac{\partial L}{\partial x}\) を計算する式は以下の通りです。
$ \frac{\partial L}{\partial x} = \frac{\partial L}{\partial z} \times \frac{\partial z}{\partial x}$
ここで、\(\frac{\partial L}{\partial z}\) は上流から伝わってきた勾配、\(\frac{\partial z}{\partial x}\) は加算ノード \(z = x + y\) のローカルな勾配(\(z\) の \(x\) に関する偏微分)です。
ローカル勾配 (\(\frac{\partial z}{\partial x}\)) の計算
関数 \(z = x + y\) を \(x\) で偏微分します。このとき、\(y\) は定数として扱います。
$\frac{\partial z}{\partial x} = \frac{\partial}{\partial x}(x + y) = \frac{\partial}{\partial x}(x) + \frac{\partial}{\partial x}(y) = 1 + 0 = 1$
(同様に、\(y\) に関する偏微分 \(\frac{\partial z}{\partial y}\) も 1 となります。)
連鎖律の適用
計算したローカル勾配 \(\frac{\partial z}{\partial x} = 1\) を連鎖律の式に代入します。
$\frac{\partial L}{\partial x} = \frac{\partial L}{\partial z} \times \frac{\partial z}{\partial x} = \frac{\partial L}{\partial z} \times 1$
したがって、下流に伝わる勾配 \(\frac{\partial L}{\partial x}\) は、上流からの勾配 \(\frac{\partial L}{\partial z}\) に 1 を掛けたもの、つまり \(\frac{\partial L}{\partial z}\) そのものになります。
よって、正しい選択肢は3番目です。
加算ノードのバックプロパゲーション
加算ノード(\(z = x + y\)のバックプロパゲーションでは、上流から伝わってきた勾配(\(\frac{\partial L}{\partial z}\)は、そのまま変化せずに下流の各入力(\(x\) と \(y\))に分配(コピー)されます。
- \(\frac{\partial L}{\partial x} = \frac{\partial L}{\partial z} \times 1\)
- \(\frac{\partial L}{\partial y} = \frac{\partial L}{\partial z} \times 1\)
これは、入力の微小な変化が出力にそのまま(係数1で)影響することに対応しています。