SlideShare a Scribd company logo
Deeplearning4J
Java/Scala で書ける産業向けのディープラーニングフレームワーク
本橋 和貴
2018年1月10日 AI & ロボット勉強会
■ アジェンダ
社会性フィルタにより削除
ディープラーニングとは
Deeplearning4J (DL4J)
DL4J を用いた異常検知
2
■ (人工)ニューラルネットワーク
脳機能に見られるいくつかの特性を計算機上のシミュレーションによって
表現することを目指した数学モデル (ニューラルネットワーク - Wikipedia)
3
図出典: http://www.lab.kochi-tech.ac.jp/future/1110/okasaka/neural.htm
人工ニューロン(パーセプトロン)
■ ディープニューラルネットワーク
ネットワークをディープにすることで
より多くの、高次の特徴量を抽出
4
図出典: http://dl.ndl.go.jp/info:ndljp/pid/10952149入力層 中間層
(隠れ層)
出力層
(Shallow) Neural Network
【中間層が1層】
Deep Neural Network
【中間層が2層以上】
図出典: GumGum
■ ディープラーニングは機械学習のあくまで一分野
しばしば機械学習は自然からヒントを得ている
● 進化論
○ 遺伝、自然淘汰
● 物理学
○ アニーリング
● 群知能
○ 蟻コロニー
● 免疫
○ クローン選択説
● 神経科学
○ ニューラルネットワーク
5
図出典: Deep Learning: A Practitioner’s Approach
■ なぜいまディープラーニングか
計算機の発達、GPGPU (General Purpose Graphic Processing Unit) の台頭
扱えるデータ量の爆増
学習のための様々な工夫の発明 (ReLU, Dropout, Batch Normalization, etc)
⇨ ディープラーニングの本領発揮、人間を超えるパフォーマンスも
6
ニューラルネットは
パラメータが多く、表現力が高い
学習が遅い・難しい
(過学習、勾配の消失)
■ ニューラルネットの学習
* 入力 x と(正しい)出力 y の “マッピング” を学習
ニューラルネットワーク = 関数近似器 7
図出典: https://www.slideshare.net/AkinoriAbe1/ss-69510936
出力の誤差
パラメータの変分
■ ディープラーニングの得意分野
入力 ⇨ 出力 の マッピング は得意
● 物体認識(画像 ⇨ 種類)
● 音声認識(音 ⇨ 単語)
● ゲーム(画面 ⇨ ボタン操作)
● 次元圧縮(高次元 ⇨ 低次元)
それ以外は実際そうでもない
● 会話(フレーズ ⇨ 適切な「回答」って?)
* 一問一答ならできる、チャットボット
8
ナチュラルな会話には感情のモデル化が必要でしょう
https://musyoku.github.io/2016/03/16/deep-reinforcem
ent-learning-with-double-q-learning/
http://tech-blog.abeja.asia/entry/object-detection-summar
y
出典:いらすとや
■ アジェンダ
社会性フィルタにより削除
ディープラーニングとは
Deeplearning4J (DL4J)
DL4J を用いた異常検知
9
■ ディープラーニング開発フレームワーク
Q: Tensorflow, Keras, Pytorch, Chainer, Caffe2, .. どれを使えばいいの?
10
ニューラルネットの 構築・学習・利用
のためのモジュール群
出典:
https://dev.classmethod.jp/machine-learning/introduction-keras-deeplearning/
■ ディープラーニング開発フレームワーク
11
出典:
https://dev.classmethod.jp/machine-learning/introduction-keras-deeplearning/
ニューラルネットの 構築・学習・利用
のためのモジュール群
Q: Tensorflow, Keras, Pytorch, Chainer, Caffe2, .. どれを使えばいいの?
A: 好きなやつ (Python わかるなら個人的には Keras, Pytorch, Chainer)
 cf) 比較表 https://docs.chainer.org/en/stable/comparison.html
