「ゼロから作るDeep Leaning」5章:誤差逆伝播法

2017年11月8日


「ゼロから作るDeep Leaning」4章:ニューラルネットワークの学習に引き続き、「ゼロから作るDeep Leaning」についてざっくりまとめていきます!毎度のこと、本記事はあくまで書籍を読んだ人向けの備忘録程度の内容です。

逆伝播

加算ノードの逆伝播

加算ノードの逆伝播は、1を乗算するだけなので、入力された値をそのまま次のノードへ流すだけ

加算レイヤは以下のように実装される。

※「ゼロから作るDeep Leaning」 139pより引用

backward関数が逆伝播。上流から伝わってきた微分(dout)を、そのまま下流に流すだけ。

乗算ノードの逆伝播

乗算ノードの逆伝播は、入力信号をひっくり返した値を乗算して下流へ流す

乗算レイヤは以下のように実装される。

※「ゼロから作るDeep Leaning」 137pより引用

backward関数が逆伝播。上流から伝わってきた微分(dout)に対して、順伝播のひっくり返した値を乗算して下流に流している。

活性化関数〜ReLU〜

※「ゼロから作るDeep Leaning」 142pより引用

活性化関数〜Sigmoid〜

※「ゼロから作るDeep Leaning」 146pより引用

逆伝播の基本原理は以上の感じになります。
本書には、Affine/Softmaxレイヤの実装やニューラルネットワーク全体の構築をしているのですが、少し複雑で難しいコードになるので、省略します。笑

まとめ

■ニューラルネットワークの構成要素をレイヤとして実装することで、勾配の計算を効率的に求めることができる(誤差逆伝播法)。


PAGE TOP