🏊

誤差逆伝播チートシート

に公開

誤差逆伝播チートシート

誤差逆伝播(Backpropagation)は、計算グラフにチェインルールを適用することで各パラメータの勾配を求める仕組みである。
ここでは、ニューラルネットワークで頻出するパターンを計算グラフと数式で整理する。


基本原則:チェインルール

\frac{dL}{da} = \frac{dL}{dy} \cdot \frac{dy}{da}

誤差は中間変数を経由して伝わる。すべての逆伝播はこの形に帰着する。


足し算(加算ノード)

y = a + b

逆伝播:

\frac{dL}{da} = \frac{dL}{dy}, \quad \frac{dL}{db} = \frac{dL}{dy}

掛け算(積ノード)

y = a \cdot b

逆伝播:

\frac{dL}{da} = b \cdot \frac{dL}{dy}, \quad \frac{dL}{db} = a \cdot \frac{dL}{dy}

合成関数(活性化)

y = f(a)

スカラーの場合:

\frac{dL}{da} = f'(a) \cdot \frac{dL}{dy}

ベクトルの場合:

\frac{dL}{dz} = \frac{dL}{dy} \odot f'(z)

アダマール積(⊙)

⊙ は アダマール積(Hadamard product) を意味する。
これは「行列やベクトルの要素ごとの掛け算」である。

例:

[a_1, a_2, a_3] \ \odot \ [b_1, b_2, b_3] = [a_1b_1, \ a_2b_2, \ a_3b_3]

活性化関数の微分

Sigmoid:

f'(a) = y(1-y)

tanh:

f'(a) = 1 - y^2

ReLU:

f'(a) = \begin{cases} 1 & (a > 0) \\ 0 & (a \leq 0) \end{cases}

Leaky ReLU:

f'(a) = \begin{cases} 1 & (a > 0) \\ \alpha & (a \leq 0) \end{cases}

行列積

Y = A B

逆伝播:

\frac{dL}{dA} = \frac{dL}{dY} B^T, \quad \frac{dL}{dB} = A^T \frac{dL}{dY}

なぜこうなるか?
行列の形状を合わせたらこうなる。


Affine層(全結合)

z = W x + b, \quad y = f(z)

逆伝播:

\delta = \frac{dL}{dz} = \frac{dL}{dy} \odot f'(z)
\frac{dL}{dW} = \delta x^T, \quad \frac{dL}{db} = \delta, \quad \frac{dL}{dx} = W^T \delta

ミニバッチ対応

単一サンプルでは \frac{dL}{dW} = \delta x^T となる。
N サンプルまとめて学習する場合(ミニバッチ)には平均を取る。

\frac{dL}{dW} = \frac{1}{N} \Delta X^T
\frac{dL}{db} = \frac{1}{N} \sum_{n=1}^N \delta^{(n)}
\frac{dL}{dX} = W^T \Delta

プーリング層

平均プーリング

出力は入力の平均。

y = \frac{1}{n} \sum_{i=1}^n x_i

逆伝播:

\frac{dL}{dx_i} = \frac{1}{n} \frac{dL}{dy}

Maxプーリング

出力は入力の最大値。

y = \max_i x_i

逆伝播:
順伝播で選ばれた最大値の位置にのみ勾配が流れる。


損失関数(回帰タスク)

L = \frac{1}{2}(y-t)^2

逆伝播:

\frac{dL}{dy} = y - t

損失関数(分類タスク)

y = \text{softmax}(z), \quad L = -\sum_i t_i \log y_i

逆伝播:

\frac{dL}{dz} = y - t

まとめ

  • 足し算 → 誤差をコピー
  • 掛け算 → 相手を掛ける
  • 合成関数 → スカラーなら f'(a) \cdot \frac{dL}{dy}、ベクトルなら \frac{dL}{dy} \odot f'(z)
  • アダマール積(⊙):要素ごとの掛け算
  • 活性化関数の微分(Sigmoid, tanh, ReLU, Leaky ReLU)
  • 行列積の逆伝播(dA = dY B^T, \ dB = A^T dY
  • Affine層(δ, W, b, x の勾配)
  • ミニバッチでは平均を取る
  • プーリング(平均・max)の逆伝播
  • MSE → y-t
  • Softmax+CE → y-t

複雑なモデルであっても、これらの基本要素に分解すれば誤差逆伝播を理解できる。

Discussion