■ Open Neural Network Exchange
ニューラルネットのモデルの統一フォーマット
Microsoft と Facebook によるオープンソースプロジェクト
「あるAIフレームワークで構築した学習モデルを異なる機械学習システムに簡単に切り
替えることを目的としている」http://www.itmedia.co.jp/news/articles/1709/08/news051.html
12
相互 import /export
■ ディープラーニング開発工程
いわゆる研究開発用開発フレームワーク (Tensorflow など) が活躍するのは
開発工程の一部 (まあそこが肝だけど)
 運用を意識したフレームワーク選び ⇨ Deeplearning4J の提案
13
図出典: https://www.abeja.asia/news/
■ Deeplearning4J (DL4J)
Java/Scala で書ける商用ディープラーニング開発ソフトウェア群
cf) Reddit 「Amazon のシステムは 99% Java で動いている」
  https://www.reddit.com/r/java/comments/7cyhjc/what_do_you_mainly_use_java_for/dptr5fg/
[[ DataVec (ETL), ND4J (線形代数), SKIL (デプロイ)]]
Skymind社による商用サポートあり
Apache Spark にネイティブに対応 ⇨ Hadoop クラスタを用いた並列化
14
プログラミング
人口ランキング
(TIOBE)
■ アジェンダ
社会性フィルタにより削除
ディープラーニングとは
Deeplearning4J (DL4J)
DL4J を用いた異常検知
15
■ 時系列データの異常検知
【正常・異常のラベル付きデータの場合】
 通常の分類問題に帰結
【ラベルなしデータの場合】
 基本的にこちらが対象
 方針:正常データを学習しておき、「正常」からの逸脱をみる
 以降の説明で用いるニューラルネットワーク*:
  LSTM (時系列データを扱うためにメモリセルを導入したモデル)
  + Variational Autoencoder(正常データの復元;できなければ異常)
