Upgrade to Pro — share decks privately, control downloads, hide ads and more …

誤差逆伝播法によるニューラルネットワーク(BackPropagation Neural Network, BPNN)~深層学習(ディープラーニング)の基礎~

誤差逆伝播法によるニューラルネットワーク(BackPropagation Neural Network, BPNN)~深層学習(ディープラーニング)の基礎~

BPNN とは?
ニューラルネットワークの構造 1/2
ニューラルネットワークの構造 2/2
ニューラルネットワークの構造の補足
ニューラルネットワークの構造を式で表す
活性化関数の例 1/2
活性化関数の例 1/2
活性化関数についての補足
ネットワークを構築するとは?
誤差逆伝播法 サンプルごとの誤差 E
誤差逆伝播法 隠れ層 k 層目から y への重み
誤差逆伝播法 k = 1 のとき
ニューラルネットワークの構造 隠れ層 1 層
誤差逆伝播法 x から隠れ層 1 層目への重み
誤差逆伝播法 活性化関数の微分
誤差逆伝播法 k > 1 のとき 1/3
誤差逆伝播法 k > 1 のとき 2/3
誤差逆伝播法 k > 1 のとき 3/3
誤差逆伝播法 名前の由来
誤差逆伝播法 注意点

Hiromasa Kaneko

July 14, 2018
Tweet

More Decks by Hiromasa Kaneko

Other Decks in Technology

