アルゴリズム編

最適化アルゴリズム、損失関数問題に関する計算問題

バックプロパゲーション (加算ノード) レベル1

計算グラフにおいて、\(z = x + y\) という加算ノードを考えます。上流(出力側)から伝わってきた勾配が \(\frac{\partial L}{\partial z}\) であるとき、下流(入力側)に伝わる勾配 \(\frac{\partial L}{\partial x}\) はどのようになりますか?

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