Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ニューラルネットワーク入門
〜パーセプトロンから勾配降下法まで〜
森山直人
パーセプトロン
x z
人間の思考(脳)を構築する最小計算ユニッ
トであるパーセプトロンを考える
パーセプトロン
何かを入力
ゴニョゴニョ
して
何かを出力
x z
一般的な動作原理
入力が一定に
達すると
そこで出力する
x z
バイアス
入力が一定に
達すると
出力する
これをバイアスという
bx z
複数入力
入力は複数になる
※でも出力は1つ
x2 z
x1
x3
複数入力
ここにもバイアスはある
bx2
x1
x3
重み
b
入力の重みを変えてみる
(太さが重みの度合い)
x2
x1
x3
重み
b
入力の重みを変えてみる
(太さが重みの度合い)
x2
x1
x3
w1
w2
w3
総入力
bx2・w2
入力の合計とバイアスを比較
⇒出力
x3・w3 x1・w1
活性化関数
x・w z
b 出力の値をコントロールしたい
Why?
ただ一定の閾値を超えると発火するのでは、線
形分離しかできない
非線形性を持たすことで、表現の自由度を獲得
したい
多層になった場合にいろいろ都合が良い(後
述)
活性化関数
x・w z
b
ここを関数化する
活性化関数
x・w z
b
ここを関数化する
⇒ z = f(x・w + b)
活性化関数
⇒ z = f(x・w + b)
この f() の中身の計算によって、出力されるzの値が変わってくる
• シグモイド ⇒ 0 ~ 1
• 双曲線正接関数 ⇒ -1 ~ 1
• 正規化線形関数 ⇒ 0 ~ ∞
ニューラルネットワーク
前述したパーセプトロンが多数積み重なったもの
出力は複数あるが、すべて同じ出力のコピー
入力層 隠れ層
出力層
ニューラルネットワーク
入力層 隠れ層
出力層
活性化関数と誤差関数は基本的に単一
パーセプトロンと同じ考え
・活性化関数:
∟各層の各ニューロンごとに活性化関数を持つ
∟異なる層で異なる誤差関数を持つことができる
・誤差関数
∟出力層と正解デ...
f()
ニューラルネットワークのフロー
x x*w
w
x*w+b
b
入力 重み付加 バイアス計算 活性化関数
誤差
ここまでは、パーセプトロンの動作について考えてきたが、その
パーセプトロンが正しく機能しているかを判断する必要がある
そもそも、パーセプトロンを使う理由はその計算によって、意図す
る値を出力させること
誤った値が出た場合は、正しい値を出力...
誤差
修正箇所は重みとバイアス
x・w z
b
誤差関数
bx・w z
y
パーセプトロンの計算結果 正しい値
ここの差分を
計算すれば良い
誤差関数
bx・w z
y
パーセプトロンの計算結果 正しい値
E(w) = ‖ y - f(w・x + b) ‖
誤差関数 正解
活性化関数
入力値
2 (絶対値を取る)
誤差関数
E(w) = ‖ y – f(w・x + b) ‖
誤差関数 正解
活性化関数
入力値
この誤差関数が小さいほど、正解データと近い値が
出力されたことになる
⇒良い重みとバイアスが設定でいていることになる
2
勾配降下
誤差を小さくしたい
誤差関数の最小化を図る
勾配降下
E(w)
w
誤差が最小の値
このwの値を知りたい
勾配降下
E(w)
w
誤差が最小の値
このwの値を知りたい
今こことする
勾配降下
E(w)
w
誤差が最小の値
このwの値を知りたい
少しずつ誤差が小さくなるよう、
wを修正していく
勾配降下
E(w)
w
誤差が最小の値
このwの値を知りたい
修正し過ぎると、意図しない
位置まで行ってしまう
勾配降下
E(w)
w
誤差が最小の値
このwの値を知りたい
この修正度合いを決めるのが
とても重要
勾配降下法
E(w)
w
誤差が最小の値
このwの値を知りたい
この修正度合いを決めるのが
とても重要
この「修正度合い」は一般的に
学習率と呼ばれる。
この学習率は様々なアルゴリズム
によって計算される。
例)
・AdaGrad
・RMSPr...
次回はバッチ学習から解説します・・・
Upcoming SlideShare
Loading in …5
×

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

18,067 views

Published on

ニューラルネットワークの基礎であるパーセプトロンから、勾配計算までの概念をまとめました。

