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.

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

348 views

Published on

20180110 AI&ロボット勉強会 Deeplearning4J と時系列データの異常検知について 25+5 min
社会性フィルタ通過分のみ公開。

Published in: Technology
  • Be the first to comment

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

  1. 1. Deeplearning4J Java/Scala で書ける産業向けのディープラーニングフレームワーク 本橋 和貴 2018年1月10日 AI & ロボット勉強会
  2. 2. ■ アジェンダ 社会性フィルタにより削除 ディープラーニングとは Deeplearning4J (DL4J) DL4J を用いた異常検知 2
  3. 3. ■ (人工)ニューラルネットワーク 脳機能に見られるいくつかの特性を計算機上のシミュレーションによって 表現することを目指した数学モデル (ニューラルネットワーク - Wikipedia) 3 図出典: http://www.lab.kochi-tech.ac.jp/future/1110/okasaka/neural.htm 人工ニューロン(パーセプトロン)
  4. 4. ■ ディープニューラルネットワーク ネットワークをディープにすることで より多くの、高次の特徴量を抽出 4 図出典: http://dl.ndl.go.jp/info:ndljp/pid/10952149入力層 中間層 (隠れ層) 出力層 (Shallow) Neural Network 【中間層が1層】 Deep Neural Network 【中間層が2層以上】 図出典: GumGum
  5. 5. ■ ディープラーニングは機械学習のあくまで一分野 しばしば機械学習は自然からヒントを得ている ● 進化論 ○ 遺伝、自然淘汰 ● 物理学 ○ アニーリング ● 群知能 ○ 蟻コロニー ● 免疫 ○ クローン選択説 ● 神経科学 ○ ニューラルネットワーク 5 図出典: Deep Learning: A Practitioner’s Approach
  6. 6. ■ なぜいまディープラーニングか 計算機の発達、GPGPU (General Purpose Graphic Processing Unit) の台頭 扱えるデータ量の爆増 学習のための様々な工夫の発明 (ReLU, Dropout, Batch Normalization, etc) ⇨ ディープラーニングの本領発揮、人間を超えるパフォーマンスも 6 ニューラルネットは パラメータが多く、表現力が高い 学習が遅い・難しい (過学習、勾配の消失)
  7. 7. ■ ニューラルネットの学習 * 入力 x と(正しい)出力 y の “マッピング” を学習 ニューラルネットワーク = 関数近似器 7 図出典: https://www.slideshare.net/AkinoriAbe1/ss-69510936 出力の誤差 パラメータの変分
  8. 8. ■ ディープラーニングの得意分野 入力 ⇨ 出力 の マッピング は得意 ● 物体認識(画像 ⇨ 種類) ● 音声認識(音 ⇨ 単語) ● ゲーム(画面 ⇨ ボタン操作) ● 次元圧縮(高次元 ⇨ 低次元) それ以外は実際そうでもない ● 会話(フレーズ ⇨ 適切な「回答」って?) * 一問一答ならできる、チャットボット 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 出典:いらすとや
  9. 9. ■ アジェンダ 社会性フィルタにより削除 ディープラーニングとは Deeplearning4J (DL4J) DL4J を用いた異常検知 9
  10. 10. ■ ディープラーニング開発フレームワーク Q: Tensorflow, Keras, Pytorch, Chainer, Caffe2, .. どれを使えばいいの? 10 ニューラルネットの 構築・学習・利用 のためのモジュール群 出典: https://dev.classmethod.jp/machine-learning/introduction-keras-deeplearning/
  11. 11. ■ ディープラーニング開発フレームワーク 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
  12. 12. ■ Open Neural Network Exchange ニューラルネットのモデルの統一フォーマット Microsoft と Facebook によるオープンソースプロジェクト 「あるAIフレームワークで構築した学習モデルを異なる機械学習システムに簡単に切り 替えることを目的としている」http://www.itmedia.co.jp/news/articles/1709/08/news051.html 12 相互 import /export
  13. 13. ■ ディープラーニング開発工程 いわゆる研究開発用開発フレームワーク (Tensorflow など) が活躍するのは 開発工程の一部 (まあそこが肝だけど)  運用を意識したフレームワーク選び ⇨ Deeplearning4J の提案 13 図出典: https://www.abeja.asia/news/
  14. 14. ■ 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)
  15. 15. ■ アジェンダ 社会性フィルタにより削除 ディープラーニングとは Deeplearning4J (DL4J) DL4J を用いた異常検知 15
  16. 16. ■ 時系列データの異常検知 【正常・異常のラベル付きデータの場合】  通常の分類問題に帰結 【ラベルなしデータの場合】  基本的にこちらが対象  方針:正常データを学習しておき、「正常」からの逸脱をみる  以降の説明で用いるニューラルネットワーク*:   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
  17. 17. ■ LSTM (Long-Short Term Memory) ある時刻 t の入力だけでなく、時刻 t - 1 の入力も考慮する どの時刻のデータを重視するかは入力・忘却・出力ゲートにより制御 17 図出典: https://www.slideshare.net/AndrePemmelaar/deep-lst-msandrnnsjulia 図出典: 深層学習 - 岡谷貴之
  18. 18. ■ Variational Auto Encoder 「入力 = 出力」になるようにエンコード・デコード処理を学習するモデル ● 正常データを入力すれば正常データが復元される ● 異常データはうまく復元できない (Reconstruction Error 大) 18 図出典: https://www.slideshare.net/ssusere55c63/variational-autoencoder-64515581
  19. 19. ■ 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) を載せる
  20. 20. ■ 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 に食わせれば完了
  21. 21. ■ 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
  22. 22. ■ 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
  23. 23. ■ まとめ ● 社会性フィルタにより削除 ● ニューラルネットワークは入力と出力のマッピングを行う関数近似器 ● Deeplearning4J (DL4J) は Java/Scala で書ける商用ディープラーニング 開発ソフトウェア群 ○ Skymind 社による商用サポートあり ○ 他フレームワークで構築したモデルをインポート可能 ● DL4J + LSTM + Variational Autoencoder で時系列データの異常検知 ○ Apache Spark とネイティブに連携して並列コンピューティング 23
  24. 24. ■ きっと参考になると思う文献 ● 仕事ではじめる機械学習 ○ 有賀康顕、中山心太、西林孝 ○ 従来の機械学習を仕事に活用するためのノウハウ ● Deep Learning: A Practitioner’s Approach ○ Josh Patterson, Adam Gibson ○ プログラミング実務家向けの深層学習 w/ DL4J 活用指南書 ● 異常検知と変化検知 ○ 井手剛、杉山将 ○ 従来の機械学習を用いた異常・変化検知手法の解説本 ● 深層学習を利用して異常を検出するコグニティブ IoT ソリューションを開発する ○ Romeo Kienzler ○ 深層学習を用いた IoT データ解析手法の解説 24
  25. 25. Backup 25
  26. 26. 26https://www.abeja.asia/news/

×