Help us understand the problem. What is going on with this article?

誤差逆伝播法等に用いる 計算グラフ の基本パーツ

More than 1 year has passed since last update.

計算グラフ(computational graph)の 基本パーツ の図解です。

ニューラルネットワークの誤差逆伝播法を学習時に 計算グラフを 知りました。
局所的な計算を連鎖させていく考え方で、理解しやすくて良いですね。

計算グラフの基本パーツ

本記事の図では、黒線・黒文字は順伝搬、赤線・赤文字は逆伝播を示します。

z=f(x)

BN_A_5_OneWay.PNG

順方向 z=f(x) の計算の場合、
その逆伝播は 入力値$E$に f(x)の微分値を掛けた値が 出力となる。

加算ノード

BN_A_1_Plus_E.PNG

加算ノードの逆伝播は、 入力値$E$ をそのまま 伝達する。

順方向 $z=x+y$ に対し、
  $x$ の微分値 $\frac{\partial z} {\partial x}$ は $1$
  $y$ の微分値 $\frac{\partial z} {\partial y}$ も $1$
のため、入力$E$ を そのまま伝達 となる。

乗算ノード

BN_A_2_Multiply_E.PNG

加算ノードの逆伝播は、 入力値$E$ × 順伝播を入れ替えた値 を伝達する。

順方向 $z=xy$ に対し、
  $x$ の微分値 $\frac{\partial z} {\partial x}$ は $y$
  $y$ の微分値 $\frac{\partial z} {\partial y}$ は $x$
のため、入力値$E$ × 順伝播を入れ替えた値を 伝達となる。

分岐ノード

順伝播の式中の2か所で $x$が参照されている場合に、$x$の分岐と扱う。
BN_A_6_Branch.PNG

逆伝播は、分岐先からの逆伝播値の和 を伝達する。

総和ノード

伝播する行列での一方向で(下図の例では$N$の方向で)総和を求める場合、(N,D)の行列は (D,)の次元になる。
BN_A_3_Sum_0.PNG

総和は 下図の様に 多数の加算ノード と読みかえ出来る。
BN_A_3_Sum_1.PNG

総和の逆伝播は、(D,)次元の逆伝播の入力行列を、そのまま$N$個に伝達し(N,D)次元の行列を生成する。

BN_A_3_Sum_2.PNG

Broadcast ノード

行列のアダマール積にて
(N,D)次元の行列A と (D,)次元の行列Bの積を求める場合、Bは下図で示す Broadcast が行われ(N,D)次元の行列として演算する。

BN_A_4_BroadCast_0.PNG

Broadcastは N個への分岐ノードと読みかえが出来る。
逆伝播は、(N,D)次元の行列から (D,)次元への 総和となる。

BN_A_4_BroadCast_1.PNG

参考文献

関連項目
  Mind で Neural Network (準備編2) 順伝播・逆伝播 図解

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away