Contenu connexe Similaire à TensorFlow White Paperを読む (20) Plus de Yuta Kashino (20) TensorFlow White Paperを読む4. 自己紹介
• バクフー株式会社 代表取締役 柏野 雄太 (かしの ゆうた)
• 大規模リアルタイムデータのデータプラットフォーム
• PPPP preprocess /process /persistence /providing
4
7. 自己紹介
• Zope3の開発
• Python
• いくつかの本
• PyCon JP 2015でのトーク
• バックグラウンドは宇宙物理学
• 大規模データ統計解析,科学計算
• 深層学習ウオッチャー: 2012年Hinton講義
https://goo.gl/GG4Bo8
https://www.coursera.org/course/neuralnets
7
9. 神経回路の数理表現
9
h(k)
(x) = g(a(k)
(x))
a(k)
(x) = b(k)
+ W (k)
h(k 1)
(x)
…
…
…
1
1
1
b(3)
b(2)
b(1)
W (1)
W (2)
W (3)
x1 x2 xd
a(3)
(x) = b(3)
+ W (3)
h(2)
(x)
= b(3)
+ W (3)
g(b(2)
+ W (2)
h(1)
(x))
= b(3)
+ W (3)
g(b(2)
+ W (2)
g(b(1)
+ W (1)
x))
h(0)
(x) = x
h(1)
(x) = g(a(1)
(x))
h(2)
(x) = g(a(2)
(x))
a(1)
(x) = b(1)
+ W (1)
h(0)
(x)
a(2)
(x) = b(2)
+ W (2)
h(1)
(x)
a(3)
(x) = b(3)
+ W (3)
h(2)
(x)
h(3)
(x) = o(a(3)
(x))
= f(x)
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
10. マルチレイヤー神経回路
• L個の隠れ層の神経回路
• プレ活性
• 隠れ層活性
• 出力層活性
• レイヤーは関数適用に他ならない
10
h(k)
(x) = g(a(k)
(x))
a(k)
(x) = b(k)
+ W (k)
h(k 1)
(x)
h(L+1)
(x) = o(a(L+1)
(x))
= f(x)
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
11. 機械学習と損失関数
• パラメータ・トレーニングセット
• 目的関数最小化
• 損失関数・正則関数
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
l(f(x), y)
✓ = {W (1)
, b(1)
, ..., W (L+1)
, b(L+1)
}
(x(t)
, y(t)
)
⌦(✓)
l(f(x(t)
; ✓), y(t)
) = logf(x(t)
)y
L(✓) =
1
T
X
t
l(f(x(t)
; ✓), y(t)
) + ⌦(✓)
argmin✓L(✓)
11
13. 勾配の計算:誤差逆伝搬
• 目的関数を最小にするには勾配の計算が必要
• 勾配の計算=誤差逆伝搬 = r✓l(f(x(t)
; ✓), y(t)
)
✓ ✓ + ↵
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
l(f(x), y)
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
l(f(x), y)
rW (2) l(f(x), y) ra(2)(x)l(f(x), y)h(2)
(x)T
ra(2)(x)l(f(x), y) rh(2)(x)l(f(x), y) [..., g0
(a(2)
(x)), ...]
rh(2)(x)l(f(x), y) W(3)T
ra(3)(x)l(f(x), y)
13
14. 勾配の計算:誤差逆伝搬
• Hugo Larochelleの講義にGo https://goo.gl/UWtRWT
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
l(f(x), y)
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
l(f(x), y)
rW (2) l(f(x), y) ra(2)(x)l(f(x), y)h(2)
(x)T
ra(2)(x)l(f(x), y) rh(2)(x)l(f(x), y) [..., g0
(a(2)
(x)), ...]
rh(2)(x)l(f(x), y) W(3)T
ra(3)(x)l(f(x), y)
14
15. 勾配の計算:誤差逆伝搬
• 主要DLライブラリは勾配を自動に計算
• 実はあまり気にしないでいい
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
l(f(x), y)
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
l(f(x), y)
rW (2) l(f(x), y) ra(2)(x)l(f(x), y)h(2)
(x)T
ra(2)(x)l(f(x), y) rh(2)(x)l(f(x), y) [..., g0
(a(2)
(x)), ...]
rh(2)(x)l(f(x), y) W(3)T
ra(3)(x)l(f(x), y)
15
16. ライブラリ利用で必要なのは
• データを入れる場所:テンソル
• レイヤーの表現
• 活性化関数・出力関数
• 損失関数
• 最適化法
• 勾配計算(誤差伝搬)
• GPUへの対応
a(1)
(x)
a(2)
(x)
a(3)
(x)
h(2)
(x)
h(1)
(x)
f(x) = h(3)
(x)
g
g
o
b(1)
W (1)
b(3)
b(2)
W (2)
W (3)
x
l(f(x), y)
16
40. 今回の割愛
• 6 Status and Experience
• 9.2 Performance Tracing
• 10 Future Work
• 11 Related Work
47. 動画講義 (全力でオススメ)
• Deep Learning Summer School 2015
• Hugo Larochelle (Twitter/U of Sherbrooke)
• Nando de Freitas (Oxford)
• CS231n: CNN for Visual Recognition
• CS224d: DL for Natural Language Processing
http://videolectures.net/deeplearning2015_montreal/
http://cs231n.stanford.edu/
http://cs224d.stanford.edu/index.html
https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/
https://goo.gl/UWtRWT
47
48. 書籍
• 古典: Bengio et.al. 2015 DLBook
• Theano Tutorial
• Neural Networks and Deep Learning
• 岡谷貴之著 深層学習 (機械学習プロ)
• 神嶌敏弘編 深層学習: Deep Learning
http://www.iro.umontreal.ca/~bengioy/dlbook/
http://neuralnetworksanddeeplearning.com/
http://deeplearning.net/tutorial/deeplearning.pdf
48