Published in: Technology
  • Be the first to comment

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

  1. 1. ニューラルネットワーク入門 〜パーセプトロンから勾配降下法まで〜 森山直人
  2. 2. パーセプトロン x z 人間の思考(脳)を構築する最小計算ユニッ トであるパーセプトロンを考える
  3. 3. パーセプトロン 何かを入力 ゴニョゴニョ して 何かを出力 x z
  4. 4. 一般的な動作原理 入力が一定に 達すると そこで出力する x z
  5. 5. バイアス 入力が一定に 達すると 出力する これをバイアスという bx z
  6. 6. 複数入力 入力は複数になる ※でも出力は1つ x2 z x1 x3
  7. 7. 複数入力 ここにもバイアスはある bx2 x1 x3
  8. 8. 重み b 入力の重みを変えてみる (太さが重みの度合い) x2 x1 x3
  9. 9. 重み b 入力の重みを変えてみる (太さが重みの度合い) x2 x1 x3 w1 w2 w3
  10. 10. 総入力 bx2・w2 入力の合計とバイアスを比較 ⇒出力 x3・w3 x1・w1
  11. 11. 活性化関数 x・w z b 出力の値をコントロールしたい Why? ただ一定の閾値を超えると発火するのでは、線 形分離しかできない 非線形性を持たすことで、表現の自由度を獲得 したい 多層になった場合にいろいろ都合が良い(後 述)
  12. 12. 活性化関数 x・w z b ここを関数化する
  13. 13. 活性化関数 x・w z b ここを関数化する ⇒ z = f(x・w + b)
  14. 14. 活性化関数 ⇒ z = f(x・w + b) この f() の中身の計算によって、出力されるzの値が変わってくる • シグモイド ⇒ 0 ~ 1 • 双曲線正接関数 ⇒ -1 ~ 1 • 正規化線形関数 ⇒ 0 ~ ∞
  15. 15. ニューラルネットワーク 前述したパーセプトロンが多数積み重なったもの 出力は複数あるが、すべて同じ出力のコピー 入力層 隠れ層 出力層
  16. 16. ニューラルネットワーク 入力層 隠れ層 出力層 活性化関数と誤差関数は基本的に単一 パーセプトロンと同じ考え ・活性化関数: ∟各層の各ニューロンごとに活性化関数を持つ ∟異なる層で異なる誤差関数を持つことができる ・誤差関数 ∟出力層と正解データ間にて誤差関数を計算 ∟後述の誤差逆伝搬を用いて、各ニューロンの微分
  17. 17. f() ニューラルネットワークのフロー x x*w w x*w+b b 入力 重み付加 バイアス計算 活性化関数
  18. 18. 誤差 ここまでは、パーセプトロンの動作について考えてきたが、その パーセプトロンが正しく機能しているかを判断する必要がある そもそも、パーセプトロンを使う理由はその計算によって、意図す る値を出力させること 誤った値が出た場合は、正しい値を出力させるべく、本来出力させ たい値と比較させ、ずれた度合いに応じて、パーセプトロン内の値 を修正する必要がある
  19. 19. 誤差 修正箇所は重みとバイアス x・w z b
  20. 20. 誤差関数 bx・w z y パーセプトロンの計算結果 正しい値 ここの差分を 計算すれば良い
  21. 21. 誤差関数 bx・w z y パーセプトロンの計算結果 正しい値 E(w) = ‖ y - f(w・x + b) ‖ 誤差関数 正解 活性化関数 入力値 2 (絶対値を取る)
  22. 22. 誤差関数 E(w) = ‖ y – f(w・x + b) ‖ 誤差関数 正解 活性化関数 入力値 この誤差関数が小さいほど、正解データと近い値が 出力されたことになる ⇒良い重みとバイアスが設定でいていることになる 2
  23. 23. 勾配降下 誤差を小さくしたい 誤差関数の最小化を図る
  24. 24. 勾配降下 E(w) w 誤差が最小の値 このwの値を知りたい
  25. 25. 勾配降下 E(w) w 誤差が最小の値 このwの値を知りたい 今こことする
  26. 26. 勾配降下 E(w) w 誤差が最小の値 このwの値を知りたい 少しずつ誤差が小さくなるよう、 wを修正していく
  27. 27. 勾配降下 E(w) w 誤差が最小の値 このwの値を知りたい 修正し過ぎると、意図しない 位置まで行ってしまう
  28. 28. 勾配降下 E(w) w 誤差が最小の値 このwの値を知りたい この修正度合いを決めるのが とても重要
  29. 29. 勾配降下法 E(w) w 誤差が最小の値 このwの値を知りたい この修正度合いを決めるのが とても重要 この「修正度合い」は一般的に 学習率と呼ばれる。 この学習率は様々なアルゴリズム によって計算される。 例) ・AdaGrad ・RMSProp ・AdaDelta ・Adam
  30. 30. 次回はバッチ学習から解説します・・・

×