Getting Started with Deep Learning using Scala

Taisuke Oe
Taisuke OeCEO & Founder at Pre-entreprenuer
Getting Started with
DeepLearning using Scala
@OE_uia
Who I am:
Taisuke Oe (TW: @OE_uia, GITHUB: taisukeoe)
● Android App Developer in Scala
● ND4S creator
● ND4J contributor
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のアーキテクチャについて触れます
What is Machine Learning?
"Field of study that gives computers the ability to
learn without being explicitly programmed."
Arthur Samuel (1959)
機械学習とは、明示的にプログラムされなくてもコンピューターに学ぶ能力を付与する研究分野のこと。
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
深層学習は、ニューラルネットワークを使う機械学習の一分野で、画像、文章、音などを対象とする。
DeepLearning4j Archtecture
Canova DeepLearning4j
ND4J
DeepLearning4jの主な3つのモジュール。 DeepLearning4j, ND4J, Canova。
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はそれらの計算基盤。
DeepLearning4j Archtecture
Canova DeepLearning4j
Images
Text
Audio
ND4J
Canovaは、画像やテキスト、オーディオなどの生データを解釈する。
DeepLearning4j Archtecture
Canova DeepLearning4j
Images
Text
Audio
INDArray
ND4J
disclaimer: it’s a simplified example very much.
例えば、Canovaが生の画像を計算しやすいように N次元行列(この例では2次元)に変換する。
DeepLearning4j Archtecture
Canova DeepLearning4j
Images
Text
Audio
INDArray
ND4J
INDArray
ND4S
disclaimer: it’s a simplified example very much.
場合によっては、ND4SでN次元行列を計算ないしは学習しやすいように変換する。
DEMO
https://github.com/taisukeoe/matsuri-mnist-example
DEMO in REPL of:
https://github.com/deeplearning4j/nd4s
DeepLearning4j Archtecture
Canova DeepLearning4j
ND4J
N dimensional
Sample Data
disclaimer: it’s a simplified example very much.
DeepLearning4jによって構築されたニューラルネットが N次元行列の入力を受け取り、結果を表す N次元行列を返す
DeepLearning4j Archtecture
Canova DeepLearning4j
ND4J
N dimensional
Sample Data
disclaimer: it’s a simplified example very much.
この例では出力された行列の各列が各クラスに分類される確率を表す。 2が90%、3が10%という具合。
How DeepLearning works
N dimensional
Sample Data
Parameters in Neural Network (in this picture, Multi
Layer Perceptron) got updated over iterations
# of samples
トレーニングの際。サンプルをミニバッチごとに分けて入力させる。ニューラルネット内の状態が更新され続ける。
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.
トレーニングの際。サンプルをミニバッチごとに分けて入力させる。ニューラルネット内の状態が更新され続ける。
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:
トレーニングを通じて更新される、ニューラルネット内の「状態」の中身を見ていきましょう。
How Neuron works
構成単位ニューロン。各 (x:入力)に(w:重み)を乗じて(b:バイアス)を足したものを、活性化関数 fに渡して出力計算。
How Neuron works
mutable!
mutable!
immutable!
(w 重み)と(b バイアス)は変数で、トレーニングごとに更新される。 活性化関数 fは不変。
How Neural Net work in each layer
(全結合な)ニューラルネットの各層は、重み行列、バイアス行列、活性化関数からなる関数で表現される
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:バイアス)を更新する方法は、誤差逆伝搬法と損失関数、学習係数などで決定される。詳しくは書籍など
How to improve results?
- Choose appropriate Neural Network(s)
- Tune hyper parameters of Neural Network(s).
- Pre-process input data to be efficiently trained.
学習結果を改善させるには?ニューラルネットワークのタイプを選ぶ、超パラメータを調整、入力データのプリプロセシン
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次元行列の生データを加工するなどして、パフォーマンスを上げる。
1 of 22

Recommended

DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御 by
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御
DLフレームワークChainerの紹介と分散深層強化学習によるロボット制御Ryosuke Okuta
17.6K views27 slides
Dropout Distillation by
Dropout DistillationDropout Distillation
Dropout DistillationShotaro Sano
6.2K views17 slides
Cvim saisentan-6-4-tomoaki by
Cvim saisentan-6-4-tomoakiCvim saisentan-6-4-tomoaki
Cvim saisentan-6-4-tomoakitomoaki0705
10.1K views39 slides
TensorFlowで学ぶDQN by
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQNEtsuji Nakai
10.1K views16 slides
Meta-Learning with Memory Augmented Neural Network by
Meta-Learning with Memory Augmented Neural NetworkMeta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural NetworkYusuke Watanabe
14.7K views39 slides
実装ディープラーニング by
実装ディープラーニング実装ディープラーニング
実装ディープラーニングYurie Oka
149.7K views30 slides

