機械学習
QCon
人工知能

QCon2014:異常検知 機械学習

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を特徴ベクトルに変換する

その他事例

  • ネットワーク侵入
  • クレジットカード不正利用
  • 携帯電話不正利用
  • 保険請求
  • インサイダー取引
  • 画像診断:病巣検知

まとめ

  • 実用性が高い
  • 機械学習の勉強に最適
  • みんなでやってみよう