Upgrade to Pro — share decks privately, control downloads, hide ads and more …

時系列データの異常検知

SnowGushiGit
April 08, 2018

 時系列データの異常検知

本資料の内容

・異常とは
・異常検知問題のタイプ
・時系列データのタイプ
・データの前処理
・異常検知手法
・性能検証
・発展

SnowGushiGit

April 08, 2018
Tweet

Other Decks in Science

Transcript

  1. Table of Contents 1. 異常とは 2. 異常検知問題のタイプ 3. 時系列データのタイプ 4.

    データの前処理 a. データのクリーニング b. データの選定 5. 異常検知手法 6. 性能検証 a. 異常データの作成 b. 評価 7. 発展 4
  2. 異常とは ▸ 異常 ▹ 自然現象 ▹ 外れ値 ▹ 変動 ▹

    ノイズ ▹ 人間起因 ▹ 不正 ▹ 侵入 ▹ 不適切動作 6
  3. データごとの異常 ▸ 非構造化データ ▹ 音声 ▹ 異音検知 ▹ 画像・動画 ▹

    異常状態・侵入者検知 ▹ テキスト ▹ ノイズ文章除去 ▹ トレンドワード検出 10
  4. データの選定 ▸ 時系列データの選定 ▹ Window ▹ 利点 ▹ 波形が安定しないものでも適用可能 ▹

    欠点 ▹ Window幅の適切な設定が必要 ▹ Windowの移動幅(ストライド)の適切な設定が必要 37
  5. 異常検知手法 39 手法 教師あり機械学習 教師なし機械学習 (異常ラベルデータが ないことを意味) ルールベース メリット 明確化できない既知

    の異常に効果を発揮 異常ラベルをつけた データが不要 明確化できる特定 のケースに有効 デメリット 異常データが必要 性能検証や性能保証 が難しい 複雑なルールの組 み合わせや属人 性が上がる
  6. 異常検知手法 ▸ K近傍法 43 1: 新しい点 2: Window内の点と新しい 点との距離を全て計算 3:

    2で計算した距離の最も 短いものK個選びその平均 値を新しい点の異常スコア とする 4: 閾値を超えているか チェック 短い距離のデータK個 平均値 (異常スコア)
  7. 異常検知手法 ▸ K近傍法 ▹ 距離の種類 ▹ ユークリッド距離 ▹ ばらつきがないデータに有効 ▹

    マハラノビス距離 ▹ データのばらつきがある場合に有効 ▹ σはqの標準偏差 ▹ 他の距離尺度 ▹ http://wikiwiki.jp/cattail/?%CE%E0%BB%F7%C5%D9%A4%C8%B5%F7%CE%A5#fc 29bc1e 44
  8. 異常検知手法 ▸ K近傍法 ▹ 利点 ▹ 波形変化も検出可能 ▹ 欠点 ▹

    K点の適切な決め方が難しい ▹ window幅の適切な決め方が難しい ▹ 周期性のあるデータは周期に合わせたwindow幅を設定 ▹ それ以外はバリデーションデータで決定 45
  9. 定常性について ▸ モデリング ▹ データに対する仮定 ▹ 自分自身の値と自己相関関係がある ▹ 定常性を満たしており自己共分散がラグに依 存(ラグのサイズのみ考慮)

    ▹ 仮説 ▹ 自分自身の過去の値に対してラグを設定しそ の線形結合により次の値を予測可能では ▹ 自己回帰モデル 52
  10. ARモデル ▸ 自己回帰モデル(ARモデル:Autoregressive モデル) ▹ 今回は自己回帰モデルのみ ▹ 発展系 ▹ ARMA(自己回帰移動平均モデル)

    ▹ ARIMA(自己回帰和分移動平均モデル) ▹ SARIMA(季節自己回帰和分移動平均モデル) ▹ 別のモデル ▹ 状態空間モデル ▹ ローカルレベルモデル ▹ LSTM, GRU 54
  11. ARモデル ▸ パラメータαの導出 ▹ 最小2乗法 ▹ 定義したモデル式の予測値と実測値が最小に なるようにモデルのパラメータを設定 ▹ 最尤推定

    ▹ 確率分布を仮定し、実測値をもっとも導出する ような確率分布のパラメータを設定 ▹ 最小2乗法は最尤推定法で分布をガウス分布と仮 定した場合は等価 ▹ https://mathwords.net/saisyonijoho 57
  12. ARモデル ▸ 最尤推定 ▹ データは正規分布から得られると仮定 ▹ 定常性(再掲) ▹ 平均、分散は一定のため時間に依存しない ▹

    ラグt+1の値はラグtの値の線形結合で導出できる (再掲) ▹ 平均が自己回帰モデルと等しい正規分布は下記 58
  13. ARモデル ▸ データを表現できているか性能検証 ▹ MSE ▹ 実測値と予測値の差が少ないことを確認 ▹ 決定係数 ▹

    データのばらつき度合いも考慮して評価 ▹ 平均から離れた値が多いと小さくなる 63 : 実測値 : 予測値 : 実測値の平均 : 実測値 : 予測値
  14. 性能検証 ▸ 性能検証に必要なもの ▹ 異常データ ▹ ない場合は作成が必要 ▹ 評価 ▹

    閾値決定と性能検証に使用 ▹ 時系列データの閾値 ▹ 時系列データの場合は複数パターン存在 67
  15. 異常データの作成 ▸ 異常データの作成が必要な理由 ▹ 異常データがないケース ▹ 検知可能な異常を明確化するケース ▸ 注意点 ▹

    異常データの作成はあくまで検証程度。実環境で は予想外の異常が発生するため実データを使える 環境では実データで検証すべき 69
  16. 評価指標 ▸ 正常データを正常とした割合と異常データを 異常とした割合 78 Positive Negative Positive (Predict) True

    Positive (TP: 略称) False Positive (FP: 略称) Negative (Predict) False Negative (FN: 略称) True Negative (TN: 略称) 正常データの異常度の正 規分布 異常データの異常度の正 規分布 TP 閾値 FN FP TN TN と FN TPも含まれる 異常 正常
  17. 評価指標 ▸ 下記のようなケースに定義した場合 ▹ Positive ▹ 健康 ▹ Negative ▹

    病気 ▸ 閾値の決め方 ▹ False Positiveを減らす ▹ 医者が限られているので治療する人は限定 ▹ False Negativeを減らす ▹ 軽い症状でも病気と診断して治療 79
  18. 評価指標 ▸ 異常データの数が少ないのでTrue Positive とTrue Negativeだけでは不十分 ▹ ROC AUC(Receiver operating

    characteristic area under the curve): ▹ 異常データは少ないので分布で評価 80
  19. 発展 ▸ より表現力の高いモデルを扱いたい ▹ 深層学習: LSTM、GRUなど ▸ 複数の時系列を扱いたい ▹ Multivariate

    LSTM, VARXなど ▸ データを変換して扱う ▹ スペクトログラム, Wavelet変換 ▸ 状態推定 ▹ HMMによる時系列状態推定 86
  20. References 90 ▸ Deep Learning Lab 異常検知入門 ▹ https://www.slideshare.net/shoheihido/deep-learning-lab-88299 985/

    ▸ How DTW (Dynamic Time Warping) algorithm works ▹ https://www.youtube.com/watch?v=_K1OsqCicBY ▸ 【統計学】ROC曲線とは何か、アニメーションで理解する。 ▹ https://qiita.com/kenmatsu4/items/550b38f4fa31e9af6f4f#3-roc %E6%9B%B2%E7%B7%9A%E3%81%AE%E5%BD%A2%E7 %8A%B6%E3%81%AE%E8%80%83%E5%AF%9F ▸ 定常性についてのまとめ ▹ https://dev.classmethod.jp/statistics/stationarity-reading/ ▸ 異常検知の世界へようこそ ▹ https://research.preferred.jp/2013/01/outlier/
  21. References 91 ▸ Stationary process ▹ https://en.wikipedia.org/wiki/Stationary_process#Differencing ▸ Rで計量時系列分析:AR, MA,

    ARMA, ARIMAモデル, 予測 ▹ https://tjo.hatenablog.com/entry/2013/07/12/184704 ▸ scikit-learn で回帰モデルの結果を評価する ▹ https://pythondatascience.plavox.info/scikit-learn/%E5%9B%9E %E5%B8%B0%E3%83%A2%E3%83%87%E3%83%AB%E3% 81%AE%E8%A9%95%E4%BE%A1 ▸ PRML 1.2.4-1.4 ▹ https://qiita.com/mochio/items/5cf3ad0b76729ca16346#%E3%8 2%AC%E3%82%A6%E3%82%B9%E5%88%86%E5%B8%83 %E3%81%AE%E6%9C%9F%E5%BE%85%E5%80%A4%E5% B9%B3%E5%9D%87%E5%80%A4
  22. References 92 ▸ ARモデルのパラメータ最尤推定を思い出す ▹ http://nekopuni.holy.jp/2014/01/rar%E3%83%A2%E3%83%87% E3%83%AB%E3%81%AE%E3%83%91%E3%83%A9%E3%83 %A1%E3%83%BC%E3%82%BF%E6%9C%80%E5%B0%A4% E6%8E%A8%E5%AE%9A%E3%82%92%E6%80%9D%E3%81 %84%E5%87%BA%E3%81%99/

    ▸ 最小二乗法と最尤法の関係 ▹ https://mathwords.net/saisyonijoho ▸ A Complete Tutorial on Time Series Modeling in R ▹ https://www.analyticsvidhya.com/blog/2015/12/complete-tutorial -time-series-modeling/ ▸ 入門 機械学習による異常検知―Rによる実践ガイド ▸ 時系列解析入門