More Related Content

What's hot

2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで by
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep LearningまでHokuto Kagaya
6.4K views69 slides
LSTM (Long short-term memory) 概要 by
LSTM (Long short-term memory) 概要LSTM (Long short-term memory) 概要
LSTM (Long short-term memory) 概要Kenji Urai
42.9K views39 slides
MIRU2014 tutorial deeplearning by
MIRU2014 tutorial deeplearningMIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearningTakayoshi Yamashita
455.5K views109 slides
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26 by
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26Takashi Abe
39.1K views21 slides
Life with jupyter by
Life with jupyterLife with jupyter
Life with jupyterEtsuji Nakai
3.1K views14 slides
Tutorial-DeepLearning-PCSJ-IMPS2016 by
Tutorial-DeepLearning-PCSJ-IMPS2016Tutorial-DeepLearning-PCSJ-IMPS2016
Tutorial-DeepLearning-PCSJ-IMPS2016Takayoshi Yamashita
5K views85 slides

What's hot(20)

2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで by Hokuto Kagaya
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
Hokuto Kagaya6.4K views
LSTM (Long short-term memory) 概要 by Kenji Urai
LSTM (Long short-term memory) 概要LSTM (Long short-term memory) 概要
LSTM (Long short-term memory) 概要
Kenji Urai42.9K views
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26 by Takashi Abe
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26
多層NNの教師なし学習 コンピュータビジョン勉強会@関東 2014/5/26
Takashi Abe39.1K views
Life with jupyter by Etsuji Nakai
Life with jupyterLife with jupyter
Life with jupyter
Etsuji Nakai3.1K views
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions by Deep Learning JP
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
[DL輪読会]Xception: Deep Learning with Depthwise Separable Convolutions
Deep Learning JP21.4K views
[ICLR2016] 採録論文の個人的まとめ by Yusuke Iwasawa
[ICLR2016] 採録論文の個人的まとめ[ICLR2016] 採録論文の個人的まとめ
[ICLR2016] 採録論文の個人的まとめ
Yusuke Iwasawa2.6K views
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1) by Etsuji Nakai
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
「TensorFlow Tutorialの数学的背景」 クイックツアー(パート1)
Etsuji Nakai10.8K views
Deep Learningの技術と未来 by Seiya Tokui
Deep Learningの技術と未来Deep Learningの技術と未来
Deep Learningの技術と未来
Seiya Tokui45.5K views
輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions by Kotaro Asami
輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions
輪読資料 Xception: Deep Learning with Depthwise Separable Convolutions
Kotaro Asami586 views
Differentiable neural conputers by naoto moriyama
Differentiable neural conputersDifferentiable neural conputers
Differentiable neural conputers
naoto moriyama4.8K views
ICLR2020読み会 (neural-tangents) by RyuichiKanoh
ICLR2020読み会 (neural-tangents)ICLR2020読み会 (neural-tangents)
ICLR2020読み会 (neural-tangents)
RyuichiKanoh1.9K views
20150414seminar by nlab_utokyo
20150414seminar20150414seminar
20150414seminar
nlab_utokyo26.8K views
U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介 by KCS Keio Computer Society
U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介
U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介
はじめての人のためのDeep Learning by Tadaichiro Nakano
はじめての人のためのDeep Learningはじめての人のためのDeep Learning
はじめての人のためのDeep Learning
Tadaichiro Nakano4.9K views
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7 by Kotaro Nakayama
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
JSAI's AI Tool Introduction - Deep Learning, Pylearn2 and Torch7
Kotaro Nakayama36.8K views
ディープラーニングゼミ TensorFlowで学ぶ理論と実践 by Yota Ishida
ディープラーニングゼミ TensorFlowで学ぶ理論と実践ディープラーニングゼミ TensorFlowで学ぶ理論と実践
ディープラーニングゼミ TensorFlowで学ぶ理論と実践
Yota Ishida2.3K views
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化 by marsee101
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
marsee1015.5K views

Viewers also liked

