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

Software

yuta-kashino
  • 深層学習ライブラリの プログラミングモデル 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 • 手続きだと簡単実装
Please download to view
31
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
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