EurekaMoments

ロボットや自動車の自律移動に関する知識や技術、プログラミング、ソフトウェア開発について勉強したことをメモするブログ

機械学習による異常検知と変化検知の基礎知識

目次

背景・目的

自律移動システムにおいて、外界認識や位置計測でセンサ観測データの
外れ値を除去したり、内界センサより得られる情報から自身の異常を
検知するなど、異常検知・変化検知という技術はとても重要な技術です。
一番シンプルなやり方としては、各時刻にセンサから得られる瞬間的な値を、
事前に決めた閾値で逐次処理するというのが一般的ですが、センサのデータには
誤差によるばらつきがあるので、単純な閾値処理で正常と異常を判定するのは
難しい事が多いです。
そういった判定の精度を向上するために、機械学習により確率的に
異常検知・変化検知を行う技術がありますが、自分は今までそういった
技術に全然馴染みがなかったので、下記の書籍を読んで勉強する事にしました。

異常検知と変化検知 (機械学習プロフェッショナルシリーズ)

異常検知と変化検知 (機械学習プロフェッショナルシリーズ)


今回の記事では、この書籍を読んだ感想、学んだ事のメモ、別途参考にした
記事などをまとめておこうと思います。

全体の感想

異常検知・故障検知の基本、様々な種類の手法について幅広く網羅されているので、
この分野の全体像を把握するのに大変役立つ書籍だと感じました。各章で様々な
理論式が出てきますが、それらの特徴や導出の過程などが細かく解説されていて、
実際にそれらを活用する際の理解やコード実装などの助けになると思います。
ただし、機械学習を学んでいるとよく目にする専門用語が序盤から盛沢山なので、
統計学や機械学習の基礎をある程度理解してからじゃないと、書籍の内容を理解
するのは難しいと感じました。自分も少しは理解したつもりでいますが、
もう1周、2周と読み重ねないといけなそうです。
また個人的には、理論の解説と合わせてその技術が実際に活用されている事例紹介
などがあると、より内容が理解しやすくなると思います。気になって調べたところ、
下記のような事例が紹介されていたので、ついでにメモしておきます。
www.albert2005.co.jp
products.sint.co.jp

各章におけるメモ

第1章: 異常検知・変化検知の基本的な考え方

  • データの性質に応じて確率分布をどう学習するか、異常ないし変化の度合いを
    どのように確率分布と結び付けて定式化するかが重要。
  • 確率分布の比、つまり、密度比あるいは尤度比で異常度を定義する。
  • 異常判定モデルを作るためには、全標本の中に異常標本が含まれていないか、
    含まれていたとしても圧倒的少数であると信じられる事が必要。
    www.slideshare.net

第2章: ホテリングのT2法による異常検知

  • 単一の多変量正規分布に従う独立な標本が与えられたときの外れ値検出技術。
  • マハラノビス距離: 観測データが、どれだけ標本平均から離れているかを表す。
  • ばらつきが大きい方向の変動は大目に見るという効果がある。
  • 正常時には~%未満でしか起こらないから正常ではないだろう、という論理。 qiita.com

第3章: 単純ベイズ法による異常検知

  • 迷惑メール分類器の基本技術。
  • 多次元のデータに対する問題を、1次元の問題に帰着するための枠組み。
  • 各変数に対してそれぞれ計算された異常度の和。
  • スムージング: 訓練データに完全に忠実に最尤推定するのではなく、
    話半分に聞く事で汎用性を高める。
  • 訓練データから決められるモデルに、未知パラメータに対する常識的な
    思いを込めた事前分布を混ぜる。
  • 事後確率が高いという事は、自分の常識と観測の双方に照らして自然と
    いう事になる。 avinton.com

第4章: 近傍法による異常検知

  • 距離をどう決めるかが本質になる。
  • マージン最大化近傍法は、最も汎用性が高い計量学習の手法の一つ。
  • マハラノビス距離をそのまま異常度に使うのではなく、k近傍法を
    1枚かませる。
  • 同一ラベルに属する標本をなるべく密集させる。
  • 異なるラベルに属する標本を出来る限り引き離す。
  • 標本数の不均衡の是正は、ブートストラップ法により少数クラスの
    見掛け上の標本数を増やすか、多数標本の数を間引くかして行うの
    が一般的。 orizuru.io

第5章: 混合分布モデルによる逐次更新型異常検知

  • 実用上最も広く使われている異常検知手法の一つ。
  • 今観測したデータだけでモデルを更新する式を導く事が最終目標。
  • 過去に遡るほど重みの値は小さくなり、昔を忘れるという気持ちが
    表現される。 qiita.com

第6章: サポートベクトルデータ記述法による異常検知

  • 異常と正常を分ける球が、ごく少数の訓練標本で表される。
  • あたかもそれらの標本が、球面を支えているかのようになる。
  • カーネルトリック: 内積を与える事で、非線形変換をした事に
    するという考え方。
  • 実用上の問題は、どのような非線形変換が生じ、どのような球が
    変換後に生じるのかが予想しにくい事。 logics-of-blue.com

第7章: 方向データの異常検知

  • 長さが揃ったベクトルからの異常検知という問題を考える。
  • フォンミーゼス・フィッシャー分布: 平均方向と集中度という
    2つのパラメータを持つ。
  • 平均方向とその周りのばらつきを与えた時に、最も表現能力が
    高い分布、最も偏見が少ない分布である事が示せる。 qiita.com

第8章: ガウス過程回帰による異常検知

第9章: 部分空間法による変化検知

  • 継続して何らかの異常状態が発生しているかを検知する。
  • 現在の状態が、両者のどちらに近いかを調べる。
  • 1本の時系列データを窓を使って部分時系列の集合として表す。
  • ベクトルの外れ値問題に帰着させる。
  • ある程度滑らかな時系列データの場合、隣り合った部分時系列
    の要素はほとんど等しくなる(自明な一致)。
  • 時間的に近接した部分時系列同士は比較対象としない工夫。
  • 過去側と現在側に2つの領域を設定し、それぞれの領域で
    確率分布を推定する。
    http://web.tuat.ac.jp/~s-hotta/RSJ2012/RSJ2012_hotta.pdf

第10章: 疎構造学習による異常検知

  • 変数同士の依存関係の崩れを異常と結び付ける。
  • グラフ構造をデータから学習する問題が、データから
    確率分布を学習する問題に帰着できる。
    http://latent-dynamics.net/01/2010_LD_Ide.pdf

第11章: 密度比推定による異常検知

第12章: 密度比推定による変化検知

  • ダイバージェンスという用語は、相違や逸脱という意味の
    英語で、数学的な距離と区別するために導入された概念である。