16
図出典: https://qiita.com/kenmatsu4/items/68e48a00aaebf338bedc
* 引用元: IBM - developerWorks 深層学習を利用して異常を検出するコグニティブ IoT ソリューションを開発する
https://www.ibm.com/developerworks/jp/iot/library/iot-deep-learning-anomaly-detection-3/index.html
■ LSTM (Long-Short Term Memory)
ある時刻 t の入力だけでなく、時刻 t - 1 の入力も考慮する
どの時刻のデータを重視するかは入力・忘却・出力ゲートにより制御 17
図出典: https://www.slideshare.net/AndrePemmelaar/deep-lst-msandrnnsjulia 図出典: 深層学習 - 岡谷貴之
■ Variational Auto Encoder
「入力 = 出力」になるようにエンコード・デコード処理を学習するモデル
● 正常データを入力すれば正常データが復元される
● 異常データはうまく復元できない (Reconstruction Error 大) 18
図出典: https://www.slideshare.net/ssusere55c63/variational-autoencoder-64515581
■ DL4J (Scala) を用いたニューラルネット実装
1. ニューラルネットの configuration オブジェクトを作成
+ 学習におけるグローバルパラメータの設定
19
引用元: IBM - developerWorks 深層学習を利用して異常を検出するコグニティブ IoT ソリューションを開発する
https://www.ibm.com/developerworks/jp/iot/library/iot-deep-learning-anomaly-detection-3/index.html
2. まず、0層目に LSTM (designed by Alex Graves) を載せる
■ DL4J (Scala) を用いたニューラルネット実装
20
引用元: IBM - developerWorks 深層学習を利用して異常を検出するコグニティブ IoT ソリューションを開発する
https://www.ibm.com/developerworks/jp/iot/library/iot-deep-learning-anomaly-detection-3/index.html
3. LSTM 層の出力を入力とした Variational Autoencoder を載せる
4. 最後に、出力層を載せ、config を MultiLayerNetwork に食わせれば完了
■ Apache Spark を用いた並列化
21
MultiLayerNetwork オブジェクトの代わりに、
分散学習のため、各ワーカーにおける訓練結果の平均を取る機構を加えて、
SparkDl4jMultiLayer に食わせればOK
fit メソッドに訓練データセットを食わせて学習(ここでは1000回 iteration)
引用元: IBM - developerWorks 深層学習を利用して異常を検出するコグニティブ IoT ソリューションを開発する
https://www.ibm.com/developerworks/jp/iot/library/iot-deep-learning-anomaly-detection-3/index.html
■ IBM developerWorks
引用元の IBM developerWorks チュートリアルは非常に参考になる
https://www.ibm.com/developerworks/jp/learn/analytics/
ベアリングの振動観測のための加速度計センサーを例に、
1. Node-RED を用いた擬似 IoT データ作成
2. Watson IoT Platform サービスを MQTT メッセージ・ブローカーとして利用
3. ニューラルネットワークの構築・訓練
4. センサーで受信したデータに対する応答確認
https://www.ibm.com/developerworks/jp/iot/library/iot-deep-learning-anomaly-detection-3/index.html
IoT x Deep Learning システム開発の一連の流れを学べる
ApacheSystemML, Tensorflow (TensorSpark) を用いた例もあり
22
■ まとめ
● 社会性フィルタにより削除
● ニューラルネットワークは入力と出力のマッピングを行う関数近似器
● Deeplearning4J (DL4J) は Java/Scala で書ける商用ディープラーニング
開発ソフトウェア群
○ Skymind 社による商用サポートあり
○ 他フレームワークで構築したモデルをインポート可能
● DL4J + LSTM + Variational Autoencoder で時系列データの異常検知
○ Apache Spark とネイティブに連携して並列コンピューティング
23
■ きっと参考になると思う文献
● 仕事ではじめる機械学習
○ 有賀康顕、中山心太、西林孝
○ 従来の機械学習を仕事に活用するためのノウハウ
● Deep Learning: A Practitioner’s Approach
○ Josh Patterson, Adam Gibson
○ プログラミング実務家向けの深層学習 w/ DL4J 活用指南書
● 異常検知と変化検知
○ 井手剛、杉山将
○ 従来の機械学習を用いた異常・変化検知手法の解説本
● 深層学習を利用して異常を検出するコグニティブ IoT ソリューションを開発する
○ Romeo Kienzler
○ 深層学習を用いた IoT データ解析手法の解説
24
Backup
25
26https://www.abeja.asia/news/

More Related Content

PPTX
5分で分かる自己組織化マップ
PPTX
【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...
PPTX
深層学習を用いた服飾画像の印象推定に関する研究
PPTX
異常検知と変化検知の1~3章をまとめてみた
PPTX
DeBERTaV3: Improving DeBERTa using ELECTRA-Style Pre-Training with Gradient-D...
PDF
Reinforcement Learning @ NeurIPS2018
PPTX
[DL輪読会]Learning to Generalize: Meta-Learning for Domain Generalization
PPTX
Itエンジニアのための自然言語処理入門
5分で分かる自己組織化マップ
【論文読み会】Pyraformer_Low-Complexity Pyramidal Attention for Long-Range Time Seri...
深層学習を用いた服飾画像の印象推定に関する研究
異常検知と変化検知の1~3章をまとめてみた
DeBERTaV3: Improving DeBERTa using ELECTRA-Style Pre-Training with Gradient-D...
Reinforcement Learning @ NeurIPS2018
[DL輪読会]Learning to Generalize: Meta-Learning for Domain Generalization
Itエンジニアのための自然言語処理入門

What's hot (20)

