スカイマインド
● ディープラーニングのモデルをオンプレミスで実運用へ
● Scalaを使用(実運用向けのPythonと考えられる)
● Java Virtual Machine スタックをC++のネイティブ計算に
接続 (例、ビッグデータシステムへの一流のアクセス)
● SKIL(Skymind Intelligence Layer)を構築:実運用
ディープラーニングのアプリケーションのための
実運用のディープラーニングシステム
「異常」とは?
● データ中の不正常のパターン
● 不正利用検知 - 悪用のクレジットカードの取引
● また、不正利用検知 - 通話詳細記録で位置情報偽装を検知
● ネットワーク侵入 - ネットワークでの異常な活動
● データセンターの故障した計算機
簡単なケーススタディー - 例、なぜやってきた?
● 通信会社: http://blogs.wsj.com/cio/2016/03/14/orange-tests-
deep-learning-software-to-identify-fraud/
● ネットワークインフラ: https://insights.ubuntu.
com/2016/04/25/making-deep-learning-accessible-on-
openstack/
なぜディープラーニング?
● 大量のデータから学習するのは優秀
● 独自の特徴表現:ノイズにロバストであるし、クロス
ドメインパタンも学習可
● 広告に既に広く適用:Google自体は同じようなパターン
認識に多額の投資を行う(ターゲティング/関連度)
手法紹介
● 教師なし - 指定の時間ウィンドウにわたってドロップアウト付きの
オートエンコーダの再構成誤差と移動平均を使用
● 教師あり - RNNは時系列のyes/noの一組から学習。時間ステップの
時系列から学習して、異常が起ろうとすることは予測。
● ストリーミングとミニバッチを使用(ニューラルネットは一般的に
このような学習は可)
RNNの時系列/ウィンドウのシーケンスの種類
http://karpathy.github.io/2015/05/21/rnn-effectiveness/
参照:http://karpathy.github.io/2015/05/21/rnn-effectiveness/
いくつかの定義
● 再構成誤差:オートエンコーダは教師無しの
プレトレーニングでデータを再構成することが学習。
KL情報量(二つの確率分布の誤差)を最小化。
● RNN/時系列:参照 http://deeplearning4j.org/ja-usingrnns
デモ!
● Kibana
● Kafka
● Elasticsearch
● Logstash
● NiFi
● Cassandra
● Lagom
● Dl4j エコシステム (DataVec,Nd4j,Dl4j,Arbiter)
異常検知のためのリファレンスアーキテクチャ
外部
世界
nifiで外部から採集
kafkaへ送信
データに関する予測を行う
elasticsearchとlogstashで予測のインデックスを作る
kibanaでデータを表示cassandraに
生イベントを蓄積
まとめ
● 実在する機械学習パイプライン
● 生データ結果を蓄積するCassandra
● 警告や可視化用のELK スタック
(Elasticsearch, Logstash, Kibana)
● モデル採集のためのKafka
● モデル予測サーバーになるLagom
● データパイプラインを設計するためのNiFi
ご質問は?
Email: [email protected] [email protected]
Twitter: agibsonccc bytedeco
Github: agibsonccc saudet