図で理解!”学習”の基盤:ニューラルネットワークの”逆伝搬”と”更新”
ネットワークの逆伝搬とは?
これまでの記事では、
・ニューラルネットワークとは何者で、どんな処理をしているのか(図で理解!ニューラルネットワークとは?)
・各ネットワーク層での処理を一部紹介しました。
Affine層:図で理解!ニューラルネットワークとは?
Convolution層:図で理解!畳み込み処理?Convolution層?畳み込みニューラルネットワーク(CNN)の基礎
しかし、”入力になんらかの計算処理を加えて出力を得る”だけでは何の意味もありません。
重要なのは”逆伝搬”です!!!(以下図)
↓↓↓↓↓もっと詳しく↓↓↓↓↓
勘がいい方はもう分かりました?
”誤差を小さくするように各ネットワーク層のパラメーターをそれぞれ更新”を”繰り返す” = ”学習”
です。
パラメーターとは?
・Affine層で言うW(重み)とb(バイアス)
・Convolution層で言うK(カーネル)
つまり、”入力に対して掛けたり足したりする値”のことです。
ハイパーパラメーター (←重要)
パラメーターを適当に変えるわけではありません。
Wをどれだけどう変更するか、の調整をしてくれるのが”ハイパーパラメーター”です。
ハイパーパラメーターを使ってパラメーターを更新することを総称して
”ネットワークの更新”や”パラメーターの更新”と言います。
この更新方法は複数あるので、別途記事にします。
<更新方法の種類>
・SGD
・Momentum
・AdaGrad
・Adam
(ゼロから作るDeepLearning にも載っています。)
が、イメージを付けてもらうためにコードを乗せておきます。
//SGDでAffine層のWを更新
var ep = 0.001 //学習率 //(余談)任意の値だが、大体0.1,0.01,0.001辺りが多い
W = W - dW * ep //パラメーターWを更新 //dW:以下に説明
ep と言うのがハイパーパラメーターの一種で”学習率(epsilon)”と呼ばれるものです。
”一種”と言いましたが、
更新方法によって、それぞれで使用するだけのハイパーパラメーターが存在します。
逆伝搬の計算
上のコードのコメントアウトにしれっと”dW”と書きましたが、
逆伝搬の計算方法をAffine層の処理を例に記載します。
まとめ:学習の基盤:ニューラルネットワークの”逆伝搬”と”更新”
要は、入力を渡し、得た結果と期待する出力との”差異”を逆伝搬するだけなんですが、
それだけでは値が行ったり来たりしているです。
誤差をなるべく小さくできるようにパラメーターを更新してあげることで、
”計算結果の出力を、本来期待する出力に近づけよう”という訳で、
これが”学習の概念”です。
長々とありがとうございました。
Author And Source
この問題について(図で理解!”学習”の基盤:ニューラルネットワークの”逆伝搬”と”更新”), 我々は、より多くの情報をここで見つけました https://qiita.com/NagisaOniki/items/324b26065e1917469907著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .