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.

Getting Started with Deep Learning using Scala

1,761 views

Published on

Talk in ScalaMatsuri 2016 http://scalamatsuri.org/

Sample code:
https://github.com/taisukeoe/matsuri-mnist-example

Published in: Software
  • Be the first to comment

Getting Started with Deep Learning using Scala

  1. 1. Getting Started with DeepLearning using Scala @OE_uia
  2. 2. Who I am: Taisuke Oe (TW: @OE_uia, GITHUB: taisukeoe) ● Android App Developer in Scala ● ND4S creator ● ND4J contributor
  3. 3. Agenda / Disclaimer What I’m going to talk: - What is Deep Learning? - What is Neural Network? - How Neural Netowork works over training. - DeepLearning4j architecture What I’m NOT going to talk (in detail): - Type of Neural Network - Hyper parameter and its tuning 今日は深層学習とニューラルネットワークの基礎、 DeepLearning4jのアーキテクチャについて触れます
  4. 4. What is Machine Learning? "Field of study that gives computers the ability to learn without being explicitly programmed." Arthur Samuel (1959) 機械学習とは、明示的にプログラムされなくてもコンピューターに学ぶ能力を付与する研究分野のこと。
  5. 5. What is Deep Learning? - A category of Machine Learning, especially for images, text, audio, etc. - Accurate and reasonably fast. - Train “Neural Networks” with updating its parameters over iterations. - Neural Network has a layered structure, and learns features in each layer 深層学習は、ニューラルネットワークを使う機械学習の一分野で、画像、文章、音などを対象とする。
  6. 6. DeepLearning4j Archtecture Canova DeepLearning4j ND4J DeepLearning4jの主な3つのモジュール。 DeepLearning4j, ND4J, Canova。
  7. 7. DeepLearning4j Archtecture Canova DeepLearning4j ND4J General Vectorization Library. Vectorize raw data to INDArray. DeepLearning Framework. Construct Neural Network based on configuration. N-dimensional Array calculation Library. DeepLearning4jが設定からニューラルネットを構築。 Canovaは生データをベクター化。 ND4Jはそれらの計算基盤。
  8. 8. DeepLearning4j Archtecture Canova DeepLearning4j Images Text Audio ND4J Canovaは、画像やテキスト、オーディオなどの生データを解釈する。
  9. 9. DeepLearning4j Archtecture Canova DeepLearning4j Images Text Audio INDArray ND4J disclaimer: it’s a simplified example very much. 例えば、Canovaが生の画像を計算しやすいように N次元行列(この例では2次元)に変換する。
  10. 10. DeepLearning4j Archtecture Canova DeepLearning4j Images Text Audio INDArray ND4J INDArray ND4S disclaimer: it’s a simplified example very much. 場合によっては、ND4SでN次元行列を計算ないしは学習しやすいように変換する。
  11. 11. DEMO https://github.com/taisukeoe/matsuri-mnist-example DEMO in REPL of: https://github.com/deeplearning4j/nd4s
  12. 12. DeepLearning4j Archtecture Canova DeepLearning4j ND4J N dimensional Sample Data disclaimer: it’s a simplified example very much. DeepLearning4jによって構築されたニューラルネットが N次元行列の入力を受け取り、結果を表す N次元行列を返す
  13. 13. DeepLearning4j Archtecture Canova DeepLearning4j ND4J N dimensional Sample Data disclaimer: it’s a simplified example very much. この例では出力された行列の各列が各クラスに分類される確率を表す。 2が90%、3が10%という具合。
  14. 14. How DeepLearning works N dimensional Sample Data Parameters in Neural Network (in this picture, Multi Layer Perceptron) got updated over iterations # of samples トレーニングの際。サンプルをミニバッチごとに分けて入力させる。ニューラルネット内の状態が更新され続ける。
  15. 15. How DeepLearning works N dimensional Sample Data # of samples Neural Network has states which are updated over iteration. DataSet has states like a iterator. Spit out samples in each mini-batch. トレーニングの際。サンプルをミニバッチごとに分けて入力させる。ニューラルネット内の状態が更新され続ける。
  16. 16. How DeepLearning works N dimensional Sample Data # of samples Neural Network has states which are updated over iteration. Go to the detail: How neuron unit behaves: トレーニングを通じて更新される、ニューラルネット内の「状態」の中身を見ていきましょう。
  17. 17. How Neuron works 構成単位ニューロン。各 (x:入力)に(w:重み)を乗じて(b:バイアス)を足したものを、活性化関数 fに渡して出力計算。
  18. 18. How Neuron works mutable! mutable! immutable! (w 重み)と(b バイアス)は変数で、トレーニングごとに更新される。 活性化関数 fは不変。
  19. 19. How Neural Net work in each layer (全結合な)ニューラルネットの各層は、重み行列、バイアス行列、活性化関数からなる関数で表現される
  20. 20. Further information: - Type of Neural Network - Convolutional Neural Network - Recurrent Neural Network - etc - Backpropagation - Loss Function - Learning rate - Other hyper parameters 深層学習 http://www.amazon.co.jp/dp/B018K6C99A/ Coursera https://www.coursera.org/course/neuralnets (w:重み)と(b:バイアス)を更新する方法は、誤差逆伝搬法と損失関数、学習係数などで決定される。詳しくは書籍など
  21. 21. How to improve results? - Choose appropriate Neural Network(s) - Tune hyper parameters of Neural Network(s). - Pre-process input data to be efficiently trained. 学習結果を改善させるには?ニューラルネットワークのタイプを選ぶ、超パラメータを調整、入力データのプリプロセシン
  22. 22. Summary - Deep Learning is a category of Machine Learning, which is trained by Neural Networks with three or more layers. - Neural Network maps input feature matrix to output matrix which stands for possibilities of each class in classification purpose. - DeepLearning4j: Deep Learning framework in JVM - Nd4j: N-dimensional array calculation library - Canova: General vectorization library - Nd4s: NumPy-like + Scala-like API for ND4J 深層学習は、3層以上からなるニューラルネットワークで行う機械学習のこと。N次元行列の生データを加工するなどして、パフォーマンスを上げる。

×