5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

分かりやすい誤差逆伝播法(Backpropagation)

Last updated at Posted at 2021-07-23

1.はじめに

今日は、ニューラルネットワークの基本アルゴリズムである誤差逆伝播法(Backpropagation)をわかりやすく紹介したいと思います。疲れた時、色々な数式を見ると頭は痛くなっちゃいます。なので、具体的な数字を使って誤差逆伝播法を紹介します。

2.ニューラルネットワーク

1627030564(1).png
i1i2は入力、o1o2は出力、wはパラメータです(Biasはなし、活性化関数はidentity)。

Hidden層:h1=i1*w1+i2*w3,  h2=i1*w2+i2*w4
Output層:o1=h1*w5+h2*w7,  o2=h1*w6+h2*w8

誤差逆伝播法の目標:入力値を与え、wを学習させることより、出力値をo1,o2に近くする。

3.誤差逆伝播法(Backpropagation)

具体的な数字を与える:

i1=1, i2=1.5, o1target=2.5, o2target=3

パラメータwの初期値を設定する(初期値の設定は基準がある、こちらで適当にしました):

w1=1.5, w2=2, w3=2, w4=2.5, w5=1.2, w6=2.5, w7=0.5, w8=1

ステップ1 順伝播

h1=i1*w1+i2*w3=1*1.5+1.5*2=4.5
h2=i1*w2+i2*w4=1*2+1.5*2.5=5.75
o1=h1*w5+h2*w7=4.5*1.2+5.75*0.5=8.275
o2=h1*w6+h2*w8=4.5*2.5+5.75*1=17

上記通り、順伝播が終わりです。wの初期値を使って入力i1, i2における出力o1(8.275), o2(17)を算出しました。しかし、正解のo1target(2.5), o2target(3)と全然違います。これから、出力の誤差に逆伝播を行い、パラメータwを更新し、改めて出力を算出します。

ステップ2 逆伝播

誤差設定

E=E1+E2=1/2*(o1target-o1)^2+1/2*(o2target-o2)^2

誤差計算

E=E1+E2=1/2*(o1target-o1)^2+1/2(o2target-o2)^2=1/2*(2.5-8.275)^2+1/2*(3-17)^2=114.68

パラメータwの更新

パラメータwの更新は、Output層からHidden層まではw5, w6, w7, w8、Hidden層からInput層まではw1, w2, w3, w4の更新です。こちらでw5の更新を例として解説します。
考え方は:パラメータw5は誤差Eにどのような影響を与えたかを知りたい、そしてw5を更新します。

1)w5は誤差Eにどのような影響を与えたかーーー編微分

w5で編微分:

∂E/∂w5=∂E/∂E1*∂E1/∂w5
∂E/∂E1=2*1/2*(o1target-o1)*(-1)+0=5.775
∂E1/∂w5=h1+0=4.5
∂E/∂w5=∂E/∂E1*∂E1/∂w5=5.775*4.5=25.9875

2)w5を更新する

学習率ηを0.1と設定し、w5を更新する:

w5+=w5-η*∂E/∂w5=1.2-0.1*25.9875=-1.3986

同じように、他のwを更新します。
これで、一回の誤差逆伝播は終わりです。更新されたwを改めてネットワークに入れて計算します。多く反復した後、誤差が小さくなり、出力はターゲット値に近くなります。

4.まとめ

具体的な数字を使って誤差逆伝播法を紹介してみました。

参考

Understanding and coding Neural networks From Scratch in Python and R
https://www.analyticsvidhya.com/blog/2020/07/neural-networks-from-scratch-in-python-and-r/

Ps

Multilayer Perceptron Training VisualizationというMLPの可視化できるツールをお勧めします。
サイト:https://borgelt.net/doc/mlpd/mlpd.html#Introduction

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?