【図解】計算グラフと誤差逆伝播法について



1. 計算グラフとは
計算グラフは、ニューラルネットワークの複雑な計算を視覚的に表現するための方法です。信号の伝播をノード(頂点)とエッジ(辺)で構成されるグラフとして表します。
- ノード: 演算を表す。
- エッジ: データの流れ(入力)を示す。
左から右にデータが流れていき、順伝播と呼ばれます。
2. 誤差逆伝播法
2.1. 誤差逆伝播法の基本
誤差逆伝播法は、ニューラルネットワークの学習アルゴリズムの一つで、出力から入力へ向けて誤差を伝播させ、各パラメータの微分(勾配)を計算します。
2.2. 誤差逆伝播法の仕組み


2.3. 計算グラフと微分
$f$を活性化関数として次のような計算グラフの順伝播があったとします。
出力からLという信号が与えられたとき、逆伝播は次のようになります。出力からLという信号が与えられたとき、
$L\dfrac{\partial z}{\partial x}$が伝わる。$E$を損失関数の出力として、$L$が$\dfrac{\partial E}{\partial z}$であるとき、
$$L\dfrac{\partial z}{\partial x} = \frac{\partial E}{\partial z}\dfrac{\partial z}{\partial x} = \dfrac{\partial E}{\partial x}$$
となり、伝播した信号は入力に対する損失関数の偏微分となっていることがわかる。
2.4. 合成関数と微分
次のような合成関数の計算グラフの順伝播があったとします。
出力から$L$という信号が与えられたとき、逆伝播は次のようになります。
$L\dfrac{\partial z}{\partial x}$が伝わる。$E$を損失関数の出力として、Lが$\dfrac{\partial E}{\partial z}$であるとき、
$$L\dfrac{\partial z}{\partial y} = \frac{\partial E}{\partial z}\dfrac{\partial z}{\partial y} =\frac{\partial E}{\partial y} $$
$$L\dfrac{\partial z}{\partial x} = \frac{\partial E}{\partial z}\dfrac{\partial z}{\partial x} =\frac{\partial E}{\partial x} $$
となり、同様に伝播した信号は入力に対する損失関数の偏微分となっていることがわかる。
2.5. 重みの更新
それぞれの重みの損失関数の偏微分を計算することができるので、パラメータを更新することができる。
($\eta$は学習率)
3. なぜ計算グラフを使うのか
計算グラフを使うことで、以下の利点があります。
- 入力と出力だけに注目して、勾配を計算できる。(局所的に計算できる)
- 後ろ向きに信号を伝播させるだけで微分が簡単に計算できる。