Edited at

QCon2014:異常検知 機械学習

More than 1 year has passed since last update.

QCon Tokyo 2014

QCon2014 My Report Top

Detail Report#3/8


異常検知 機械学習の有望なアプリケーション

寺田英雄:オープンストリーム


講師 BackGround


  • 機械学習(独学)

  • 動画エンコーダー、同期再生エンジン

  • 画像処理、パターン認識

  • オブジェクト指向(driver FW)

  • 言語は assembra, c, c++, python, R,,


Anomaly Detection ?


異常検知の目的

正常とされるパターンに一致しないパターンを見つけること

(なんかあるぞと警報を出す)


技術的に


  • あらゆるアルゴリズムを動員(定番がない)

  • 活発な研究

  • 機械学習の書学者に生きた教材

  • 結果がシンプル=>正常 or 異常


社会的に


  • あちこちにニーズ

  • 異常の意味の広がり(通常とそうでないと意味で使うと応用例が増える)


異常検知は現場導入しやすい


  • 結果がシンプル(なんかビッグデータがあるけどというときに)

  • 学習データを用意しやすい

  • 評価しやすい

  • デバッグしやすい 


機械学習とは?


普通のプログラム

入力 Xi -> アルゴリズムYi = f(Xi) -> 出力データ Yi


普通に作れない場合

入力データ(不定形) -> ???? -> 出力データ

(この???の部分を半自動でコンピュータにやらせる)


モデルベース学習(オフライン学習)

学習と実行が分かれている


学習

生データ -> 学習アルゴリズム -> モデルデータ


実行

生データ -> モデル実行エンジン(モデルデータ) -> 出力


モデルベース(オンライン学習)


学習と実行

生データ -> 学習アルゴリズム -> モデルデータ

     ->(モデルデータ:上記の計算結果で常時上書きながら) -> 出力


学習アルゴリズム検討事項


  • 入力データの性質

  • 異常のタイプ

  • データらベル(教師)の有無

  • 検知結果の出力

  • 特徴


入力データの性質


  • インスタンスは属性値の集合

  • 単変量型と多変量型

DSC_9706.jpg


属性値の型と手法


  • 2値 binary

  • カテゴリ categorical

  • 連続値 numerical

統計的手法 -> 連続値、カテゴリ

最近傍型手法-> 距離定義が必要


インスタンス間の関係性


  • シーケンスデータ(順序に意味がある)

  • 空間データ(位置により意味合いが変わる 近傍インスタンスと関係)

  • グラフデータ (graphdata) (facebook, 友人関係など) エッジで結合されたデータノード


異常のタイプ


点異常

DSC_9709.jpg


文脈依存型異常

晴れ続きでは雨が、雨続きでは晴れが異常になる

DSC_9707.jpg


  • 集団型異常

いつもとちがう動きをしているところ

DSC_9708.jpg


データラベル(教師)の有無


教師あり異常検知


  • 正常なパターンも異常のパターンもある

  • 異常検知というよりも、ただの区別


教師無し異常検知

(仮定を用いて判定)

* 正常なデータは異常なデータよりも頻繁に発生する

DSC_9711.jpg


半教師有異常検知


  • 正常データだけにラベル有

  • 正常でないものを異常とする


検知結果の出力

Score で表示するか、2値で表示するか。


  • Score

    異常度合を出す


  • ラベル

    正常、異常



よい特徴量とは?


  • 一言では答えられない

  • 生データVS アルゴリズム

  • アルゴリズムに引っかかりやすい形式

  • ノイズに負けにくい形式

  • 経験則、ノウハウ-> 批判 -> Deep Learning by Google


異常検知のアルゴリズム


  • 分類による異常検知
    ### 分類モデル

  • ニューラルネットワーク

  • ベイジアンネットワーク

  • サポートベクターマシン

  • ルールベース

分類器を見つけさせる


最近傍

LOF(Local outlier factor)の概念図


事例


SQL インジェクション攻撃の検知


  • 正常時SQLパターンの多重統計モデルを学習

    DSC_9712.jpg


  • システム構成

    DSC_9713.jpg



Provider

SQLを取り出す


Parser


  • SQLを解析、Token列を抽出

  • Skelton Queryを作成


Feature Selector


  • Feature vector 作成

  • Profileを選択


自動車用歩行者検知


  • 教師有学習

  • 車両前方カメラ

  • ランダム背景

  • 学習データ

  • 何千人分


スキャン

各点の郊外の向きと強さで人とグラム

Histogram of oriented Gradient

Histogram binを特徴ベクトルに変換する


その他事例


  • ネットワーク侵入

  • クレジットカード不正利用

  • 携帯電話不正利用

  • 保険請求

  • インサイダー取引

  • 画像診断:病巣検知


まとめ


  • 実用性が高い

  • 機械学習の勉強に最適

  • みんなでやってみよう