はじめに
この記事はゼロから作るディープラーニング 6章誤差逆伝播法を自分なりに理解して分かりやすくアウトプットしたものです。
文系の自分でも理解することが出来たので、気持ちを楽にして読んでいただけたら幸いです。
また、本書を学習する際に参考にしていただけたらもっと嬉しいです。
誤差逆伝播法を用いた勾配式
前回の記事で実装したニューラルネットワークの勾配式は、各パラメータに微量な値の増加をして偏微分を求めて勾配を出していました。(数値微分)
しかし、数値微分は単純で実装もしやすいですが、処理が遅いという欠点があります。DeepLearningには相当な時間がかかるので、できる限り時間を省略できる工夫をしていかなくてはいけません。
そこで用いられるのが、誤差逆伝播法を用いた勾配式です。
これを用いることで、処理にかかる時間を大幅に短縮することができます。ですが、実装がかなり複雑になるので、実装に手間取ったりミスが起こってしまいます。それがデメリットです。
まず、誤差逆伝播法を理解するには計算グラフというものを理解することが一番の近道と言えます。
これから計算グラフについて解説していきます。
計算グラフとは
計算グラフというのは計算をニューラルネットワークの構造のように層の形にして表し、各ニューロンにはその計算に使う関数を入れて入力層には関数に入る変数の値が入ります。
言葉だと理解するのが難しいので、図にしてみます。
一つ100円のリンゴを3つ買う時の合計金額を求めよ。なお消費税は10%とする。
上のように計算を分けて層の形にして順番に解いていくのを計算グラフと言います。
そして、計算グラフを左から右に解いていく、上の例でいうと合計金額を求める処理を順伝播処理と言います。
計算グラフを右から左に解いていく、各関数の変数の微分を求めることを目的とした処理を逆伝播処理と言います。