Thinking in Cats by
Thinking in CatsThinking in Cats
Thinking in CatsEugene Yokota
7.2K views82 slides
TensorFrames: Google Tensorflow on Apache Spark by
TensorFrames: Google Tensorflow on Apache SparkTensorFrames: Google Tensorflow on Apache Spark
TensorFrames: Google Tensorflow on Apache SparkDatabricks
20.7K views36 slides
JavaOne 2016 Java SE Feedback #jjug #j1jp by
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jpYuji Kubota
5.1K views50 slides
Scala-Ls1 by
Scala-Ls1Scala-Ls1
Scala-Ls1Aniket Joshi
427 views21 slides
Learning from "Effective Scala" by
Learning from "Effective Scala"Learning from "Effective Scala"
Learning from "Effective Scala"Kazuhiro Sera
1.9K views27 slides
Java/Scala Lab 2016. Александр Конопко: Машинное обучение в Spark. by
Java/Scala Lab 2016. Александр Конопко: Машинное обучение в Spark.Java/Scala Lab 2016. Александр Конопко: Машинное обучение в Spark.
Java/Scala Lab 2016. Александр Конопко: Машинное обучение в Spark.GeeksLab Odessa
543 views25 slides

Viewers also liked(20)

TensorFrames: Google Tensorflow on Apache Spark by Databricks
TensorFrames: Google Tensorflow on Apache SparkTensorFrames: Google Tensorflow on Apache Spark
TensorFrames: Google Tensorflow on Apache Spark
Databricks20.7K views
JavaOne 2016 Java SE Feedback #jjug #j1jp by Yuji Kubota
JavaOne 2016 Java SE Feedback #jjug #j1jpJavaOne 2016 Java SE Feedback #jjug #j1jp
JavaOne 2016 Java SE Feedback #jjug #j1jp
Yuji Kubota5.1K views
Learning from "Effective Scala" by Kazuhiro Sera
Learning from "Effective Scala"Learning from "Effective Scala"
Learning from "Effective Scala"
Kazuhiro Sera1.9K views
Java/Scala Lab 2016. Александр Конопко: Машинное обучение в Spark. by GeeksLab Odessa
Java/Scala Lab 2016. Александр Конопко: Машинное обучение в Spark.Java/Scala Lab 2016. Александр Конопко: Машинное обучение в Spark.
Java/Scala Lab 2016. Александр Конопко: Машинное обучение в Spark.
GeeksLab Odessa543 views
Distributed machine learning 101 using apache spark from the browser by Andy Petrella
Distributed machine learning 101 using apache spark from the browserDistributed machine learning 101 using apache spark from the browser
Distributed machine learning 101 using apache spark from the browser
Andy Petrella4.8K views
Brief introduction to Distributed Deep Learning by Adam Gibson
Brief introduction to Distributed Deep LearningBrief introduction to Distributed Deep Learning
Brief introduction to Distributed Deep Learning
Adam Gibson1.9K views
Practical Predictive Modeling in Python by Robert Dempsey
Practical Predictive Modeling in PythonPractical Predictive Modeling in Python
Practical Predictive Modeling in Python
Robert Dempsey3K views
Scalable and Flexible Machine Learning With Scala @ LinkedIn by Vitaly Gordon
Scalable and Flexible Machine Learning With Scala @ LinkedInScalable and Flexible Machine Learning With Scala @ LinkedIn
Scalable and Flexible Machine Learning With Scala @ LinkedIn
Vitaly Gordon49.1K views
Using Deep Learning for Recommendation by Eduardo Gonzalez
Using Deep Learning for RecommendationUsing Deep Learning for Recommendation
Using Deep Learning for Recommendation
Eduardo Gonzalez1.1K views
H2O Machine Learning and Kalman Filters for Machine Prognostics - Galvanize SF by Sri Ambati
H2O Machine Learning and Kalman Filters for Machine Prognostics - Galvanize SFH2O Machine Learning and Kalman Filters for Machine Prognostics - Galvanize SF
H2O Machine Learning and Kalman Filters for Machine Prognostics - Galvanize SF
Sri Ambati2.4K views
Recurrent nets and sensors by Adam Gibson
Recurrent nets and sensorsRecurrent nets and sensors
Recurrent nets and sensors
Adam Gibson964 views
How to ensure Presto scalability 
in multi use case by Kai Sasaki
How to ensure Presto scalability 
in multi use case How to ensure Presto scalability 
in multi use case
How to ensure Presto scalability 
in multi use case
Kai Sasaki4.2K views
Scala Refactoring for Fun and Profit (Japanese subtitles) by Tomer Gabel
Scala Refactoring for Fun and Profit (Japanese subtitles)Scala Refactoring for Fun and Profit (Japanese subtitles)
Scala Refactoring for Fun and Profit (Japanese subtitles)
Tomer Gabel6.6K views
Functional Programming For All - Scala Matsuri 2016 by Zachary Abbott
Functional Programming For All - Scala Matsuri 2016Functional Programming For All - Scala Matsuri 2016
Functional Programming For All - Scala Matsuri 2016
Zachary Abbott7.5K views

