18
ディープラーニングの 異常検知 Adam Gibson & Samuel Audet - Skymind

Anomaly Detection in Deep Learning (Updated)

Embed Size (px)

Citation preview

ディープラーニングの異常検知

Adam Gibson & Samuel Audet - Skymind

ディープラーニング 本

日本語版企画中

Dl4j

スカイマインド

● ディープラーニングのモデルをオンプレミスで実運用へ

● Scalaを使用(実運用向けのPythonと考えられる)

● Java Virtual Machine スタックをC++のネイティブ計算に

接続 (例、ビッグデータシステムへの一流のアクセス)

● SKIL(Skymind Intelligence Layer)を構築:実運用

ディープラーニングのアプリケーションのための

実運用のディープラーニングシステム

「異常」とは?

● データ中の不正常のパターン

● 不正利用検知 - 悪用のクレジットカードの取引

● また、不正利用検知 - 通話詳細記録で位置情報偽装を検知

● ネットワーク侵入 - ネットワークでの異常な活動

● データセンターの故障した計算機

ネットワークインフラ - 事前自動移行により故障したワークロードを回避、時間やお金は節約

なぜディープラーニング?

● 大量のデータから学習するのは優秀

● 独自の特徴表現:ノイズにロバストであるし、クロス

ドメインパタンも学習可

● 広告に既に広く適用:Google自体は同じようなパターン

認識に多額の投資を行う(ターゲティング/関連度)

手法紹介

● 教師なし - 指定の時間ウィンドウにわたってドロップアウト付きの

オートエンコーダの再構成誤差と移動平均を使用

● 教師あり - RNNは時系列のyes/noの一組から学習。時間ステップの

時系列から学習して、異常が起ろうとすることは予測。

● ストリーミングとミニバッチを使用(ニューラルネットは一般的に

このような学習は可)

オートエンコーダの異常検知 KL情報量により移動平均異常

オートエンコーダはデータを再構成することが学習(例、入力はラベルにする)

リカレントネットの異常

時系列にわたってソフトマックスを学習:

固定のウィンドウがあれば、そのシーケンスの中で異常が起きる

確率を予測するのは目的

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

実運用に向けて

● Kafka/Spark Streaming/Flink/Apex

● ニューラルネットはストリーミング更新の消費者になる

● データは?大体ログの採集、動画でも

デモ!

● 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