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
29
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
71
AWS re:Invent直前!2021年のアップデートを振り返ろう AI/MLサービス編
kmotohas
0
840
論文解説 150 Successful Machine Learning Models: 6 Lessons Learned at Booking.com
kmotohas
0
1.1k
konduit-servingとSpring Cloud Data Flowを用いたMLアプリケーション開発
kmotohas
0
530
Deep Learningによる画像認識の基礎・CNNの仕組み
kmotohas
0
1.1k
詳説Deep LearningとDL4JとMLOps入門
kmotohas
0
590
オートエンコーダーと異常検知入門
kmotohas
1
1.1k
20190515 RNNと自然言語処理 RNNの基礎からAttention〜BERTの概要まで
kmotohas
0
640
20190417 畳み込みニューラル ネットワークの基礎と応用
kmotohas
0
160
Other Decks in Technology
See All in Technology
Classmethod Odyssey 登壇資料
yamahiro
0
390
【基調講演】変える、今ここから ― IoTとAIで紡ぐ未来
soracom
PRO
0
320
開発生産性をむしろ向上させる セキュリティパートナーの作り方 / Dev Productivity Con 2024
flatt_security
0
370
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
1
270
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
フルリモートワークはエンジニアの夢を叶えたか? #cm_odyssey
mamohacy
2
600
コンテナ・K8s研修 - 後半 Kubernetes 基礎&ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
1
120
GoとアクターモデルでES+CQRSを実践! / proto_actor_es_cqrs
ytake
1
150
ギークの理想が7つ集まるエムスリーで夢を叶えよう - エムスリー株式会社
m3_engineering
1
260
VPoEの視点から見た、ヘンリーがサーバーサイドKotlinを使う理由 / Why Server-side Kotlin 2024
cho0o0
1
420
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
4
1.3k
20240717_イケコパ代表Copilot_in_Teams会社でこう使ってます
ponponmikankan
2
430
Featured
See All Featured
Thoughts on Productivity
jonyablonski
64
4.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
Gamification - CAS2011
davidbonilla
78
4.9k
The Language of Interfaces
destraynor
151
23k
What the flash - Photography Introduction
edds
65
11k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
78
15k
From Idea to $5000 a Month in 5 Months
shpigford
377
46k
5 minutes of I Can Smell Your CMS
philhawksworth
200
19k
Clear Off the Table
cherdarchuk
89
320k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
Rails Girls Zürich Keynote
gr2m
93
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
26
2.1k
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/