G検定(ジェネラリスト検定)
れんさりつ
連鎖律
Chain Rule
合成関数の微分を、つなぎ目ごとの局所的な微分の積として求める規則。複数の経路がある場合は経路ごとの積を足し合わせ、誤差逆伝播法の土台となる。
詳しい説明
連鎖律とは
連鎖律は、いくつもの関数をつないだ式(合成関数)の微分を、つなぎ目ごとの局所的な微分から組み立てる規則です。1変数なら dz/dx = dz/dy * dy/dx の形で書けます。入力が出力へ複数の経路で影響する場合は多変数の連鎖律となり、経路ごとの積を足し合わせます。
計算グラフで見る
Christopher Olah の解説では、e = (a+b)*(b+1) という式を例にします。中間変数を c = a+b、d = b+1 と置くと e = c*d となり、各演算と入力変数をノード、値の受け渡しを辺とする計算グラフができます。a=2、b=1 とすると c=3、d=2 となり、式の値は e=6 です。
各辺には、隣り合うノードの間の偏微分が載ります。和の規則から ∂c/∂a = 1、∂c/∂b = 1、∂d/∂b = 1 であり、積の規則から ∂e/∂c = d = 2、∂e/∂d = c = 3 です。
経路の積を足す
直接つながっていない a と e の関係は、辺の微分を掛けて求めます。a が速さ1で変わると c も速さ1で変わり、c が速さ1で変わると e は速さ2で変わるので、∂e/∂a = 1*2 = 2 です。
b は c を通る経路と d を通る経路の2つで e に影響します。そこで経路ごとに辺の微分を掛け、その結果を足します。
∂e/∂b = 1*2 + 1*3 = 5
あるノードから別のノードまでのすべての経路について、辺の微分の積をとり、それらを合計する。Olah はこの経路の和の規則を、多変数の連鎖律の別の見方だと説明しています。
誤差逆伝播法との関係
経路を素朴に1本ずつ数え上げると、経路の数が組合せ的に爆発しやすくなります。そこで各ノードで経路をまとめ、和を因数分解して効率よく求めるのが前進モード微分と逆モード微分です。どちらも各辺をちょうど1回だけ通ります。前進モードは1つの入力がすべてのノードに与える影響を追い、逆モードはすべてのノードが1つの出力に与える影響を追います。
ニューラルネットワークの学習では、1つの値であるコスト(ネットワークの性能の悪さを表す値)を、数百万から数千万にもなるパラメータそれぞれで微分し、勾配降下法に使います。入力が多く出力が1つなので逆モードが大きく有利で、これがニューラルネットワークの文脈で誤差逆伝播法(バックプロパゲーション)と呼ばれるものです。Olah は誤差逆伝播法を初めて理解したときの感想として、それは連鎖律にすぎない、と書いています。
勾配の流れを読む手がかり
誤差逆伝播法は、微分がモデルの中をどう流れるかを考える見方にもなり、あるモデルがなぜ最適化しにくいのかを考える助けになります。その典型例として、再帰型ニューラルネットワークにおける勾配消失問題が挙げられています。
試験で問われること
G検定
- 連鎖律は合成関数の微分を局所的な微分の積として求める規則で、1変数では dz/dx = dz/dy * dy/dx と書け、途中の変数を介した影響を掛け算でつなげて計算する。
- 計算グラフでは各演算と入力変数をノードとし、各辺に隣り合うノード間の偏微分を載せる。e=(a+b)*(b+1) は c=a+b、d=b+1、e=c*d と分解でき、a=2、b=1 で e=6 となる。
- 入力から出力へ複数の経路がある場合は、経路ごとに辺の微分を掛け、それを全経路で合計する。例では ∂e/∂b = 1*2 + 1*3 となり、これは多変数の連鎖律の別の見方である。
- 経路を素朴に列挙すると数が組合せ的に爆発するため、ノードごとに経路をまとめる前進モード微分と逆モード微分が使われ、どちらも各辺をちょうど1回だけ通って同じ和を求める。
- 多数のパラメータから1つのコストへの微分を求める学習では逆モード微分が大きく有利で、これが誤差逆伝播法と呼ばれる。勾配の流れを読む見方として、勾配消失問題の理解にも役立つ。
最終更新日: 2026/09/23