Similar to Getting Started with Deep Learning using Scala

ae-3. ディープラーニングの基礎 by
ae-3. ディープラーニングの基礎ae-3. ディープラーニングの基礎
ae-3. ディープラーニングの基礎kunihikokaneko1
857 views57 slides
深層学習② by
深層学習②深層学習②
深層学習②ssuser60e2a31
295 views125 slides
Generative deeplearning #02 by
Generative deeplearning #02Generative deeplearning #02
Generative deeplearning #02逸人 米田
46 views20 slides
Efficient Det by
Efficient DetEfficient Det
Efficient DetTakeruEndo
211 views81 slides
Deep learningの概要とドメインモデルの変遷 by
Deep learningの概要とドメインモデルの変遷Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷Taiga Nomi
26.5K views62 slides
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう by
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようC# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようFujio Kojima
7.3K views33 slides

Similar to Getting Started with Deep Learning using Scala(20)

ae-3. ディープラーニングの基礎 by kunihikokaneko1
ae-3. ディープラーニングの基礎ae-3. ディープラーニングの基礎
ae-3. ディープラーニングの基礎
kunihikokaneko1857 views
Generative deeplearning #02 by 逸人 米田
Generative deeplearning #02Generative deeplearning #02
Generative deeplearning #02
逸人 米田46 views
Efficient Det by TakeruEndo
Efficient DetEfficient Det
Efficient Det
TakeruEndo211 views
Deep learningの概要とドメインモデルの変遷 by Taiga Nomi
Deep learningの概要とドメインモデルの変遷Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷
Taiga Nomi26.5K views
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう by Fujio Kojima
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようC# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
Fujio Kojima7.3K views
PythonによるDeep Learningの実装 by Shinya Akiba
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
Shinya Akiba18.1K views
いきなりAi tensor flow gpuによる画像分類と生成 by Yoshi Sakai
いきなりAi tensor flow gpuによる画像分類と生成いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成
Yoshi Sakai1.2K views
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用 by de:code 2017
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
de:code 20178.3K views
20180729 Preferred Networksの機械学習クラスタを支える技術 by Preferred Networks
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
Preferred Networks32.8K views
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」... by de:code 2017
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
de:code 20172K views
Deep Learningと画像認識   ~歴史・理論・実践~ by nlab_utokyo
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~
nlab_utokyo355.6K views
「機械学習とは?」から始める Deep learning実践入門 by Hideto Masuoka
「機械学習とは?」から始める Deep learning実践入門「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門
Hideto Masuoka1.4K views
DeNAにおける機械学習・深層学習活用 by Kazuki Fujikawa
DeNAにおける機械学習・深層学習活用DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用
Kazuki Fujikawa21.5K views
Deep Learning技術の最近の動向とPreferred Networksの取り組み by Kenta Oono
Deep Learning技術の最近の動向とPreferred Networksの取り組みDeep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Kenta Oono28.1K views
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化 by RCCSRENKEI
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
DEEP LEARNING、トレーニング・インファレンスのGPUによる高速化
RCCSRENKEI530 views
本の紹介「絵で見てわかるITインフラの仕組み」 by Takahiko Sato
本の紹介「絵で見てわかるITインフラの仕組み」本の紹介「絵で見てわかるITインフラの仕組み」
本の紹介「絵で見てわかるITインフラの仕組み」
Takahiko Sato3.3K views
Image net classification with Deep Convolutional Neural Networks by Shingo Horiuchi
Image net classification with Deep Convolutional Neural NetworksImage net classification with Deep Convolutional Neural Networks
Image net classification with Deep Convolutional Neural Networks
Shingo Horiuchi9.1K views
Twitterのリアルタイム分散処理システム「Storm」入門 by AdvancedTechNight
Twitterのリアルタイム分散処理システム「Storm」入門Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門
AdvancedTechNight65K views

More from Taisuke Oe

Neural Network as a function by
Neural Network as a functionNeural Network as a function
Neural Network as a functionTaisuke Oe
4.5K views31 slides
Composable Callbacks & Listeners by
Composable Callbacks & ListenersComposable Callbacks & Listeners
Composable Callbacks & ListenersTaisuke Oe
2.6K views49 slides
ScalaDays 2015 SF report #rpscala by
ScalaDays 2015 SF report #rpscalaScalaDays 2015 SF report #rpscala
ScalaDays 2015 SF report #rpscalaTaisuke Oe
1.8K views49 slides
Scala2.10.x bytecode problems in Android by
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidTaisuke Oe
2.8K views19 slides
2012 09-26-scala by
2012 09-26-scala2012 09-26-scala
2012 09-26-scalaTaisuke Oe
1.2K views16 slides
AmazonElasticBeanstalk by
AmazonElasticBeanstalkAmazonElasticBeanstalk
AmazonElasticBeanstalkTaisuke Oe
646 views23 slides