Transcript

  1. ニューラルネットワークの構造 1/2 2 x0 =1 x1 x2 xm ⼊⼒変数 (説明変数)

    z0 (1)=1 z1 (1) = f(a1 (1)) zm(1) (1) = f(am(1) (1)) ・・・ z2 (1) = f(a2 (1)) ・・・ w0,1 (0) wm,m(1) (0) ・・・ ・・・ z0 (2)=1 z1 (2) = f(a1 (2)) zm(2) (2) = f(am(2) (2)) z2 (2) = f(a2 (2)) w0,1 (1) wm(1),m(2) (1) ・・・ ・・・ 隠れ層 1 層目 隠れ層 2 層目 w0,1 (2) wm(2),m(3) (2) ・・・ ・・・ i ・・・ ・・・ ・・・ w2,2 (1) w2,2 (3) xi zi (1) = f(ai (1)) zi (2) = f(ai (2))
  2. ニューラルネットワークの構造 2/2 3 z0 (k)=1 z1 (k) = f(a1 (k))

    zm(k) (k) = f(am(k) (k)) z2 (k) = f(a2 (k)) w0,1 (k-1) wm(k-1),m(k) (k-1) ・・・ ・・・ 隠れ層 k 層目 ・・・ ・・・ i ・・・ ・・・ ・・・ 出⼒変数 (目的変数) yE ・・・ ・・・ i ・・・ ・・・ ・・・ 隠れ層 j 層目 w0 (k) w2,2 (k-1) w2 (k) wm(k) (k) zi (k) = f(ai (k)) y
  3. ニューラルネットワークの構造の補足 ⼊⼒変数 (説明変数) と隠れ層 1 層目の間や、隠れ層の前後の間や、 隠れ層 k 層目と出⼒変数 (目的変数)

    の間の、すべての線 (ー) に 重み w がある それぞれの隠れ層における四角 ( ) をニューロンと呼ぶ ⼊⼒変数 (説明変数) には x0 = 1 が、それぞれの隠れ層にも 0 番目の ニューロンとして z0 (j) =1 が、バイアスパラメータとしてある 隠れ層 j-1 層目の p 番目のニューロンと、隠れ層 j 層目の i 番目の ニューロンとの間の重みを、wp,i (j) とする 4 zi (j) = f(ai (j))
  4. ニューラルネットワークの構造を式で表す 5 xi ︓i 番目の⼊⼒変数 (説明変数) y︓出⼒変数 (目的変数) yE ︓推定された出⼒変数

    (目的変数) f : 活性化関数 ( ) ( ) ( ) ( ) ( ) 1 0 0 0 , 0, , 0 1 0 1 m m i p i p i p i p p p a w x w w x x = = = + = =   ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 1 1 1 1 1 1 1 , 0, , 0 1 0 1 j j m m j j j j j j j i p i p i p i p p p a w z w w z z − − − − − − − − = = = + = =   ( ) ( ) ( ) j j i i z f a = ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) E 0 0 1 0 1 k k m m k k k k k k p p p p p p y w z w w z z = = = + = =  
  5. 活性化関数の例 1/2 6 ( ) ( ) ( ) j

    j i i z f a = ( ) ( ) ( ) 1 1 exp j i j i z a = + − ( ) ( ) ( ) 1 j j i i j i a z a = + ( ) ( ) ( ) ( ) ( ) ( ) 1 exp exp j j i j i m j p p a z a = =  シグモイド関数 ソフトサイン ソフトマックス関数
  6. 活性化関数の例 1/2 7 ( ) ( ) ( ) j

    j i i z f a = ( ) ( ) ( ) max 0, j j i i z a = ( ) ( ) ( )2 exp j j i i z a γ   = −     ReLU (Rectified Linear Unit) 動径基底関数
  7. ネットワークを構築するとは︖ 9 すべての重み ( wp (k) や wp,i (j) )

    を決めるということ 決める方法の一つが、誤差逆伝播法
  8. 誤差逆伝播法 サンプルごとの誤差 E 10 ( )2 E 1 2 E

    y y = − サンプルごとの誤差 E は サンプルごとに E が小さくなるように、重み w を変化させていけばよい w を微小変化させることでどう E が変化するか、を 求めるため、E を w で微分する これにより w を変化させるべき方向 (大きくするか小さくするか) が 求まるので、たとえば確率的勾配降下法 [1] などで重みを更新する ・・・ [1] https://ja.wikipedia.org/wiki/確率的勾配降下法
  9. 誤差逆伝播法 隠れ層 k 層目から y への重み 11 ( ) (

    ) E E k k p p y E E y w w ∂ ∂ ∂ = ∂ ∂ ∂ (連鎖則) ・・・ E E E y y y ∂ = − ∂ ( ) 2 2 d 1 log 2 d x x x x = でやっていることと同じ p. 10 より p. 5 の4式目より ( ) ( ) E k p k p y z w ∂ = ∂ よって、 ( ) ( ) ( ) E k p k p E y y z w ∂ = − ∂
  10. 誤差逆伝播法 k = 1 のとき 12 続いて、隠れ層 j 層目から j+1層目への重みを考えたいが、

    まずは、最も単純な k = 1 つまり隠れ層が 1 層のときを考える
  11. ニューラルネットワークの構造 隠れ層 1 層 13 x0 =1 x1 x2 xm

    ⼊⼒変数 (説明変数) z0 (1)=1 z1 (1) = f(a1 (1)) zm(1) (1) = f(am(1) (1)) ・・・ z2 (1) = f(a2 (1)) ・・・ w0,1 (0) wm,m(1) (0) ・・・ ・・・ 隠れ層 1 層目 xi zi (1) = f(ai (1)) 出⼒変数 (目的変数) yE w0 (1) w2 (1) wm(1) (1) y
  12. 誤差逆伝播法 x から隠れ層 1 層目への重み14 ( ) ( ) (

    ) ( ) 1 0 1 0 , , i p i i p i a E E w a w ∂ ∂ ∂ = ∂ ∂ ∂ (連鎖則) ( ) ( ) 1 0 , i p p i a x w ∂ = ∂ p. 5 の1式目より ( ) ( ) ( ) ( ) E E E 1 1 1 E i i i y y E E y y y a a a ∂ ∂ ∂ ∂ = = − ∂ ∂ ∂ ∂ また、 (p. 11) (連鎖則) p. 5 の4式目より ( ) ( ) ( ) ( ) 1 1 E 1 1 i i i i z y w a a ∂ ∂ = ∂ ∂ よって、 ( ) ( ) ( ) ( ) ( ) 1 1 E 0 1 , i p i p i i z E x y y w w a ∂ ∂ = − ∂ ∂
  13. 誤差逆伝播法 活性化関数の微分 15 ( ) ( ) 1 1 i

    i z a ∂ ∂ は、p. 6, 7 の活性化関数を ai (j) で微分して、その導関数に 活性化関数は ai (j) で微分可能である必要がある ai (1) を代⼊したもの
  14. 誤差逆伝播法 k > 1 のとき 1/3 16 隠れ層が 2 層以上のとき

    (ディープニューラルネットワーク)、 隠れ層 j-1 層目から j 層目への重みを考える ( ) ( ) ( ) ( ) 1 1 , , j i j j j p i i p i a E E w a w − − ∂ ∂ ∂ = ∂ ∂ ∂ (連鎖則) p. 5 の2式目より ( ) ( ) ( ) 1 1 , j j i p j p i a z w − − ∂ = ∂ ( ) ( ) ( ) ( ) ( ) 1 1 1 1 j j m q j j j q i q i a E E a a a + + + = ∂ ∂ ∂ = ∂ ∂ ∂  隠れ層 j 層目の i 番目のニューロンにつながっている、 隠れ層 j+1 層目の m(j+1) 個のニューロンを考えると、
  15. 誤差逆伝播法 k > 1 のとき 2/3 17 ( ) (

    ) ( ) ( ) ( ) 1 1 1 1 j j m q j j j q i q i a E E a a a + + + = ∂ ∂ ∂ = ∂ ∂ ∂  ( ) ( ) ( ) ( ) ( ) 1 , j j q j i i q j j i i a z w a a + ∂ ∂ = ∂ ∂ p. 5 の2式目より ( ) ( ) ( ) ( ) 1 1 , 0 j m j j j q p q p p a w z − + = =  から、 ( ) ( ) j i j i z a ∂ ∂ は、p. 6, 7 の活性化関数を ai (j) で微分して、その導関数に ai (1) を代⼊したもの
  16. 誤差逆伝播法 k > 1 のとき 3/3 18 p. 16, 17

    をまとめると、 ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 1 , 1 1 1 , j j m j j i p i q j j j q p i q i z E E z w w a a + − − + = ∂ ∂ ∂ = ∂ ∂ ∂  ( ) 1 j q E a + ∂ ∂ について、p. 17 と同様にして、隠れ層 j+1 層目の q 番目の ニューロンにつながっている、隠れ層 j+2 層目の m(j+2) 個のニューロンを 考えることができる これを繰り返すと、j+2 層目、 j+3 層目、・・・となり、最後は y になる つまり、 E E E y y y ∂ = − ∂
  17. 誤差逆伝播法 名前の由来 19 以上のように、y の誤差 yE – y が、隠れ層 k

    層目、k-1 層目、・・・ と 逆に伝播して、重みの変化に寄与していることから、誤差逆伝播法と呼ぶ
  18. 誤差逆伝播法 注意点 20 y の誤差が伝播するとき、隠れ層 k 層目、k-1 層目、・・・ と⼊⼒変数 (説明変数)

    に近くなるにつれて、値が小さくなってしまうことに注意 ( ) ( ) j i j i z a ∂ ∂ 重み w が変化しなくなってしまう p. 18 に活性化関数の微分係数 があるが、たとえば シグモイド関数の微分係数の最大値は 0.25 であり、隠れ層の層が 深くなるにつれて、最大でも 0.25j と指数関数的に小さくなってしまう そこで、特に隠れ層の数 k を多くするときには、微分係数が 1 になる ReLU が使われる