Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知...
Search
kmotohas
January 10, 2018
Technology
0
31
20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知について
20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知について 25+5 min
社会性フィルタ通過分のみ公開。
kmotohas
January 10, 2018
Tweet
Share
More Decks by kmotohas
See All by kmotohas
SageMaker Dive Deep Workshop 動かして理解する SageMaker Training Job の仕組み
kmotohas
0
79
AWS re:Invent直前!2021年のアップデートを振り返ろう AI/MLサービス編
kmotohas
0
890
論文解説 150 Successful Machine Learning Models: 6 Lessons Learned at Booking.com
kmotohas
0
1.2k
konduit-servingとSpring Cloud Data Flowを用いたMLアプリケーション開発
kmotohas
0
580
Deep Learningによる画像認識の基礎・CNNの仕組み
kmotohas
0
1.1k
詳説Deep LearningとDL4JとMLOps入門
kmotohas
0
640
オートエンコーダーと異常検知入門
kmotohas
1
1.2k
20190515 RNNと自然言語処理 RNNの基礎からAttention〜BERTの概要まで
kmotohas
0
700
20190417 畳み込みニューラル ネットワークの基礎と応用
kmotohas
0
170
Other Decks in Technology
See All in Technology
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
3
1.5k
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
190
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
140
20241218_今年はSLI/SLOの導入を頑張ってました!
zepprix
0
100
podman_update_2024-12
orimanabu
1
290
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
27
23k
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
210
AWS re:Invent 2024 ふりかえり勉強会
yhana
0
480
非機能品質を作り込むための実践アーキテクチャ
knih
5
1.6k
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
840
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
330
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
200
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Thoughts on Productivity
jonyablonski
68
4.4k
Code Review Best Practice
trishagee
65
17k
Building Adaptive Systems
keathley
38
2.3k
A Philosophy of Restraint
colly
203
16k
Agile that works and the tools we love
rasmusluckow
328
21k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Scaling GitHub
holman
459
140k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
RailsConf 2023
tenderlove
29
940
Transcript
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
26 https://www.abeja.asia/news/