More from Taisuke Oe(10)

Neural Network as a function by Taisuke Oe
Neural Network as a functionNeural Network as a function
Neural Network as a function
Taisuke Oe4.5K views
Composable Callbacks & Listeners by Taisuke Oe
Composable Callbacks & ListenersComposable Callbacks & Listeners
Composable Callbacks & Listeners
Taisuke Oe2.6K views
ScalaDays 2015 SF report #rpscala by Taisuke Oe
ScalaDays 2015 SF report #rpscalaScalaDays 2015 SF report #rpscala
ScalaDays 2015 SF report #rpscala
Taisuke Oe1.8K views
Scala2.10.x bytecode problems in Android by Taisuke Oe
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in Android
Taisuke Oe2.8K views
2012 09-26-scala by Taisuke Oe
2012 09-26-scala2012 09-26-scala
2012 09-26-scala
Taisuke Oe1.2K views
AmazonElasticBeanstalk by Taisuke Oe
AmazonElasticBeanstalkAmazonElasticBeanstalk
AmazonElasticBeanstalk
Taisuke Oe646 views
Smartphone security at ZenCoworking by Taisuke Oe
Smartphone security at ZenCoworkingSmartphone security at ZenCoworking
Smartphone security at ZenCoworking
Taisuke Oe1.1K views
Rememb ar 0117 by Taisuke Oe
Rememb ar 0117Rememb ar 0117
Rememb ar 0117
Taisuke Oe525 views
Share english communication tips jp by Taisuke Oe
Share english communication tips jpShare english communication tips jp
Share english communication tips jp
Taisuke Oe1.1K views
Share english communication tips jp by Taisuke Oe
Share english communication tips jpShare english communication tips jp
Share english communication tips jp
Taisuke Oe685 views

Getting Started with Deep Learning using Scala

  • 1. Getting Started with DeepLearning using Scala @OE_uia
  • 2. Who I am: Taisuke Oe (TW: @OE_uia, GITHUB: taisukeoe) ● Android App Developer in Scala ● ND4S creator ● ND4J contributor
  • 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. What is Machine Learning? "Field of study that gives computers the ability to learn without being explicitly programmed." Arthur Samuel (1959) 機械学習とは、明示的にプログラムされなくてもコンピューターに学ぶ能力を付与する研究分野のこと。
  • 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 深層学習は、ニューラルネットワークを使う機械学習の一分野で、画像、文章、音などを対象とする。
  • 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はそれらの計算基盤。
  • 9. DeepLearning4j Archtecture Canova DeepLearning4j Images Text Audio INDArray ND4J disclaimer: it’s a simplified example very much. 例えば、Canovaが生の画像を計算しやすいように N次元行列(この例では2次元)に変換する。
  • 10. DeepLearning4j Archtecture Canova DeepLearning4j Images Text Audio INDArray ND4J INDArray ND4S disclaimer: it’s a simplified example very much. 場合によっては、ND4SでN次元行列を計算ないしは学習しやすいように変換する。
  • 11. DEMO https://github.com/taisukeoe/matsuri-mnist-example DEMO in REPL of: https://github.com/deeplearning4j/nd4s
  • 12. DeepLearning4j Archtecture Canova DeepLearning4j ND4J N dimensional Sample Data disclaimer: it’s a simplified example very much. DeepLearning4jによって構築されたニューラルネットが N次元行列の入力を受け取り、結果を表す N次元行列を返す
  • 13. DeepLearning4j Archtecture Canova DeepLearning4j ND4J N dimensional Sample Data disclaimer: it’s a simplified example very much. この例では出力された行列の各列が各クラスに分類される確率を表す。 2が90%、3が10%という具合。
  • 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. 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. 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. How Neuron works 構成単位ニューロン。各 (x:入力)に(w:重み)を乗じて(b:バイアス)を足したものを、活性化関数 fに渡して出力計算。
  • 18. How Neuron works mutable! mutable! immutable! (w 重み)と(b バイアス)は変数で、トレーニングごとに更新される。 活性化関数 fは不変。
  • 19. How Neural Net work in each layer (全結合な)ニューラルネットの各層は、重み行列、バイアス行列、活性化関数からなる関数で表現される
  • 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. 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. 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次元行列の生データを加工するなどして、パフォーマンスを上げる。