ビッグデータマガジン

第二回 IoT×機械学習で異常検知

time 2016/08/04

第二回 IoT×機械学習で異常検知

  1.データを使った異常を検知

こんにちは!

DATUM STUDIOの長岡です。先日ガチャガチャでパグを出すために2000円投資しました。さすがにアソートの偏りを疑いました。

 

さて、前回の記事で機械学習の特徴・メリットについてお話させていただきました。

これまで人間がやっていた業務を機械学習に置き換えることで業務が効率化したり、人間より精度の高い予測ができる、などのメリットがありました。

 

今回から次回にかけて、私たちがどのような手法で機械学習を取り入れているかについて、実際に立ちはだかった壁やチャレンジしたことを現場の視点からご紹介したいと思います。

 

ある企業様から「センサーデータから機械の異常検知を行いたい」というご依頼をいただきました。

IoTがトレンドワードになって久しいですが、機械にセンサーを設置し、データを収集する企業が多くなっています。ご依頼をいただいた企業様も、自社で異常パターンを解析していたのですが、異常なパターンを見つけるアルゴリズムを組むことができず、人が代表的なセンサーをチェックして異常な値がでていないか検閲していました。そのため、全てのパターンを網羅すること、予測することができないといった状況でした。

そこで、私たちが機械学習を利用して、自動で異常検知する仕組みを構築することになりました。

 

今回のケースは、数百のセンサーが存在、かつ相関関係(相互に反応しあっている)にあり、またインフラに携わる機器であったことから異常とする教師データが無かったため、一筋縄ではいきませんでした・・・ では、どうしたか!?の前に、まずは異常検知の代表的な手法をご紹介しましょう。

 

2.異常検知のための三つの手法

a.外れ値から検出

外れ値からの検出は最も想像しやすいのではないでしょうか?

センサーのデータから「このセンサーではこの数値が出るだろう」という予測モデルを構築し、モデルから外れている値を異常、とみなすものです。このモデルには様々な形がありますが、下のグラフを例に解説しましょう。

下の図は、予測値と実測値の因果関係を数値化し、グラフにしたものです。赤い線上の点は、予測値と実測値がほぼ一致し、正常な値としてみなされています。つまり「このくらいの数値、と予測したら実際にその値通りだったから、これは正常」ということです。

一方、赤い丸の部分は、赤い線からも離れています。予測値が実測値と大きく違った点です。これは「○○、と予測したのに実際は××で大きく違った。これは異常な動きをしたセンサーであるに違いない!」として異常値とみなしているのです。

02

 b.変化点検出

続いて変化点からの検出です。これには前回でも紹介した、時系列モデル(時系列に沿ってデータを整理し、因果関係を数式化したモデル)を用います。

03

 

時系列モデルは、過去のデータの動きを表しています。一方変化点スコアは、「過去の動きと比べてどう異なる動きをしているか」をスコアにして表したものです。

この手法での異常検知は、変化点スコアが高い地点、つまり「過去と比べて急激に大きな違いが出た地点」を異常、とみなしています。

この手法は、サイバー攻撃に対する異常検知などで使われます。

 

 c.異常状態検出

さて、より複雑な手法、異常状態検出をご紹介します。

まずは手法bのように、個別の正常なセンサーデータ(過去データ)を時系列モデルであらわし、そのモデル同士の関係性(相関関係)をモデル化(因果関係を数値化)します。そのモデルを基に異常判定し、新しいデータ(未来のデータ)は異常かどうか判定できる仕組みを作る、というわけです。(下図)

04

 

やり方は様々ですが、正常に稼働しているセンサー群のデータから主成分分析という手法により特徴を抽出し、検証したいデータが正常状態の特徴とどれだけ離れているかを異常度とみなす「主成分分析による異常検知」などがあります。

 

3.ケーススタディ~センサーデータから異常を抽出する~

 

と、ここまで三つの手法について解説してきましたが、いかがでしたでしょうか?

(技術的な話が続いてつまらないとおっしゃる方もいらっしゃるかなと思います・・・)

 

さて、今回のケースに立ち戻り、どのようにアプローチしていったかをご説明します。

 

まずは変化点検出を使用しました。一つ一つの時系列モデルを作成し、そこから変化点(通常の周期と大きく異なる動きをした点)を抽出しました。

 

しかし、ここで問題が起きます・・・

 

 

・問題1

そもそも時系列モデルに周期がない、つまり時系列上にパターンがでないセンサーの場合、正常か異常か判定できない。

・問題2

センサー値にはノイズがあり、また外的影響による出力の変動が避けられないケースが多々ある。

センサーで例えると、Aというセンサーが高い値を出している場合、Bというセンサーも高い値がでることは異常ではないが、Bというセンサー単体で見ると異常値と判定してしまいます。

 

例えば、冬には暖房を使うため発電機の出力が上がりますが、この場合の出力上昇そのものは異常ではないです。しかし、暖房の使用量を考慮せずに、発電機の出力だけに着目すると異常と判定されてしまうかもしれません。

 

4.次回予告 問題発生!?どこまでが故障?どこまでが正常?

さて、人の手間を省くため・精度を上げるために導入される機械学習ですが、このような事態が発生すると、精度も悪く、人に異常でないものを「異常」と伝えてしまうことで、人の仕事を増やしてしまいます。

次回、この問題にどのように対処したのか、ご紹介します。

01

長岡プロフィール写真

長岡 裕己(Hiroki Nagaoka)
DATUM STUDIO株式会社
エグゼクティブ・プランナー

■経歴
アメリカ、オレゴン大学にてマーケティングを専攻。
前職では人材領域で新規事業開発や南インド支社長などを経験
2015年、DATUM STUDIOに入社。
様々な規模・業種の企業様にデータ活用の提案を行っている。
愛犬(パグ)の散歩が趣味。

DATUM STUDIOへのお問い合わせはこちらまで
https://datumstudio.jp/contact

LINEで送る
Pocket


down

コメントする




CAPTCHA


01_解説

06_統計

ビッグデータ活用 ご相談ください
はじめての機械学習
IoT 企画・活用講座

Google + ページ

ビッグデータ活用 ビッグデータマガジン

連携サイト

ビッグデータ活用 ビッグデータマガジン
 
ビッグデータ活用 ビッグデータマガジン

お問い合わせ

  • 記事に関するお問合せ、
    ビッグデータにまつわるお悩みやご相談等
    お気軽にお問い合わせください

    【お問合せフォームへ】
  •