5.3. 順伝播、逆伝播、および計算グラフ¶
5.3.1. 順伝播¶
損失関数が \(l\) であり、データ例のラベルが \(y\) であると仮定すると、単一のデータ例に対する損失項は次のように計算できる。
後で導入する \(\ell_2\) 正則化の定義に従い、ハイパーパラメータ \(\lambda\) が与えられたとき、正則化項は
以下では、\(J\) を 目的関数 と呼ぶ。
5.3.2. 順伝播の計算グラフ¶
図 5.3.1 順伝播の計算グラフ。¶
5.3.3. 逆伝播¶
次に、連鎖律に従って、目的関数の出力層変数 \(\mathbf{o}\) に関する勾配を計算する。
次に、正則化項の両方のパラメータに関する勾配を計算する。
活性化関数 \(\phi\) は要素ごとに適用されるため、中間変数 \(\mathbf{z}\) の勾配 \(\partial J/\partial \mathbf{z} \in \mathbb{R}^h\) を計算するには、要素ごとの乗算演算子を用いる必要がある。これを \(\odot\) で表する。
5.3.4. ニューラルネットワークの学習¶
5.3.5. まとめ¶
5.3.6. 演習¶
あるスカラー関数 \(f\) の入力 \(\mathbf{X}\) が \(n \times m\) 行列であると仮定する。\(\mathbf{X}\) に関する \(f\) の勾配の次元は何ですか。
この節で説明したモデルの隠れ層にバイアスを追加せよ(正則化項にバイアスを含める必要はない)。
対応する計算グラフを描いて。
順伝播と逆伝播の式を導出して。
この節で説明したモデルにおける学習時と予測時のメモリ使用量を計算して。
2階導関数を計算したいと仮定する。計算グラフには何が起こりますか。計算にはどれくらい時間がかかると予想するか。
計算グラフが GPU に対して大きすぎると仮定する。
それを複数の GPU に分割できるか。
小さいミニバッチで学習する場合と比べて、利点と欠点は何ですか。