閾値設定なしで異常検知を実現!時系列データ異常検知デモを作成しました

概要

2023年10月に千葉県幕張で開催されたJapan IT Week 秋ソラコム社展示ブースへ出展したことをお知らせしておりましたが、今回は出展に際して新たに作成した時系列異常検知デモをご紹介いたします。

なぜ時系列データで異常検知?

IoTの領域では、回転機器の温度や振動データなど、産業設備や設備が設置されている環境のセンサーが生成する時系列データを扱います。設備は絶えず劣化するので、ある時点で故障し、場合によっては障害を引き起こす可能性があります。このような障害を未然に防ぐために、計画的なメンテナンスが実施されています。

しかし、計画的なメンテナンスでは予期せぬ故障や停止を完全に防ぐことは難しく、システムの安定性向上とメンテナンス頻度はトレードオフの関係にあります。

近年では、「予測的メンテナンス」あるいは「予兆・予知保全」と呼ばれる概念が注目されています。予測的メンテナンスは、機器の信頼性を予測するためにデータの収集と分析を行い、事前に異常の傾向を検知したり残りの耐用年数を推定するものです。このアプローチは機器全体の信頼性向上に寄与します。

このような背景から、IoT.kyotoではIoTデバイスから得られる時系列データに焦点を当て、異常を検知するアプローチを研究しています。

デモ内容

今回作成したデモは時系列データの異常を検知するといったものです。
特徴としては異常を検知するためにユーザー側で全く閾値などの設定をしていないという点があります。データの数値的な上限下限を設定している訳でも、傾きの許容範囲を設定している訳でもありません。直近のデータと照らし合わせて自動で判定をしています。これによってデータ毎のパラメータの調節という煩わしい作業をしなくて済みます。
また、直近のデータをもとに判定を実施するので時期によって平均の値が異なるようなデータにも対応することができる利点もあります。

つまり、データを可視化するついでに自動で異常を検出し、見落としへの対策や予知保全に役立てることができる便利なサービスです。

今回のデモではRandom Cut Forestというアルゴリズムを使用して異常を検知しています。
Random Cut Forestについては検証ブログがあるのでこちらも併せてご覧ください。

また、デモ内で使用しているデータは弊社製品であるIoT.kyoto CurrenTIAで取得し、AWS環境のDynamoDBテーブルへ送信された温度データを使用しています。

実際の様子

今回のデモが実際に異常検知を行っている様子がこちらです。

このデモでは測定されたデータの値が画面内のグラフにて青色で、それをもとに計算されたスコアが薄いグレーで表示されています。
そして異常と判定されたデータには赤いドットが追加されており、スコアと合わせてみていただければ、薄いグレーのグラフの値が高くなったタイミングで異常と判定されていることが分かります。

また、このデモでは検知した異常について、現在画面内に表示されていない直近の異常を一覧表示で確認することができます。
これにより同じ異常が繰り返し発生していないか確認することができ、対策が十分か確認することができます。

実装内容

今回のデモのアーキテクチャは以下のようになっています。

ご覧いただいて分かるとおり、シンプルなアーキテクチャで、推論はLambda上でのみ行っています。
実装の詳細に関してはこちらでまとめております。

これから

今回のデモでは閾値などのパラメータを設定することなくお手軽に異常検知を実現でき、単純な閾値では判定できなかったデータ異常を検出することができました。
こちらの機能に関しては弊社サービスIoT.kyoto VISのオプションとして提供できるよう現在絶賛開発中です。

今後も改善を続け、皆様へ提供できるよう努力していきます。