Mais conteúdo relacionado Semelhante a 第2回 メドレー読書会 (20) 第2回 メドレー読書会8. 𝑥1
𝑥3
𝑦
𝑤1
𝑤3
𝑦 = 𝑓 Σ𝑤𝑖 𝑥𝑖 + ℎ
𝑥2
𝑤2
ℎ fは活性化関数
脳細胞(ニューロン)を模したもの。
入力に重み(wi)とバイアス(h)を加え、活性化関数にかけたものが出力になる。
重みとバイアスは、学習によって最適化される。
ユニット
10. 𝑓 𝑥 =
0 for 𝑥 < 0
1 for 𝑥 ≥ 0
ここでは、活性化関数として階段関数を使います(0/1出力にしたい)。
※後のニューラルネットワークの学習では別の関数を使います
ユニットの学習
13. 現在値:
ユニットの学習
x1 x2 y
0 0 0
1 0 0
0 1 0
1 1 1
𝑤1 = 1, 𝑤2 = −1, ℎ = 0
𝑦 = 𝑓 1 × 0 − 1 × 0 + 0 = 1
ℎ ← ℎ + 0.5 × 0 − 1 = −0.5
𝑤1 ← 𝑤1 + 0.5 × 0 − 1 × 0 = 1
𝑤2 ← 𝑤2 + 0.5 × 0 − 1 × 0 = −1
値を更新
14. 現在値:
ユニットの学習
x1 x2 y
0 0 0
1 0 0
0 1 0
1 1 1
𝑤1 = 1, 𝑤2 = −1, ℎ = −0.5
𝑦 = 𝑓 1 × 1 − 1 × 0 − 0.5 = 1
ℎ ← ℎ + 0.5 × 0 − 1 = −1
𝑤1 ← 𝑤1 + 0.5 × 0 − 1 × 1 = 0.5
𝑤2 ← 𝑤2 + 0.5 × 0 − 1 × 0 = −1
値を更新
15. 現在値:
ユニットの学習
x1 x2 y
0 0 0
1 0 0
0 1 0
1 1 1
𝑤1 = 0.5, 𝑤2 = −1, ℎ = −1
𝑦 = 𝑓 0.5 × 0 − 1 × 1 − 1 = 0
OKなので、値はそのまま
16. 現在値:
ユニットの学習
x1 x2 y
0 0 0
1 0 0
0 1 0
1 1 1
𝑤1 = 0.5, 𝑤2 = −1, ℎ = −1
𝑦 = 𝑓 0.5 × 1 − 1 × 1 − 1 = 0
ℎ ← ℎ + 0.5 × 1 − 0 = −0.5
𝑤1 ← 𝑤1 + 0.5 × 1 − 0 × 1 = 1
𝑤2 ← 𝑤2 + 0.5 × 1 − 0 × 1 = −0.5
値を更新
17. ユニットの学習
x1 x2 y
0 0 0 ○
1 0 0 ×
0 1 0 ○
1 1 1 ×
𝑤1 = 1, 𝑤2 = −0.5, ℎ = −0.5
𝑤1 = 0.5, 𝑤2 = −0.5, ℎ = −1
𝑤1 = 1, 𝑤2 = −0.5, ℎ = −0.5
𝑤1 = 0.5, 𝑤2 = −0.5, ℎ = −1
𝑤1 = 1, 𝑤2 = 0, ℎ = −0.5
2周目
18. ユニットの学習
x1 x2 y
0 0 0 ○
1 0 0 ×
0 1 0 ○
1 1 1 ×
𝑤1 = 1, 𝑤2 = 0, ℎ = −0.5
𝑤1 = 0.5, 𝑤2 = 0, ℎ = −1
𝑤1 = 1, 𝑤2 = 0, ℎ = −0.5
𝑤1 = 0.5, 𝑤2 = 0, ℎ = −1
𝑤1 = 1, 𝑤2 = 0.5, ℎ = −0.5
3周目
19. ユニットの学習
x1 x2 y
0 0 0 ○
1 0 0 ×
0 1 0 ○
1 1 1 ○
𝑤1 = 1, 𝑤2 = 0.5, ℎ = −0.5
𝑤1 = 0.5, 𝑤2 = 0.5, ℎ = −1
𝑤1 = 1, 𝑤2 = 0.5, ℎ = −0.5
𝑤1 = 0.5, 𝑤2 = 0.5, ℎ = −1
𝑤1 = 0.5, 𝑤2 = 0.5, ℎ = −1
4周目
20. ユニットの学習
x1 x2 y
0 0 0 ○
1 0 0 ○
0 1 0 ○
1 1 1 ○
𝑤1 = 0.5, 𝑤2 = 0.5, ℎ = −1
𝑤1 = 0.5, 𝑤2 = 0.5, ℎ = −1
𝑤1 = 0.5, 𝑤2 = 0.5, ℎ = −1
𝑤1 = 0.5, 𝑤2 = 0.5, ℎ = −1
𝑤1 = 0.5, 𝑤2 = 0.5, ℎ = −1
5周目
28. 深層学習のフレームワーク
フレーム
ワーク名
言語 ユーザー言語 速度 柔軟さ 開発
コミュニティ
ドキュメ
ント
サンプル 日本語での
サポート
Caffe C++,
Python
Protocol
Buffer(text),
Python
◎ △ ◎ △ ◎ ×
Torch7 Lua, C Lua
○ ○ ○ ○ △ ×
Theano/
Pylearn2
Python,
C++
YAML(Pylearn2),
Python ○ ○ ○ ○ ◎ ×
Chainer Python Python
○ ◎ △ ○ ○ ○
一長一短があるようです。
34. ReLU (Rectified Linear Unit)
入力→大でも微分は1。処理が高速。ただし負の入力では微分が0になる。
𝑓 𝑥 = max 𝑥, 0
𝑑
𝑑𝑥
𝑓 𝑥 =
1 for 𝑥 > 0
0 for 𝑥 < 0
𝑓 𝑥
𝑑
𝑑𝑥
𝑓 𝑥
57. フィルター処理
画像の変換や、特徴の抽出に使われる。
a11 a12 a13
a21 a22 a23
a31 a32 a33
xi-1,j-1 xi,j-1 xi+1,j-1
xi-1,j xi,j xi+1,j
xi-1,j+1 xi,j+1 xi+1,j+1
x'i-1,j-1 x'i,j-1 x'i+1,j-1
x'i-1,j x'i,j x'i+1,j
x'i-1,j+1 x'i,j+1 x'i+1,j+1
𝑥𝑖𝑗
′
= 𝑎11 𝑥𝑖−1,𝑗−1 + 𝑎12 𝑥𝑖,𝑗−1 + 𝑎13 𝑥𝑖+1,𝑗−1
+𝑎21 𝑥𝑖−1,𝑗 + 𝑎22 𝑥𝑖,𝑗 + 𝑎23 𝑥𝑖+1,𝑗
+𝑎31 𝑥𝑖−1,𝑗+1 + 𝑎32 𝑥𝑖,𝑗+1 + 𝑎33 𝑥𝑖+1,𝑗+1
59. 畳込み層
フィルター処理は小領域に対する全結合層になっている(畳込み層)。
学習によってフィルターのパラメーターを自動的に選択できる。
𝑥𝑖𝑗
′
= 𝑎11 𝑥𝑖−1,𝑗−1 + 𝑎12 𝑥𝑖,𝑗−1 + 𝑎13 𝑥𝑖+1,𝑗−1
+𝑎21 𝑥𝑖−1,𝑗 + 𝑎22 𝑥𝑖,𝑗 + 𝑎23 𝑥𝑖+1,𝑗
+𝑎31 𝑥𝑖−1,𝑗+1 + 𝑎32 𝑥𝑖,𝑗+1 + 𝑎33 𝑥𝑖+1,𝑗+1
𝑎33
𝑎11
𝑥𝑖−1,𝑗−1
𝑥𝑖+1,𝑗+1
𝑥𝑖𝑗
′