Top Banner
ニニニニニニニニニニニニニ ニニニニニニニニニニニニニニニニニニ ニニニニ
30

ニューラルネットワーク入門

Apr 16, 2017

Download

Technology

naoto moriyama
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ニューラルネットワーク入門

ニューラルネットワーク入門〜パーセプトロンから勾配降下法まで〜森山直人

Page 2: ニューラルネットワーク入門

パーセプトロン

x z

人間の思考(脳)を構築する最小計算ユニットであるパーセプトロンを考える

Page 3: ニューラルネットワーク入門

パーセプトロン

何かを入力ゴニョゴニョして

何かを出力x z

Page 4: ニューラルネットワーク入門

一般的な動作原理

入力が一定に達すると そこで出力するx z

Page 5: ニューラルネットワーク入門

バイアス

入力が一定に達すると 出力する

これをバイアスという

bx z

Page 6: ニューラルネットワーク入門

複数入力

入力は複数になる

※ でも出力は 1 つx2 z

x1

x3

Page 7: ニューラルネットワーク入門

複数入力

ここにもバイアスはあるbx2

x1

x3

Page 8: ニューラルネットワーク入門

重み

b入力の重みを変えてみる(太さが重みの度合い)

x2

x1

x3

Page 9: ニューラルネットワーク入門

重み

b入力の重みを変えてみる(太さが重みの度合い)

x2

x1

x3

w1

w2

w3

Page 10: ニューラルネットワーク入門

総入力

bx2 ・ w2

入力の合計とバイアスを比較

⇒ 出力

x3 ・ w3 x1 ・ w1

Page 11: ニューラルネットワーク入門

活性化関数

x ・ w zb 出力の値をコントロールしたいWhy ?ただ一定の閾値を超えると発火するのでは、線形分離しかできない非線形性を持たすことで、表現の自由度を獲得したい多層になった場合にいろいろ都合が良い(後述)

Page 12: ニューラルネットワーク入門

活性化関数

x ・ w zbここを関数化する

Page 13: ニューラルネットワーク入門

活性化関数

x ・ w zbここを関数化する

⇒ z = f(x ・ w + b)

Page 14: ニューラルネットワーク入門

活性化関数⇒ z = f(x ・ w + b)

この f() の中身の計算によって、出力される z の値が変わってくる• シグモイド ⇒ 0 ~ 1• 双曲線正接関数 ⇒ -1 ~ 1• 正規化線形関数 ⇒ 0 ~ ∞

Page 15: ニューラルネットワーク入門

ニューラルネットワーク前述したパーセプトロンが多数積み重なったもの

出力は複数あるが、すべて同じ出力のコピー

入力層 隠れ層 出力層

Page 16: ニューラルネットワーク入門

ニューラルネットワーク

入力層 隠れ層 出力層

活性化関数と誤差関数は基本的に単一パーセプトロンと同じ考え・活性化関数: ∟各層の各ニューロンごとに活性化関数を持つ ∟異なる層で異なる誤差関数を持つことができる・誤差関数 ∟出力層と正解データ間にて誤差関数を計算 ∟後述の誤差逆伝搬を用いて、各ニューロンの微分

Page 17: ニューラルネットワーク入門

f()

ニューラルネットワークのフロー

x x*w

w

x*w+b

b

入力 重み付加 バイアス計算 活性化関数

Page 18: ニューラルネットワーク入門

誤差ここまでは、パーセプトロンの動作について考えてきたが、そのパーセプトロンが正しく機能しているかを判断する必要があるそもそも、パーセプトロンを使う理由はその計算によって、意図する値を出力させること誤った値が出た場合は、正しい値を出力させるべく、本来出力させたい値と比較させ、ずれた度合いに応じて、パーセプトロン内の値を修正する必要がある

Page 19: ニューラルネットワーク入門

誤差

修正箇所は重みとバイアス

x ・ w zb

Page 20: ニューラルネットワーク入門

誤差関数

bx ・ w z yパーセプトロンの計算結果 正しい値

ここの差分を計算すれば良い

Page 21: ニューラルネットワーク入門

誤差関数

bx ・ w z yパーセプトロンの計算結果 正しい値

E(w) = ‖ y - f(w ・ x + b) ‖誤差関数 正解

活性化関数入力値

2 (絶対値を取る)

Page 22: ニューラルネットワーク入門

誤差関数

E(w) = ‖ y – f(w ・ x + b) ‖誤差関数 正解

活性化関数入力値

この誤差関数が小さいほど、正解データと近い値が出力されたことになる⇒ 良い重みとバイアスが設定でいていることになる

2

Page 23: ニューラルネットワーク入門

勾配降下

誤差を小さくしたい

誤差関数の最小化を図る

Page 24: ニューラルネットワーク入門

勾配降下E(w)

w

誤差が最小の値

この w の値を知りたい

Page 25: ニューラルネットワーク入門

勾配降下E(w)

w

誤差が最小の値

この w の値を知りたい

今こことする

Page 26: ニューラルネットワーク入門

勾配降下E(w)

w

誤差が最小の値

この w の値を知りたい

少しずつ誤差が小さくなるよう、wを修正していく

Page 27: ニューラルネットワーク入門

勾配降下E(w)

w

誤差が最小の値

この w の値を知りたい

修正し過ぎると、意図しない位置まで行ってしまう

Page 28: ニューラルネットワーク入門

勾配降下E(w)

w

誤差が最小の値

この w の値を知りたい

この修正度合いを決めるのがとても重要

Page 29: ニューラルネットワーク入門

勾配降下法E(w)

w

誤差が最小の値

この w の値を知りたい

この修正度合いを決めるのがとても重要この「修正度合い」は一般的に学習率と呼ばれる。この学習率は様々なアルゴリズムによって計算される。例)・ AdaGrad・ RMSProp・ AdaDelta・ Adam

Page 30: ニューラルネットワーク入門

次回はバッチ学習から解説します・・・