深層学習ライブラリのプログラミングモデル

Software

yuta-kashino
of 31
Description
Text
  • 深層学習ライブラリの プログラミングモデル 1 2015-12-19 @Chainer Meetup
  • 今日の内容 • 自己紹介 • プログラミングモデル • ただ結局… 2
  • 自己紹介 3
  • 自己紹介 • バクフー株式会社 柏野 雄太 (かしの ゆうた) • Zope3の開発 • Python 13年 • いくつかの本 • バックグラウンドは宇宙物理学 • 深層学習ライブラリウオッチャー 4 http://www.amazon.co.jp/Python-%25E3%2583%259D%25E3%2582%25B1%25E3%2583%2583%25E3%2583%2588%25E3%2583%25AA%25E3%2583%2595%25E3%2582%25A1%25E3%2583%25AC%25E3%2583%25B3%25E3%2582%25B9-Pocket-Reference-%25E6%259F%258F%25E9%2587%258E/dp/4774138053/ http://www.amazon.co.jp/Zope3-%25E5%2585%25A5%25E9%2596%2580%25E7%25AF%2587-%25EF%25BC%258DZope3%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%259FWeb%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%259D%25E3%2583%25BC%25E3%2583%258D%25E3%2583%25B3%25E3%2583%2588%25E9%2596%258B%25E7%2599%25BA-P-%25E3%2583%2595%25E3%2582%25A9%25E3%2583%25B3-%25E3%2583%25B4%25E3%2582%25A1%25E3%2582%25A4%25E3%2583%2586%25E3%2583%25AB%25E3%2582%25B9%25E3%2583%258F%25E3%2582%25A6%25E3%2582%25BC%25E3%2583%25B3/dp/4431100407/ref=sr_1_1?s=books&ie=UTF8&qid=1433055421&sr=1-1&keywords=Zope
  • 自己紹介 • バクフー株式会社 柏野 雄太 (かしの ゆうた) • 大規模リアルタイムデータのプラットフォーム 5 https://vimeo.com/125105210
  • http://socio.bakfoo.com/ socio@bakfoo.com Closed Beta http://socio.bakfoo.com/ mailto:socio@bakfoo.com
  • プログラミングモデル 7
  • 汎用高機能DLライブラリ • Theano • Torch • Chainer • neon • TensorFlow+ / Cloud Vision API • MXNet
  • DL lib 機能差・競争優位 theano torch chainer neon TF MXNet single speed ○ ○ ○* multi gpu ○ ○ ○ ○ ○ ○ multi machine ○* ○ model zoo ○ ○ ○ ○ community ○ ○ ○
  • DLライブラリの共通点 • 神経回路網の数理表現をモデルとする • 有向非巡回グラフ(DAG): 計算グラフ … … … 1 1 1 b(3) b(2) b(1) W (1) W (2) W (3) x1 x2 xd 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
  • 数理表現の実装に差がある • 手続き的: Torch, Chainer, neon • シンボル的: Theano, TensorFlow • 手続きかつシンボル: MXNet _ + _ A _ + _ _ **2 B 1 A2 +B + 1
  • モデル実装の差 _ + _ A _ + _ _ **2 B 1 A2 +B + 1
  • 手続き的モデリング • ノードにデータ(とgrad)が格納される _ + _ A _ + _ _ **2 B 1 A2 +B + 1
  • ノードに格納されるとは • Chainerのカスタム関数
  • 手続きは柔軟で動的 • 全ノードに値とgradが格納されているのでデ バグが容易 • forなどの制御が容易 • Chainerのように実行しながら,計算グラフを 組み替えることもできる
  • シンボル的モデリング • 変数ノードはシンボル • 計算グラフをコンパイ ル・実行して結果を得 る A2 +B + 1 _ + _ A _ + _ _ **2 B 1
  • シンボルはメモリを再利用する • 結果が欲しいだけなら入力と最後だけメモリ にあればいい:メモリの再利用 • A, B: 120byte • 手続き: 5*120 = 600 byte • シンボル:3*120 = 360 byte _ + _ A _ + _ _ **2 B 1
  • シンボルは計算グラフを効率化 • 計算グラフの畳みこみ _ + _ A _ + _ _ **2 B 1 A B 1 op op = A ⇤ ⇤2 +B + 1
  • シンボル:資源分散を体系化 • TFのデバイス間計算,マシン分散機能
  • 手続き vs シンボル • 手続きは柔軟で動的 • デバグが容易でモデリングの開発効率がいい • モデルに制御構文,計算グラフを動的にも • シンボルは効率的 • メモリの再利用 • 計算グラフの構造を畳みこみできる • 計算資源の分散に体系的に対応できる 参考:http://mxnet.readthedocs.org/en/latest/program_model.html
  • ただ結局…
  • TF開発エコシステム • TensorDebugger (TDB) https://github.com/ericjang/tdb
  • TF開発エコシステム • skflow https://github.com/google/skflow • Pretty Tensor https://github.com/google/prettytensor • Keras http://keras.io/backend/ • Deep Learning Robot https://www.autonomous.ai/deep-learning-robot
  • 結局,七難隠すのは… 開発エコシステムの大きさ
  • Chainerコミュニティはどこ? http://jrvis.com/red-dwarf/?user=pfnet&repo=chainer http://jrvis.com/red-dwarf/?user=pfnet&repo=chainer
  • Rubyの成功に学ぼう • まずは日本で開発エコシステムのコアを育てる • 本体コード外のコミュニティ開発者の養成 • 正式ドキュメントに日本語 • 日本語による頻繁なミートアップ・年一回の Chainerカンファレンス • 日本語のQAコミュニティ
  • ご質問・ご意見 kashino@bakfoo.com 27 @yutakashino mailto:kashino@bakfoo.com?subject=
  • DL学習リソース 28
  • 動画講義 (全力でオススメ) • 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 29 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
  • 書籍 • 古典: 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 30 http://www.iro.umontreal.ca/~bengioy/dlbook/ http://deeplearning.net/tutorial/deeplearning.pdf
  • 例:手続きback prop • 手続きだと簡単実装
Comments
Top