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

はるか
はるか
計算グラフ…知ってる?
ふゅか
ふゅか
うん!計算グラフって、ニューラルネットワークの計算をわかりやすく表現したんだよね!

1. 計算グラフとは

計算グラフは、ニューラルネットワークの複雑な計算を視覚的に表現するための方法です。信号の伝播をノード(頂点)とエッジ(辺)で構成されるグラフとして表します。

  • ノード: 演算を表す。
  • エッジ: データの流れ(入力)を示す。

左から右にデータが流れていき、順伝播と呼ばれます。

 

2. 誤差逆伝播法

2.1. 誤差逆伝播法の基本

誤差逆伝播法は、ニューラルネットワークの学習アルゴリズムの一つで、出力から入力へ向けて誤差を伝播させ、各パラメータの微分(勾配)を計算します。

2.2. 誤差逆伝播法の仕組み

  1. 順伝播: 入力データをネットワークに通し、予測値を計算。
  2. 誤差の計算: 予測値と正解値の差(損失)を$L$を計算。
  3. 逆伝播(バックプロパゲーション): 誤差を出力層から入力層へ伝播させ、各パラメータの勾配を計算。
  4. パラメータの更新: 勾配を用いてパラメータを最適化(例: 勾配法)。
はるか
はるか
誤差逆伝播法って知ってる?
ふゅか
ふゅか
うん!誤差逆伝播法は、出力から入力に向けて誤差を逆に伝えていくんだよね。各パラメータの微分(勾配)を計算して、学習に使うんだ!

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. 重みの更新

それぞれの重みの損失関数の偏微分を計算することができるので、パラメータを更新することができる。

$$ w_{\text{new}} = w - \eta \frac{\partial L}{\partial w} $$

($\eta$は学習率)

3. なぜ計算グラフを使うのか

計算グラフを使うことで、以下の利点があります。

  • 入力と出力だけに注目して、勾配を計算できる。(局所的に計算できる)
  • 後ろ向きに信号を伝播させるだけで微分が簡単に計算できる。

4. 関連した記事

PR