PDF
研究フレームワーク
KEY
PyOpenCLによるGPGPU入門
PPTX
画像処理AIを用いた異常検知
PPTX
ベイズ統計学の概論的紹介-old
PDF
[DL輪読会]Inverse Constrained Reinforcement Learning
PDF
MLP-Mixer: An all-MLP Architecture for Vision
PDF
傾向スコアの概念とその実践
PDF
データサイエンス概論第一=8 パターン認識と深層学習
PDF
大規模言語モデルとChatGPT
PDF
変分推論と Normalizing Flow
PDF
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
PPTX
[DL輪読会]モデルベース強化学習とEnergy Based Model
PDF
【DL輪読会】GPT-4Technical Report
PDF
SIX ABEJA 講演資料 もうブラックボックスとは呼ばせない~機械学習を支援する情報
PDF
汎用Web API“SPARQL”でオープンデータ検索
PDF
自然言語処理によるテキストデータ処理
PDF
ゼロから学ぶゲーム理論
PPTX
【DL輪読会】Is Conditional Generative Modeling All You Need For Decision-Making?
PDF
RIC-NN: A Robust Transferable Deep Learning Framework for Cross-sectional Inv...
PDF
機械学習による生存予測
研究フレームワーク
PyOpenCLによるGPGPU入門
画像処理AIを用いた異常検知
ベイズ統計学の概論的紹介-old
[DL輪読会]Inverse Constrained Reinforcement Learning
MLP-Mixer: An all-MLP Architecture for Vision
傾向スコアの概念とその実践
データサイエンス概論第一=8 パターン認識と深層学習
大規模言語モデルとChatGPT
変分推論と Normalizing Flow
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
[DL輪読会]モデルベース強化学習とEnergy Based Model
【DL輪読会】GPT-4Technical Report
SIX ABEJA 講演資料 もうブラックボックスとは呼ばせない~機械学習を支援する情報
汎用Web API“SPARQL”でオープンデータ検索
自然言語処理によるテキストデータ処理
ゼロから学ぶゲーム理論
【DL輪読会】Is Conditional Generative Modeling All You Need For Decision-Making?
RIC-NN: A Robust Transferable Deep Learning Framework for Cross-sectional Inv...
機械学習による生存予測
Ad

Similar to 20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知について (20)

PPTX
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
PDF
機械学習 (AI/ML) 勉強会 #1 基本編
PDF
Secure element for IoT device
PPTX
20171206 Sony Neural Network Console 活用テクニック
PDF
Iot algyan jhirono 20190111
PDF
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
PDF
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
PDF
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
PDF
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
PDF
seccamp2012 チューター発表
PDF
LLM+LangChainで特許調査・分析に取り組んでみた
PPT
NNKproject Japanese version2
PPT
NNKproject Japanese version
PDF
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
PDF
ソニーのディープラーニングツールで簡単エッジコンピューティング
PPTX
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
PDF
4章 Linuxカーネル - 割り込み・例外 4
PDF
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
PDF
Reconf 201901
PDF
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
機械学習 (AI/ML) 勉強会 #1 基本編
Secure element for IoT device
20171206 Sony Neural Network Console 活用テクニック
Iot algyan jhirono 20190111
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則.pdf
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
seccamp2012 チューター発表
LLM+LangChainで特許調査・分析に取り組んでみた
NNKproject Japanese version2
NNKproject Japanese version
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
ソニーのディープラーニングツールで簡単エッジコンピューティング
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
4章 Linuxカーネル - 割り込み・例外 4
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
Reconf 201901
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Ad

More from Kazuki Motohashi (6)

PDF
20190619 オートエンコーダーと異常検知入門
PDF
20190407 第7章 事例研究:自然言語処理における素性
PDF
20190324 第6章 テキストデータのための素性
PDF
20190417 畳み込みニューラル ネットワークの基礎と応用
PPTX
深層学習の基礎と導入
PDF
R-CNNの原理とここ数年の流れ
20190619 オートエンコーダーと異常検知入門
20190407 第7章 事例研究:自然言語処理における素性
20190324 第6章 テキストデータのための素性
20190417 畳み込みニューラル ネットワークの基礎と応用
深層学習の基礎と導入
R-CNNの原理とここ数年の流れ

20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知について