(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023036469
(43)【公開日】2023-03-14
(54)【発明の名称】外れ値検出装置及び方法
(51)【国際特許分類】
G06F 11/34 20060101AFI20230307BHJP
G05B 23/02 20060101ALI20230307BHJP
【FI】
G06F11/34 152
G05B23/02 Z
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021143534
(22)【出願日】2021-09-02
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】バックフース ヤナ
(72)【発明者】
【氏名】増田 峰義
【テーマコード(参考)】
3C223
5B042
【Fターム(参考)】
3C223BA01
3C223CC01
3C223DD01
3C223FF05
3C223FF22
3C223FF26
3C223FF35
3C223GG01
3C223HH01
5B042MA08
5B042MA14
(57)【要約】
【課題】ユーザからのフィードバックデータを必要とした教師あり機械学習無しに、ノイズが低減された外れ値検出を実現する。
【解決手段】外れ値検出装置が、指定されたウィンドウ長を有する第1及び第2の処理ウィンドウを生成し、第1の処理ウィンドウに対して相対的に第2の処理ウィンドウを指定されたスライディング調整長分スライドするスライディング調整を行う。当該装置が、一種類以上の外れ値サブ検出を行う。外れ値サブ検出は、実際の値の時系列である実際時系列データのうち第1の処理ウィンドウに対応したデータ部分である実際時系列データセットと、予測値の時系列である予測時系列データのうちスライディング調整後の第2の処理ウィンドウに対応したデータ部分である予測時系列データセットとを当該外れ値サブ検出の種類に対応した方法で比較することを含む。当該装置は、一種類以上の外れ値サブ検出の結果に基づく外れ値候補が外れ値か判定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
外れ値検出器と、
外れ値判定器と
を有し、
前記外れ値検出器が、ウィンドウ生成器と、一又は複数種類の外れ値サブ検出器とを有し、
前記ウィンドウ生成器が、指定されたウィンドウ長を有する第1の処理ウィンドウ及び第2の処理ウィンドウを生成し、前記第1の処理ウィンドウに対して相対的に前記第2の処理ウィンドウを指定されたスライディング調整長分スライドするスライディング調整を行い、
一又は複数種類の外れ値サブ検出器のうちの一種類以上の外れ値サブ検出器の各々が、実際の値の時系列である実際時系列データのうち前記第1の処理ウィンドウに対応したデータ部分である実際時系列データセットと、予測値の時系列である予測時系列データのうち前記スライディング調整後の第2の処理ウィンドウに対応したデータ部分である予測時系列データセットとを当該外れ値サブ検出器の種類に対応した方法で比較することを含む外れ値サブ検出を行い、
前記外れ値判定器が、前記一種類以上の外れ値サブ検出器の外れ値サブ検出の結果に基づく外れ値候補が外れ値か判定する、
外れ値検出装置。
【請求項2】
前記一種類以上の外れ値サブ検出器の各々が、前記実際時系列データセットの全体に基づく情報と前記予測時系列データセットの全体に基づく情報とを用いて当該実際時系列データセットに外れ値候補があるかを検出することである分布ベースの外れ値サブ検出を行う、
請求項1に記載の外れ値検出装置。
【請求項3】
前記実際時系列データ及び前記予測時系列データについて複数のパラメータ閾値セットがあり、
前記複数のパラメータ閾値セットの各々が、ウィンドウ長及びスライディング調整長を含むパラメータセットと、外れ値サブ検出において使用される一つ以上の閾値を含む閾値セットとを有し、
前記複数のパラメータ閾値セットの各々について、
前記ウィンドウ生成器が、当該セットにおけるウィンドウ長を有する第1及び第2の処理ウィンドウを生成し、当該生成された第1及び第2の処理ウィンドウに関し、当該パラメータセットにおけるスライディング調整長に従うスライディング調整を行い、
前記一又は複数種類の外れ値サブ検出器のうちの一種類以上の外れ値サブ検出器の各々が、当該セットにおける閾値を用いて分布ベースの外れ値サブ検出を行い、
前記外れ値判定器が、前記複数のパラメータセットの各々について得られた一種類以上の外れ値サブ検出器の外れ値サブ検出結果を基に、外れ値候補が外れ値か判定する、
請求項2に記載の外れ値検出装置。
【請求項4】
前記複数のパラメータ閾値セットにおける複数のパラメータセットが、点ベースと分布ベースのどちらの処理を行うかを表す点/分布ベース分類子を含み、
前記複数のパラメータ閾値セットの各々について、外れ値サブ検出部は、
当該セットにおける点/分布ベース分類子が分布ベースの処理を表す場合、分布ベースの外れ値サブ検出を行い、
当該セットにおける点/分布ベース分類子が点ベースの処理を表す場合、当該セットにおける閾値と、当該セットにおけるウィンドウ長を有する第1の処理ウィンドウに対応した実際時系列データセットにおける各実際値と、当該ウィンドウ長を有する第2の処理ウィンドウに対応した予測時系列データセットにおける各予測値とを基に、当該実際時系列データセットにおける各実際値が外れ値候補かを検出することである点ベースの外れ値サブ検出を行う、
請求項3に記載の外れ値検出装置。
【請求項5】
前記一種類以上の外れ値サブ検出器が、第1種の外れ値サブ検出器を含み、
前記第1種の外れ値サブ検出器が、
前記実際時系列データセットのうち、前記予測時系列データに基づき決定された値閾値より大きい実際値の数である第1の数を特定し、
前記値閾値より大きい予測値の数である第2の数を特定し、
前記分布ベースの比較として、前記第2の数に対する前記第1の数の割合を算出し、
当該算出された割合の大きさに応じて、当該実際時系列データセットに外れ値候補があるかを検出する、
請求項2に記載の外れ値検出装置。
【請求項6】
前記一種類以上の外れ値サブ検出器が、第2種の外れ値サブ検出器を含み、
前記第2種の外れ値サブ検出器が、
前記実際時系列データセットと前記予測時系列データセットとを比較することで予測値よりも大きい実際値の数を特定し、
前記実際時系列データセットにおける実際値の数に対する前記特定された数の割合を算出し、
当該算出された割合の大きさに応じて、当該実際時系列データセットに外れ値候補があるかを検出する、
請求項2に記載の外れ値検出装置。
【請求項7】
前記一種類以上の外れ値サブ検出器が、第3種の外れ値サブ検出器を含み、
前記第3種の外れ値サブ検出器が、
前記実際時系列データセットの分布である第1の分布を特定し、
前記予測時系列データセットの分布である第2の分布を特定し、
前記第1の分布と前記第2の分布との距離を算出し、
当該算出された距離の大きさに応じて、当該実際時系列データセットに外れ値候補があるかを検出する、
請求項2に記載の外れ値検出装置。
【請求項8】
前記一種類以上の外れ値サブ検出部の各々が、前記実際時系列データセットにおける各実際値と、前記予測時系列データセットにおける各予測値とを基に、当該実際時系列データセットにおける各実際値が外れ値候補かを検出することである点ベースの外れ値サブ検出を行う、
請求項1に記載の外れ値検出装置。
【請求項9】
前記一種類以上の外れ値サブ検出器が、第1種の外れ値サブ検出器を含み、
前記第1種の外れ値サブ検出器が、
前記予測時系列データセットのうち、前記予測時系列データに基づき決定された値閾値より大きい予測値を特定し、
前記実際時系列データセットのうち、当該特定された予測値に対応した実際値を外れ値候補から除外し、当該実際値以外を実際値候補とする、
請求項8に記載の外れ値検出装置。
【請求項10】
前記一種類以上の外れ値サブ検出器が、第2種の外れ値サブ検出器を含み、
前記第2種の外れ値サブ検出器が、
前記実際時系列データセットのうち、予測値よりも大きい実際値を外れ値候補とし、予測値以下の実際値を外れ値候補から除外する、
請求項8に記載の外れ値検出装置。
【請求項11】
前記一種類以上の外れ値サブ検出器が、第3種の外れ値サブ検出器を含み、
前記第3種の外れ値サブ検出器が、
日時毎に、前記実際時系列データセットにおける実際値と前記予測時系列データセットにおける予測値との距離を算出し、
日時毎に、前記算出された距離の大きさに応じて、前記実際時系列データセットにおいて当該日時に対応した実際値が外れ値候補かを検出する、
請求項8に記載の外れ値検出装置。
【請求項12】
前記一種類以上の外れ値サブ検出器の各々が、ログ情報に、外れ値サブ検出の結果を表す情報を出力し、
前記外れ値判定器が、外れ値候補が外れ値と判定されたかの判定結果を表す情報を前記ログ情報に出力し、
前記ログ情報に出力される情報は、検出又は判定の結果に関するログメッセージを含み、
前記ログ情報を基に、外れ値判定結果とログメッセージとを含んだ結果情報を表示する、
請求項1に記載の外れ値検出装置。
【請求項13】
前記複数のパラメータ閾値セットの各々について、外れ値サブ検出部は、当該セットを基に、分布ベースの外れ値サブ検出と、実際時系列データセットにおける各実際値が外れ値候補かを検出することである点ベースの外れ値サブ検出とのいずれかを行い、
外れ値サブ検出部は、
点ベースの一つ以上の外れ値サブ検出結果がある場合、当該一つ以上の外れ値サブ検出結果のANDである一つの外れ値サブ検出結果を算出し、当該一つの外れ値サブ検出結果のうち外れ値候補であることを意味する値の割合である発生率に基づき点ベースの一つの結果値を算出し、
分布ベースの一つ以上の外れ値サブ検出結果がある場合、当該一つ以上の外れ値サブ検出結果のANDである分布ベースの一つの結果値を算出し、
前記点ベースの一つの結果値と前記分布ベースの一つの結果値とを基に、外れ値候補が外れ値か否かを判定する、
請求項3に記載の外れ値検出装置。
【請求項14】
コンピュータが、指定されたウィンドウ長を有する第1の処理ウィンドウ及び第2の処理ウィンドウを生成し、
コンピュータが、前記第1の処理ウィンドウに対して相対的に前記第2の処理ウィンドウを指定されたスライディング調整長分スライドするスライディング調整を行い、
コンピュータが、一又は複数種類の外れ値サブ検出のうちの一種類以上の外れ値サブ検出を行い、
当該一種類以上の外れ値サブ検出の各々は、実際の値の時系列である実際時系列データのうち前記第1の処理ウィンドウに対応したデータ部分である実際時系列データセットと、予測値の時系列である予測時系列データのうち前記スライディング調整後の第2の処理ウィンドウに対応したデータ部分である予測時系列データセットとを当該外れ値サブ検出の種類に対応した方法で比較することを含み、
コンピュータが、前記一種類以上の外れ値サブ検出の結果に基づく外れ値候補が外れ値か判定する、
外れ値検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、外れ値を検出する技術に関する。
【背景技術】
【0002】
IT(Information Technology)システムのデータから外れ値を自動検出する方法の一つとして、ITシステムのパフォーマンス負荷をモデル化し、モデルからパフォーマンス負荷を予測し、予測されたパフォーマンス負荷を、実際のパフォーマンス負荷と比較する方法がある。実際のパフォーマンス負荷が予測されたパフォーマンス負荷から大きく乖離している場合、ITシステムの異常に関連する可能性のある外れ値を検出することができる。
【0003】
検出される外れ値は、いわゆるノイズ外れ値、すなわち、実際のITシステムの異常とは関係のない外れ値が検出されることがある。
【0004】
特許文献1は、状況依存時系列パターン検出器とユーザからの暗黙的又は明示的なフィードバックデータとから抽出した特徴量に基づいて、外れ値分類子を学習する技術を開示している。学習された外れ値分類子は、最初に識別された異常事象候補からノイズ外れ値を減らすことができる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に開示の技術では、教師あり機械学習で外れ値分類子を学習するためにユーザからの暗黙的又は明示的なフィードバックデータが必要である。
【課題を解決するための手段】
【0007】
外れ値検出装置が、外れ値検出器と外れ値判定器とを有する。外れ値検出器が、ウィンドウ生成器と、一又は複数種類の外れ値サブ検出器とを有する。ウィンドウ生成器が、指定されたウィンドウ長を有する第1の処理ウィンドウ及び第2の処理ウィンドウを生成し、第1の処理ウィンドウに対して相対的に第2の処理ウィンドウを指定されたスライディング調整長分スライドするスライディング調整を行う。一又は複数種類の外れ値サブ検出器のうちの一種類以上の外れ値サブ検出器の各々が、実際の値の時系列である実際時系列データのうち第1の処理ウィンドウに対応したデータ部分である実際時系列データセットと、予測値の時系列である予測時系列データのうちスライディング調整後の第2の処理ウィンドウに対応したデータ部分である予測時系列データセットとを当該外れ値サブ検出器の種類に対応した方法で比較することを含む外れ値サブ検出を行う。外れ値判定器が、一種類以上の外れ値サブ検出器の外れ値サブ検出の結果に基づく外れ値候補が外れ値か判定する。
【発明の効果】
【0008】
本発明によれば、ユーザからのフィードバックデータを必要とした教師あり機械学習無しに、ノイズが低減された外れ値検出を実現することができる。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施形態に係るノイズ低減外れ値検出装置の機能構成例を示す図である。
【
図2A】時系列DB内の実際時系列データテーブルの構成例を示す図である。
【
図2B】時系列DB内の予測時系列データテーブルの構成例を示す図である。
【
図3A】パラメータ/閾値DB内のパラメータテーブルの構成例を示す図である。
【
図3B】パラメータ/閾値DB内の閾値テーブルの構成例を示す図である。
【
図4】スパイキング負荷閾値算出処理の流れの一例を示すフローチャートである。
【
図5】外れ値検出処理の流れの一例を示すフローチャートである。
【
図6】
図5のS11002の流れの一例を示すフローチャートである。
【
図7】
図5のS11003の流れの一例を示すフローチャートである。
【
図8】
図5のS11004の一例を示すフローチャートである。
【
図9】
図5のS11005の流れの一例を示すフローチャートである。
【
図10A】ログDB内のウィンドウ外れ値テーブルの構成例を示す図である。
【
図10B】ログDB内の外れ値判定テーブルの構成例を示す図である。
【
図10C】ログDB内の閾値テーブルの構成例を示す図である。
【
図11A】外れ値判定処理の流れの一例を示すフローチャートの一部である。
【
図11B】外れ値判定処理の流れの一例を示すフローチャートの残りである。
【
図12】外れ値検出結果画面の一例を示す図である。
【
図13】ノイズ低減外れ値検出装置のハードウェア構成例を示す図である。
【
図14】スライディング調整の意義の一例の説明図である。
【
図15】点ベースの予想スパイク検出の意義の一例の説明図である。
【
図16】分布ベースの予想スパイク検出の意義の一例の説明図である。
【発明を実施するための形態】
【0010】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0011】
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0012】
また、以下の説明では、「補助記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の補助記憶デバイスでよい。補助記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVMe(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
【0013】
また、以下の説明では、「記憶装置」は、メモリと補助記憶装置の少なくともメモリでよい。
【0014】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
【0015】
また、以下の説明では、「xxxDB」又は「xxxテーブル」といった表現にて(「DB」はデータベースの略)、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワークに代表されるような学習モデルでもよい。従って、「xxxDB」又は「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各DB又は各テーブルの構成は一例であり、一つのDB又は一つのテーブルは、二つ以上のDB又は二つ以上のテーブルに分割されてもよいし、二つ以上のDB又は二つ以上のテーブルの全部又は一部が一つのDB又は一つのテーブルであってもよい。
【0016】
また、以下の説明では、「yyy器」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【0017】
以下、実施形態を、図面を参照して説明する。なお、以下に説明する実施形態は、特許請求の範囲に記載の発明を限定するものではない。更に、実施形態に記載されている各種の構成要素やその組み合わせは、必ずしも本発明に必須のものではない。
【0018】
実施形態の説明において、「外れ値」とは、互いに比較される2種類のデータ間における十分な差のことでよい。当該2種類のデータのうち、一方の種類のデータ(後述の予測時系列データ)は、予想される状態(例えば正常な状態)を表し、他方の種類のデータ(後述の実際時系列データ)は、現在の状態を表してよい。
【0019】
「ノイズ外れ値」とは、互いに比較される2種類のデータ間における十分な差のことでよい。但し、ここでは、当該2種類のデータのうち、一方の種類のデータは、予想される正常な状態を表すが、他方の種類のデータは、正常な状態を表すデータにおいて正確に表現できない正常な状態における予想される変動のために生じる現在の状態を表し、問題視されるべきでないデータでよい。
【0020】
「実際時系列データ」は、ITシステム(例えば、物理的又は論理的な形先システム)のような監視対象について得られた現在の状態を表す一種の測定データでよい。本実施形態では、実際時系列データは、パフォーマンス負荷の実測値(実際の値の一例)の時系列であるが、時系列となる実測値は、パフォーマンス負荷以外のデータ項目(例えば、温度や湿度)の実測値でもよい。
【0021】
「予測時系列データ」は、予測される状態(例えば正常な状態)を表す一種の測定データでよい。本実施形態では、予測時系列データは、パフォーマンス負荷の予測値の時系列である。時系列となる予測値は、実測値と同様、パフォーマンス負荷以外のデータ項目の予測値でもよい。
【0022】
「予想スパイク」とは、予測時系列データの中で、パフォーマンス負荷の値が特に高くなる期間のことでよい。
【0023】
「距離」とは、実際時系列データと予測時系列データとの差を定量化できる尺度を指してよい。
【0024】
「方向」とは、実際時系列データが予測時系列データよりも値が大きいか小さいかを評価するための尺度を指してよい。
【0025】
「処理ウィンドウ」は、時系列データのうち、実際時系列データと予測時系列データを比較して外れ値結果を出力するための任意の期間を指す。処理ウィンドウの長さは、例えば時間長でよい。
【0026】
「時系列データセット」は、時系列データのうち処理ウィンドウに対応した範囲のデータでよい。
【0027】
図1は、実施形態に係るノイズ低減外れ値検出装置の機能構成例を示す。
【0028】
ノイズ低減外れ値検出装置100は、ノイズが低減された外れ値検出を行う装置である。ノイズ低減外れ値検出装置100は、
図13に例示のハードウェア構成を有する物理的な計算機システム(一つ以上の物理計算機)でよいが、物理的な計算機システム(例えばクラウド基盤)に基づく論理的な計算機システム(例えばクラウドコンピューティングサービスシステム)でもよい。
【0029】
ノイズ低減外れ値検出装置100は、時系列DB200に格納されている実際時系列データ及び予測時系列データと、パラメータ/閾値DB300に格納されているパラメータ及び閾値を取得し、実際時系列データと予測時系列データを比較して外れ値を検出し、その外れ値を含む出力結果をディスプレイ400に可視化する。
【0030】
時系列DB200には、実際時系列データと予測時系列データが格納されている。なお、詳細は、
図2A及び
図2Bを参照して後に説明する。
【0031】
パラメータ/閾値DB300には、ノイズ低減外れ値検出装置100のユーザによって外部から定義されたパラメータテーブルと閾値テーブルが格納されている。なお、詳細は、
図3A及び
図3Bを参照して後に説明する。
【0032】
ディスプレイ400は、ノイズ低減外れ値検出装置100で得られた結果を視覚化する出力装置である。
【0033】
ノイズ低減外れ値検出装置100は、外れ値検出器110と、スパイキング負荷閾値算出器120と、ログDB130と、外れ値判定器140とを備える。外れ値検出器110は、ウィンドウ生成器111と、予想スパイク検出器112と、方向算出器113と、距離算出器114とを含む。
【0034】
ノイズ低減外れ値検出装置100は、まず、外れ値検出器110において、取得された実際時系列データと予測時系列データを処理する。具体的には、例えば、外れ値検出器110が、実際時系列データと予測時系列データをそれぞれウィンドウ生成器111により複数の処理ウィンドウ(複数の時系列データセット)に分割し、3種類の外れ値サブ検出器112~114により各実際時系列データセットにおける外れ値の可能性を算出する。この処理で得られた結果は、ログDB130に格納される。更なる詳細については、外れ値検出器110については
図5~
図9を参照して後に説明し、ログDB130については
図10を参照して後に説明する。
【0035】
外れ値検出器110から得られログDB130に格納された出力は、外れ値判定器140により処理される。つまり、外れ値サブ検出器112~114の結果に基づいて最終的な外れ値の判定が外れ値判定器140によりなされる。必要に応じてログメッセージが外れ値判定器140により生成される。最終的な外れ値及びログメッセージは、ログDB130に格納され、その後、ディスプレイ400に可視化される。更なる詳細は、外れ値判定器140については
図11を参照して後に説明し、ディスプレイ400に表示される画面の構成例については
図12を参照して後に説明する。
【0036】
予測時系列データは、予想スパイクの閾値を算出するスパイキング負荷閾値算出器120でさらに処理され、その処理の結果はログDB130に格納される。更なる詳細は、
図4を参照して後に説明する。
【0037】
ノイズ低減外れ値検出装置100により、ユーザからのフィードバックデータを必要とした教師あり機械学習無しに、ノイズが低減された外れ値検出を実現することができる。
【0038】
時系列DB200は、
図2Aに例示の実際時系列データテーブル201と、
図2Bに例示の予測時系列データテーブル202とを格納する。
【0039】
実際時系列データテーブル201は、
図2Aに例示するように、実際パフォーマンス負荷(パフォーマンス負荷の実測値)の時系列、つまり、実際時系列データを格納する。実際時系列データテーブル201は、日時D20101及びパフォーマンス負荷D20102といったカラムを含む。日時D20101は、パフォーマンス負荷が測定された日時である実際日時(例えば当該日時を表すタイムスタンプ)を格納する。「日時」の単位は、本実施形態では年月日時分秒であるが、それよりも粗い又は細かい単位、或いは別の単位でもよい。パフォーマンス負荷D20102は、パフォーマンス負荷の実測値(例えば、監視対象のITシステムのパフォーマンスメトリクスを表すデータから取得された数値)を格納する。
【0040】
予測時系列データテーブル202は、
図2Bに例示するように、予測パフォーマンス負荷(パフォーマンス負荷の予測値)の時系列、つまり、予測時系列データを格納する。予測時系列データテーブル202は、日時D20201及び予測負荷D20202といったカラムを含む。日時D20201は、予測パフォーマンス負荷が測定されると予測される日時である予測日時(例えば当該日時を表すタイムスタンプ)を格納する。予測負荷D20202は、パフォーマンス負荷として予測される値を格納する。予測時系列データは、任意の方法によって得られてよい。例えば、予測時系列データは、実際時系列データと過去時系列データ(例えば、過去の実際時系列データ、又は、過去に得られた予測時系列データ(予測日時が過去の日時である予測時系列データ))とのうちの少なくとも一部の時系列データを機械学習モデル(例えば、ニューラルネットワーク)に入力することにより当該機械学習モデルから出力されたデータ(又は当該データの加工後のデータ)でよい。或いは、予測時系列データは、過去時系列データ又は他のデータを基に人手により用意されたデータでもよい。
【0041】
パラメータ/閾値DB300は、
図3Aに例示のパラメータテーブル301と、
図3Bに例示の閾値テーブル302とを格納する。
【0042】
パラメータテーブル301は、
図3Aに示すように、定義されたパラメータを格納するテーブルである。パラメータテーブル301は、例えば、エントリID D30101、実際ウィンドウ長D30102、予測ウィンドウ長D30103、スライディング調整長D30104、及び、点/分布ベース分類子D30105といったカラムを含む。一つのエントリ(行)において、カラムD30102~D30105に格納される値が、それぞれパラメータである。
【0043】
エントリID D30101は、エントリのIDを格納する。
【0044】
実際ウィンドウ長D30102は、実際ウィンドウ(実際時系列データの処理ウィンドウ)の長さである実際ウィンドウ長(を表す数値)を格納する。実際ウィンドウ長は、例えば、時間(例えば、分又は秒の単位)で表現されてよい。
【0045】
予測ウィンドウ長D30103は、予測ウィンドウ(予測時系列データの処理ウィンドウ)の長さである予測ウィンドウ長(を表す数値)を格納する。一つエントリにおいて、予測ウィンドウ長は、当該エントリにおける実際ウィンドウ長と同じでもよいし異なっていてもよい。実際ウィンドウ長と予測ウィンドウ長が異なる場合、所定の手法が利用されてよい(例えば、距離計算でDynamic Time Warpingという手法が利用されてよい)。
【0046】
スライディング調整長D30104は、実際ウィンドウと予測ウィンドウとの調整時間差(ずれ)の長さであるスライディング調整長(を表す数値)を格納する。スライディング調整長は、例えば、時間(例えば、分又は秒の単位)で表現されてよい。スライディング調整長の詳細は下記の通りである。
・スライディング調整長“0”は、実際ウィンドウと予測ウィンドウと間にずれが無いことを意味する。つまり、実際ウィンドウの開始日時(例えば後述のウィンドウ識別子)と予想ウィンドウの開始日時は、同じ日時である。
・スライディング調整長が負の値であることは、実際ウィンドウに対して予想ウィンドウが相対的に過去にスライドすることを意味する。例えば、スライディング調整長“-30”は、実際ウィンドウの開始日時に比べて、予想ウィンドウの開始日時が30タイムステップ(例えば30秒)早いことを意味する。
・スライディング調整長が正の値であることは、実際ウィンドウに対して予想ウィンドウが相対的に将来にスライドすることを意味する。例えば、スライディング調整長“30”は、実際ウィンドウの開始日時に比べて、予想ウィンドウの開始日時が30タイムステップ(例えば30秒)遅いことを意味する。
【0047】
点/分布ベース分類子D30105は、外れ値検出に点ベースの処理と分布ベースの処理のどちらを用いるかを表す分類子(例えば“点”又は“分布”といった値)を格納する。
【0048】
閾値テーブル302は、
図3Bに示すように、定義された閾値を格納するテーブルである。閾値テーブル302は、例えば、エントリID D30201、距離閾値D30202、方向閾値D30203、スパイク閾値D30204及び発生率閾値D30205といったカラムを含む。
【0049】
エントリID D30201は、エントリのIDを格納する。閾値テーブル302のエントリ(行)が、パラメータテーブル301のエントリと1:1で対応する。従って、例えば、エントリID“1”をキーに、エントリID“1”を格納したパラメータテーブルエントリとエントリID“1”を格納した閾値テーブルエントリとが特定される。エントリID“1”に対応した種々のパラメータを用いた処理について、エントリID“1”に対応した種々の閾値が使用される。
【0050】
距離閾値D30202は、実際時系列データセットと予測時系列データセットとの距離の閾値である距離閾値を格納する。外れ値候補の評価に距離の算出が必要ない場合には、距離閾値は不要(例えば未定義)でよい。
【0051】
方向閾値D30203は、実際時系列データセットと予測時系列データセットとの間の方向の閾値である方向閾値を格納する。「方向」は、例えば、実際時系列データセットと予測時系列データセットとの間において予測パフォーマンス負荷よりも大きい実際パフォーマンス負荷が相対的に多いか否かに依存する。方向閾値は、使用する方向算出方法に合わせて、どのような閾値であってもよい。方向が距離算出において既に得られている場合や、外れ値候補の評価に方向の算出が必要ない場合には、方向閾値は不要(例えば未定義(例えば“0”という値))でよい。
【0052】
スパイク閾値D30204は、予想スパイクの閾値であるスパイク閾値を格納する。予想スパイクは、予測時系列データセットから特定され、外れ値候補の評価に用いられる。外れ値候補の評価に予想スパイクが必要ない場合には、スパイク閾値は不要(例えば未定義(例えば“0”という値))でよい。
【0053】
発生率閾値D30205は、点ベースの処理において得られる真値の発生率(全てのブール値のうちの真値の割合)の閾値である発生率閾値を格納する。エントリに対応した処理が分布ベースの処理の場合、当該エントリにおいて発生率閾値は不要(例えば未定義(例えば“None”という値))でよい。
【0054】
以下、本実施形態において行われる処理の例を説明する。
【0055】
図4は、スパイキング負荷閾値算出処理の流れの一例を示すフローチャートである。スパイキング負荷閾値算出処理は、スパイキング負荷閾値算出器120により行われる処理である。
【0056】
S12001では、スパイキング負荷閾値算出器120は、時系列DB200から予測時系列データを取得する。
【0057】
S12002では、スパイキング負荷閾値算出器120は、S12001で取得された予測時系列データ全体について、平均値と標準偏差とを算出する。
【0058】
S12003では、スパイキング負荷閾値算出器120は、ステップS12002で得られた平均値と標準偏差から、スパイキング負荷閾値を算出する。スパイキング負荷閾値の例は、平均値にk倍の標準偏差を加えた値である。
【0059】
S11004では、スパイキング負荷閾値算出器120は、S12003で算出されたスパイキング負荷閾値を予想スパイク検出器112に送信するとともに、当該スパイキング負荷閾値をログDB130に保存する。
【0060】
スパイキング負荷閾値は、このように予測時系列データを基に決定されてよい。予測時系列データは、過去の時系列データを基にしたデータであり、期待される実際時系列データ(実際時系列データへの期待値)に相当するため、このような予測時系列データを基にどういうタイミングでスパイクが期待されるかがスパイキング負荷閾値算出器120により自動計算される。なお、スパイキング負荷閾値は、手動設定されてもよい。
【0061】
図5は、外れ値検出処理の流れの一例を示すフローチャートである。外れ値検出処理は、外れ値検出器110により行われる処理である。なお、この処理における実際時系列データ及び予測時系列データは、任意のタイミングで例えば時系列DB200から外れ値検出器110により取得されてよい。また、実際時系列データ及び予測時系列データは、同一期間分のデータを含む。
【0062】
S11001では、外れ値検出器110は、パラメータ/閾値DB300に定義された全てのエントリIDを取得する。そして、以下のS11002~S11005が、S11001で取得されたエントリID毎に実行される。S11002~S11005を、一つのエントリIDを例に取り説明する。
【0063】
S11002では、ウィンドウ生成器111が、実際ウィンドウ(第1の処理ウィンドウの一例)と予測ウィンドウ(第2の処理ウィンドウの一例)とを生成する。
【0064】
S11003では、予想スパイク検出器112が、予想される負荷のスパイクを検出する。
【0065】
S11004では、方向算出器113が、方向を算出する。
【0066】
S11005では、距離算出器114が、距離を算出する。
【0067】
図6は、
図5のS11002の流れの一例を示すフローチャートである。
【0068】
S11101では、ウィンドウ生成器111が、エントリIDに対応したパラメータ(実際ウィンドウ長、予測ウィンドウ長、スライディング調整長)をパラメータ/閾値DB300から取得する。
【0069】
S11102では、ウィンドウ生成器111が、実際ウィンドウ(例えばローリングウィンドウ)を生成する。実際ウィンドウの長さが、S11101で取得された実際ウィンドウ長である。
【0070】
S11103では、ウィンドウ生成器111が、予測ウィンドウ(例えばローリングウィンドウ)を生成する。予測ウィンドウの長さが、S11101で取得された予測ウィンドウ長である。
【0071】
S11104では、ウィンドウ生成器111が、エントリIDが表すスライディング調整長と同じ長さ分、実際ウィンドウに対して予測ウィンドウを相対的にスライドさせる。このように、ウィンドウ生成器111が、実際ウィンドウに対して相対的に予測ウィンドウをスライドさせることであるスライディング調整を行う。
【0072】
実際ウィンドウを用いて得られる複数の実際時系列データセットに対応した複数の期間は、互いに非重複の連続した期間でよいが、期間同士で一部が重複してもよい。例えば、実際ウィンドウ長が“30”の場合、実際時系列データの先頭から30に相当するデータが先頭の実際時系列データセット(先頭の実際ウィンドウ)であり、次の30に相当するデータが次の実際時系列データセット(次の実際ウィンドウ)でよい。実際時系列データのうち、実際ウィンドウに対応した範囲のデータが、実際時系列データセットである。実際ウィンドウを用いて複数の実際時系列データセットが得られるため、実際時系列データセット毎に、実際ウィンドウが存在すると言うことができる。各実際ウィンドウの開始日時は、当該実際ウィンドウに対応する実際時系列データセットの開始日時である。
【0073】
予測ウィンドウを用いて得られる複数の予測時系列データセットに対応した複数の期間は、互いに非重複の連続した期間でよいが、期間同士で一部が重複してもよい。予測時系列データのうち、予測ウィンドウに対応した範囲のデータが、予測時系列データセットである。予測ウィンドウを用いて複数の予測時系列データセットが得られるため、予測時系列データセット毎に、予測ウィンドウが存在すると言うことができる。各予測ウィンドウの開始日時は、当該予測ウィンドウに対応する予測時系列データセットの開始日時である。
【0074】
S11102で生成された実際ウィンドウと、S11103で生成された予測ウィンドウは、ウィンドウセット(ウィンドウのペア)を構成する。従って、当該実際ウィンドウに対応した実際時系列データセットと、当該予測ウィンドウに対応した予測時系列データセットも、ペアを構成し、当該ペアを構成するデータセット間で比較がされることになる。
【0075】
スライディング調整の意義の一例は、例えば
図14に示す通りである。ITシステムでの所定の処理(例えばバッチ処理)の開始が定刻通りであれば、破線が示す予測時系列データの通りの日時においてスパイクが生じるはずである。しかし、当該所定の処理の開始が定刻より早いといった原因により、実線が示す実際時系列データの通り、スパイクの予想日時よりも早い日時にスパイクが生じる。一比較例では、スパイクの予想日時と異なる日時で生じたスパイクは外れ値として検出され得る。当該日時において、実際パフォーマンス負荷と予測パフォーマンス負荷の差分が大きいためである。しかし、この外れ値はノイズ外れ値である。なぜなら、発生日時が異なるが予想スパイクの発生は異常ではないためである。本実施形態では、上述したスライディング調整がなされることで、スパイクの予想日時とスパイクの実際の日時とを相対的に重ねることができ、以って、このようなスパイク(ノイズ外れ値)を外れ値として検出することを避けること、つまり、ノイズを低減することができる。
【0076】
図7は、
図5のS11003の流れの一例を示すフローチャートである。
【0077】
S11201では、予想スパイク検出器112が、パラメータ/閾値DB300から、エントリIDに対応する点/分布ベース分類子とスパイク閾値とを取得する。
【0078】
S11202では、予想スパイク検出器112が、S11201で取得されたスパイク閾値が定義された値であるか否かを判定する。判定結果がYesの場合、処理はS11203に進む。判定結果がNoの場合(例えばスパイク閾値の値が未定義値の場合)、処理が終了する。
【0079】
S11203~S11211は、実際ウィンドウと予測ウィンドウとのウィンドウセット(ペア)毎に実行される。S11203~S11211の説明では、一つのウィンドウセットを例に取る。なお、当該ウィンドウセットについて、実際ウィンドウと予測ウィンドウとのスライディング調整長はゼロであることもあるしゼロよりも小さい(負の値)又は大きい(正の値)であることもある。従って、一つウィンドウセットについて、実際ウィンドウ(実際時系列データセット)における日時と予測ウィンドウ(予測時系列データセット)における日時とが「対応」するとは、それらの日時が同じ日時(例えば両方とも“2019-12-01 10:00:00”)であることもあれば、スライディング調整長分相対的にずれた日時であること(例えば一方の日時が“2019-12-01 10:00:00”であり他方の日時が“2019-12-01 10:00:30”であること)もある。従って、実際パフォーマンス負荷と予測パフォーマンス負荷との対応関係(言い換えれば、当該実際パフォーマンス負荷の実際日時と予測パフォーマンス負荷の予測日時との差)も、このようなスライディング調整長(時間差)に従う。
【0080】
S11203では、予想スパイク検出器112が、S11201で取得された点/分布ベース分類子が“点”か否かを判定する。この判定結果がYesの場合、S11204~S11206が実行される。この判定結果がNoの場合(つまり、S11201で取得された点/分布ベース分類子が“分布”の場合)、S11207~S11211が実行される。
【0081】
S11204では、予想スパイク検出器112が、ブール真値で構成されたブール系列(つまり、全てのブール値が真値“1”であるブール系列)を生成する。ブール系列は、実際ウィンドウ長分の長さを有し、実際ウィンドウ長分の期間を構成する複数の日時に対応した複数のブール値で構成される。
【0082】
S11205では、予想スパイク検出器112が、S11204で生成されたブール系列に対応する複数の日時の各々について、当該日時に対応した予想日時の予測パフォーマンス負荷(予測時系列データセットにおける予測パフォーマンス負荷)がスパイキング負荷閾値よりも大きい値である場合、当該日時に対しブール偽値を付与する。つまり、ブール系列のうち、スパイキング負荷閾値よりも大きい予測パフォーマンス負荷に対応したブール値がブール偽値に変わる。
【0083】
S11206では、予想スパイク検出器112が、S11205の処理後のブール系列をログDB130(ウィンドウ外れ値テーブル131の点ベーススパイク結果リスト)に追加する。
【0084】
図7のS11207では、予想スパイク検出器112が、実際時系列データセットのうち、スパイキング負荷閾値を超えている実際パフォーマンス負荷の数をカウントする。
【0085】
S11208では、予想スパイク検出器112が、予測時系列データセットのうち、スパイキング負荷閾値を超えている予測パフォーマンス負荷の数をカウントする。
【0086】
S11209では、予想スパイク検出器112が、S11207でカウントされた実際パフォーマンス負荷の数を、S11208でカウントされた予測パフォーマンス負荷の数で除算することで、パーセンテージを算出する。
【0087】
S11210では、予想スパイク検出器112が、S11209で算出されたパーセンテージが、S11201で取得されたスパイク閾値よりも大きい場合、ブール真値を返す。一方、S11209で算出されたパーセンテージが、S11201で取得されたスパイク閾値以下の場合、予想スパイク検出器112が、ブール真値を返す。
【0088】
S11211では、予想スパイク検出器112が、ブール値(S11210で返した値)を、ログDB130(ウィンドウ外れ値テーブル131の分布ベーススパイク結果リスト)に追加する。
【0089】
以上のようにして、予想スパイク検出器112が、予想スパイク検出という観点での外れ値サブ検出を、点ベース又は分布ベースで行う。分布ベースのアプローチでは、時系列データのうちのデータセット(ウィンドウに対応したデータ部分)が一つの群れ(まとまり)とみなされる。具体的には、実際時系列データセットと予測時系列データセットとの比較に際して、時点毎にパフォーマンス負荷が比較されるのではなく、該当実際パフォーマンス負荷(スパイキング負荷閾値を超えている実際パフォーマンス負荷)の数と、該当予測パフォーマンス負荷(スパイキング負荷閾値を超えている予測パフォーマンス負荷)の数とが比較される。スパイキング負荷閾値は、予測時系列データから算出された閾値であり、且つ、予測時系列データは、実際時系列データと比較される正常な状態を表すデータである。このため、分布ベースの適切な予想スパイク検出が期待される。
【0090】
点ベースの予想スパイク検出の意義の一例は、
図15に示す通りである。一般に、予測パフォーマンス負荷は、過去の実測パフォーマンス負荷の平均等に基づくため、実際パフォーマンス負荷のスパイクよりも小さい傾向にある。このため、スパイクと検出され得る程に実際パフォーマンス負荷が予測パフォーマンス負荷との差分が大きくても、当該予想パフォーマンス負荷がスパイキング負荷閾値より大きければ、当該スパイクは予定されていたスパイクであるためノイズ外れ値である。S11204~S11206に従う点ベースの予想スパイク検出によれば、このようなノイズ外れ値を外れ値として検出する可能性を低減することができる。
【0091】
分布ベースの予想スパイク検出の意義の一例は、
図16に示す通りである。実測パフォーマンス負荷とそれに対応する予測パフォーマンス負荷との差分がスパイクと判定される程に大きい日時の数が多いことがあり得る。しかし、そのような大きな差分が、予測時系列データセットの精度が低い等のような予め知られている理由により生じた差分の場合、そのような差分に属する実際パフォーマンス負荷がノイズ外れ値である可能性は高い。S11207~S11211に従う分布ベースの予想スパイク検出によれば、このような多くの差分に関わる多くのノイズ外れ値を外れ値として検出する可能性を低減することができる。
【0092】
図8は、
図5のS11004の流れの一例を示すフローチャートである。
【0093】
S11301では、方向算出器113が、パラメータ/閾値DB300から、エントリIDに対応するポイント/分布ベース分類子と方向閾値とを取得する。
【0094】
S11302では、方向算出器113が、方向閾値が定義された値か否かを判定する。この判定結果がYesの場合、処理がS11303に進む。この判定結果がNoの場合、処理が終了する。
【0095】
S11303~S11308は、実際ウィンドウと予測ウィンドウとのウィンドウセット毎に実行される。S11303~S11308の説明では、一つのウィンドウセットを例に取る。
【0096】
S11303では、方向算出器113が、点/分布ベース分類子が“点”か否か判定する。この判定結果がYesの場合、S11304~S11305が実行される。この判定結果がNoの場合、S11306~S11308が実行される。
【0097】
S11304では、方向算出器113が、ブール値で構成されたブール系列を生成する。ブール系列は、実際ウィンドウ長分の長さを有し、実際ウィンドウ長分の期間を構成する複数の日時に対応した複数のブール値で構成される。当該複数の日時の各々について、実際パフォーマンス負荷がそれに対応する予測パフォーマンス負荷より大きければ、当該日時に対応したブール値は真値であり、実際パフォーマンス負荷がそれに対応する予測パフォーマンス負荷以下であれば、当該日時に対応したブール値は偽値である。
【0098】
S11305では、方向算出器113が、S11304で生成したブール系列を、ログDB130(ウィンドウ外れ値テーブル131の点ベース方向結果リスト)に追加する。
【0099】
S11306では、方向算出器113が、処理ウィンドウ長分の期間を構成する日時の数に対する、実際パフォーマンス負荷が予測パフォーマンス負荷よりも大きい日時の数のパーセンテージを算出する。
【0100】
S11307では、方向算出器113が、S11306で算出されたパーセンテージが、S11301で取得された方向閾値よりも大きい場合には、ブール真値を返す。一方、S11306で算出されたパーセンテージが、S11301で取得された方向閾値以下の場合には、方向算出器113が、ブール偽値を返す。
【0101】
S11308では、方向算出器113が、ログDB130(ウィンドウ外れ値テーブル131の分布ベース方向結果リスト)に、S11307で返したブール値を追加する。
【0102】
以上のようにして、方向算出器113が、実際時系列データセットと予測時系列データセットとの差の方向(実際時系列データセットが予測時系列データセットよりも大きいという一般的な傾向があるかどうか)という観点での外れ値サブ検出を、点ベース又は分布ベースで行う。
【0103】
図9は、
図5のS11005の流れの一例を示すフローチャートである。
【0104】
S11401では、距離算出器114が、パラメータ/閾値DB300から、エントリIDに対応する点/分布ベース分類子と距離閾値とを取得する。
【0105】
S11402では、距離算出器114が、S11401で取得された距離閾値が定義された値か否かを判定される。この判定結果がYesの場合、処理がS11403に進む。この判定結果がNoの場合、処理が終了する。
【0106】
S11403~S11410は、実際ウィンドウと予測ウィンドウとのウィンドウセット毎に実行される。S11403~S11410の説明では、一つのウィンドウセットを例に取る。
【0107】
S11403では、距離算出器114が、点/分布ベース分類子が“点”か否か判定する。この判定結果がYesの場合、S11404~S11406が実行される。この判定結果がNoの場合、S11407~S11410が実行される。
【0108】
S11404では、距離算出器114が、日時毎に、実際パフォーマンス負荷と予測パフォーマンス負荷との距離(例えば、特徴量の差)を算出する。
【0109】
S11405では、距離算出器114が、日時毎に、S11404で算出された距離がS11401で取得された距離閾値を超えている場合、当該日時についてブール真値を決定する。一方、S11404で算出された距離がS11401で取得された距離閾値以下の場合、距離算出器114が、当該日時についてブール偽値を決定する。このようにして、複数の日時に対応した複数のブール値で構成されたブール系列が生成される。
【0110】
S11406では、距離算出器114が、当該生成されたブール系列を、ログDB130(ウィンドウ外れ値テーブル131の点ベース距離結果リスト)に追加する。
【0111】
S11407では、距離算出器114が、実際ウィンドウ(実際時系列データセット)と予測ウィンドウ(予測時系列データセット)を、それぞれ、同じ処理関数を用いて要約された分布に変換する。実際ウィンドウに対応した分布を「実際分布」と言い、予測ウィンドウに対応した分布を「予測分布」と言う。これらの分布の各々は、例えば、同じビンサイズのヒストグラムでよい。ビンサイズ(ビンの幅)は、パフォーマンス負荷の範囲でよく、ビンの長さは、当該範囲に属するパフォーマンス負荷の数でよい。具体的には、例えば、ビンサイズは固定の幅(例えば10)、パフォーマンス負荷の範囲が対応するように複数のビンが用意される(例えば、CPU使用率は0~100%の間であり、故に、10個のビンが必要)。
【0112】
S11408では、距離算出器114が、実際分布と予測分布の間の距離を算出する。
【0113】
S11409では、距離算出器114が、S11408で算出された距離がS11401で取得された距離閾値を超えている場合、ブール真値を返す。一方、S11408で算出された距離がS11401で取得された距離閾値以下の場合、距離算出器114が、ブール偽値を返す。
【0114】
S11410では、距離算出器114が、ログDB130(ウィンドウ外れ値テーブル131の分布ベース距離結果リスト)に、S11409で返したブール値を追加する。
【0115】
以上のようにして、距離算出器114が、実際時系列データセットと予測時系列データセットとの距離といった観点での外れ値サブ検出を、点ベース又は分布ベースで行う。
【0116】
上述した各種外れ値サブ検出部は、点ベースの外れ値検出も分布ベースの外れ値検出も行うことができるが、それらのうちの一方の外れ値検出を行うようになっていなくてもよい。
【0117】
点/分布ベース分類子“点”を含むパラメータセットについて、点ベースの外れ値サブ検出は、実際時系列データセットにおける各実測値と、予測時系列データセットにおける各予測値とを基に、当該実際時系列データセットにおける各実測値が外れ値候補かを検出することである。外れ値候補の場合、当該外れ値候補としての実測値について、ブール真値が出力される。
【0118】
点ベースの外れ値サブ検出によれば、個々の実際パフォーマンス負荷について外れ値候補か否かがわかる。点ベースの予測スパイク検出(
図7のS11204~S11206)については、
図15を参照して説明した通りである。点ベースの方向算出(
図8のS11304~S11305)によれば、予測パフォーマンス負荷以下である実際パフォーマンス負荷を外れ値候補から除外することができる。点ベースの距離算出(
図9のS11404~S11406)によれば、予測パフォーマンス負荷との距離が距離閾値以下である実測パフォーマンス負荷を外れ値候補から除外することができる。
【0119】
分布ベースの外れ値サブ検出によれば、実際時系列データセット全体について外れ値候補があるか否かがわかる。分布ベースの予測スパイク検出(
図7のS11207~S11211)については、
図16を参照して説明した通りである。分布ベースの方向算出(
図8のS11306~S11308)によれば、予測パフォーマンス負荷を超えている実際パフォーマンス負荷の割合が方向閾値以下であれば外れ値候補が無いとすることができる。分布ベースの距離算出(
図9のS11407~S11410)によれば、予測分布との距離が距離閾値以下である実際分布に対応した実際時系列データセットについては外れ値候補が無いとすることができる。
【0120】
ログDB130が、
図10Aに例示のウィンドウ外れ値テーブル131と、
図10Bに例示の外れ値判定テーブル132と、
図10Cに例示の閾値テーブル133とを格納する。
【0121】
ウィンドウ外れ値テーブル131は、
図10Aに示すように、例えば、ウィンドウ日時識別子D13101、点ベース距離結果リストD13102、点ベース方向結果リストD13103、点ベーススパイク結果リストD13104、分布ベース距離結果リストD13105、分布ベース方向結果リストD13106、及び分布ベーススパイク結果リストD13107といったカラムを有する。
【0122】
ウィンドウ日時識別子D13101は、実際ウィンドウに割り当てられたウィンドウ日時識別子(例えば、実際ウィンドウ長分の期間の開始日時を表す値)を格納する。
【0123】
点ベース距離結果リストD13102は、点ベースの距離算出において出力されたブール系列のリストを格納する。点ベース方向結果リストD13103は、点ベースの方向算出において出力されたブール系列のリストを格納する。点ベーススパイク結果リストD13104は、点ベースの予想スパイク検出において出力されたブール系列のリストを格納する。これらのリストD13102~D13104の各々について、ウィンドウ日時識別子毎に(当該ウィンドウ日時識別子から同定される実際ウィンドウを含んだウィンドウセット毎に)、ブール系列がある。ウィンドウ日時識別子毎に、点ベースでのブール系列は、当該ウィンドウ日時識別子に対応した処理ウィンドウの長さ分の期間を構成する複数の日時に対応した複数のブール値で構成される。
【0124】
分布ベース距離結果リストD13105は、分布ベースの距離算出において出力されたブール値を格納する。分布ベース方向結果リストD13106は、分布ベースの方向算出において出力されたブール値を格納する。分布ベーススパイク結果リストD13107は、分布ベースの予想スパイク検出において出力されたブール値を格納する。これらのリストD13105~D13107の各々について、ウィンドウ日時識別子毎に(当該ウィンドウ日時識別子から同定される実際ウィンドウを含んだウィンドウセット毎に)、ブール系列がある。ウィンドウ日時識別子毎に、分布ベースでのブール系列は、当該ウィンドウ日時識別子に対応した処理ウィンドウについて出力された一つのブール値で構成される。
【0125】
外れ値判定テーブル132は、
図10Bに示すように、例えば、ウィンドウ日時識別子D13201、外れ値ブール値D13202、ノイズブール値D13203、予想スパイクブール値D13204、調整ブール値D13205及びログメッセージD13206といったカラムを含む。
【0126】
ウィンドウ日時識別子D13201は、実際ウィンドウに割り当てられた日時識別子を格納する。
【0127】
外れ値ブール値D13202は、実際ウィンドウについて外れ値として識別された場合の結果値としてのブール真値(そうでない場合にブール偽値)を格納する。
【0128】
ノイズブール値D13203は、実際ウィンドウについてノイズ外れ値として識別された場合の結果値としてのブール真値(そうでない場合にブール偽値)を格納する。
【0129】
予想スパイクブール値D13204は、予測時系列データが表す予想スパイクを基に実際ウィンドウについてノイズ外れ値として識別された場合の結果値としてのブール真値(そうでない場合にブール偽値)を格納する。
【0130】
調整ブール値D13205は、ゼロ以外のスライディング調整長を含むパラメータを基に実際ウィンドウが評価された場合に結果値としてのブール真値(そうでない場合にブール偽値)を格納する。調整ブール値D13205は、ブール値に加えて又は代えて、使用されたスライディング調整長と調整の方向を表す情報(すなわち実際ウィンドウが予測ウィンドウに対して相対的に早いか遅いかについての情報とそれらのウィンドウの時間差を表す情報とを含んだ情報)を格納することもできる。
【0131】
ログメッセージD13206は、ITシステムの状態に関するデータから外れ値検出処理中に発見されたいくつかの情報、例えば、値が、外れ値であるか、ノイズ外れ値であるか、外れ値ではないか、さらに必要に応じて追加の詳細情報を記述したテキストメッセージを格納する。
【0132】
閾値テーブル133は、例えば、
図10Cに示すように、閾値情報D13301及び値D13302といったカラムを含む。
【0133】
閾値情報D13301は、ノイズ低減外れ値検出装置100において算出された付加的な閾値情報の種類ごとの説明(例えば、利便性や後の参照のための情報)を格納する。閾値情報として、例えば、スパイキング負荷閾値、点ベース調整リスト、及び、分布ベース調整リストがある。
【0134】
値D13302は、閾値情報D133301における記述に対応して割り当てられたデータ値を格納する。
【0135】
図11A及び
図11Bは、外れ値判定処理の流れの一例を示すフローチャートである。外れ値判定処理は、外れ値判定器140により行われる。外れ値判定処理は、外れ値検出器110の全ての外れ値サブ検出器112での処理結果を使用して最終的に外れ値を判定することを含む。外れ値判定処理は、ディスプレイ400に出力可能な必要なログメッセージを生成することを含んでよい。
【0136】
S14001では、外れ値判定器140が、パラメータ/閾値DB300を参照し、全ての点ベースエントリ(点/分布ベース分類子“点”を含む全てのエントリ)を評価する。“0”以外のスライディング調整長を含む点ベースエントリがある場合、外れ値判定器140が、ログDB130の閾値テーブル133の点ベース調整リストにブール真値(そうでない場合はブール偽値)を追加する。一つの例として、スライディング調整長“0”を含んだ点ベースエントリについては、
図10Cに例示の通り、点ベース調整リストにブール偽値([0])が記録される。更に、点ベースエントリとして、スライディング調整長“0”を含んだ点ベースエントリの他に、“0”以外のスライディング調整長を含む点ベースエントリがある場合、閾値テーブル133の点ベース調整リストにブール真値が追記される(結果として、当該リストが[0,1]となる)。
【0137】
S14002では、外れ値判定器140が、パラメータ/閾値DB300を参照し、全て分布ベースエントリ(点/分布ベース分類子“分布”を含む全てのエントリ)を評価する。“0”以外のスライディング調整長を含む分布ベースエントリがある場合、外れ値判定器140が、ログDB130の閾値テーブル133の分布ベース調整リストにブール真値(そうでない場合はブール偽値)を追加する。一つの例として、“0”以外のスライディング調整長を含んだ分布ベースエントリについては、故に、
図10Cに例示の通り、分布ベース調整リストにブール真値([1])が記録される。更に、分布ベースエントリとして、“0”以外のスライディング調整長を含んだ分布ベースエントリの他に、スライディング調整長“0”を含む分布ベースエントリがある場合、閾値テーブル133の分布ベース調整リストにブール偽値が追記される(結果として、当該リストが[1,0]となる)。
【0138】
S14003では、外れ値判定器140が、ログDB130からウィンドウ外れ値テーブル131を取得する。ウィンドウ外れ値テーブル131におけるウィンドウ日時識別子毎に、S14004~S14016が実行される。S14004~S14006とS14007が並行して実行されてよい。また、S14004~S14006は、対応する点ベース調整リストのブール値が“0”(偽)とされる点ベースエントリ毎(つまり、スライディング調整長“0”を含んだ点ベースエントリ毎)に行われる。S14004~S14006の説明は、一つのウィンドウ日時識別子且つ一つの点ベースエントリ(スライディング調整長“0”を含んだ点ベースエントリ)を例に取る。S14007の説明は、一つのウィンドウ日時識別子を例に取る。
【0139】
S14004では、外れ値判定器140が、ウィンドウ外れ値テーブル131における全ての点ベースのブール系列(すなわち、点ベースの距離、方向及びスパイクの結果リスト)のAND関係を計算することで、単一の点ベースのブール系列を出力する。例えば、一つの日時について、全ての点ベースブール系列におけるブール値が“1”の場合、当該日時について、単一の点ベースブール系列でもブール値が“1”となる。一方、一つの日時について、全ての点ベースブール系列におけるブール値が“0”の場合、又は、それらの点ベースのブール系列にブール値として“1”と“0”が混在する場合、当該日時について、単一の点ベースブール系列ではブール値が“0”となる。
【0140】
S14005では、外れ値判定器140が、ステップS14004で得られた単一のブール系列について、ブール真値の発生率(当該単一のブール系列を構成するブール値の数に対する、当該単一のブール系列におけるブール真値の割合)を算出する。例えば、ウィンドウ長が“5”の場合(一つの処理ウィンドウに属する日時(時点)の数が“5”の場合)、S14004で出力されたブール系列は、5つのブール値で構成される。ブール系列が[1,0,1,0,1]場合、S14005において算出されたブール真値の発生率は60%である。
【0141】
S14006では、外れ値判定器140が、ステップS14005で得られた発生率が、パラメータ/閾値DB300の発生率閾値(点ベースエントリのエントリIDに対応した発生率閾値)よりも大きい場合、ブール真値(そうでない場合はブール偽値)を返す。例えば、S14005において算出されたブール真値の発生率は60%であり、発生率閾値が70%の場合、発生率の方が小さいため、ブール偽値が出力される。
【0142】
S14007では、外れ値判定器140が、対応する分布ベース調整リストにおけるブール値が偽である分布ベースエントリ(スライディング調整長“0”を含んだ分布ベースエントリ)について、ウィンドウ外れ値テーブル131における全ての分布ベースのブール系列(すなわち、分布ベースの距離、方向及びスパイクの結果リスト)のAND関係を計算することで、単一の分布ベースのブール系列を出力する。分布ベースの処理では、一つの処理ウィンドウにつき、外れサブ検出の結果としてのブール値は一つのため、このS14007で出力されるブール系列は、単一のブール値で構成されている。
【0143】
S14008では、外れ値判定器140が、S14004~S14006のループの出力である点ベース出力とS14007の出力である分布ベースの出力とのAND関係を計算し、最終的に外れ値のブール値を結果として返す。つまり、S14008では、点ベース出力としての単一のブール値と、分布ベース出力としての単一のブール値のAND関係が計算される。
【0144】
S14009では、外れ値判定器140が、最終的な外れ値のブール値が真であるか否かを判定する。この判定結果がYesの場合、処理がS14010に進む。この判定結果がNoの場合、処理がS14014に進む。また、閾値テーブル133の調整リストに偽値の点ベース又は分布ベースの対象が無い場合、処理が、S14010に進んでよい。
【0145】
S14010では、外れ値判定器140が、ログDB130の閾値テーブル133の点ベース又は分布ベースの調整リストのいずれかが真値であるか否かを判定する。この判定結果がYesの場合、処理がS14011に進む。この判定結果がNoの場合、処理がS14013に進む。
【0146】
S14011では、外れ値判定器140が、真値を有する点ベース又は分布ベースの調整リスト(閾値テーブル133におけるリスト)に対応する全ての点ベースの発生率評価結果と、分布ベースのブール結果(S14007の出力としてのブール系列)との間でAND関係を計算し、その結果を外れ値のブール値の出力として返す。詳細なAND関係計算については、ここでは説明しないが、例えば、これまで説明してきたS14004~S14008と同様の計算でよい。例えば、真値を有する点ベース又は分布ベースの調整リストに対応する全ての点ベースの発生率評価結果としてのブール系列は、S14004~S14006と同様に算出されてよい。なお、S14008とS14011との相違点は、次の通りである。すなわち、S14008は、スライディング調整長“0”のエントリについての処理(スライディング調整がされないケースについての処理)であるが、S14011は、“0”以外のスライディング調整長についての処理(スライディング調整がされるケースについての処理)である。
【0147】
S14012では、外れ値判定器140が、S14011で得られた外れ値のブール値が真であるか否かを判定する。この判定結果がYesの場合、処理がS14013に進む。この判定結果がNoの場合、処理がS14015に進む。
【0148】
S14013では、外れ値判定器140が、既知の時系列情報から実外れ値の重大度を算出し、ログメッセージと外れ値ブール値をログDB130(外れ値判定テーブル132)に格納する。例えば、現在考慮されている処理ウィンドウ(例えばローリングウィンドウ)のウィンドウ日時識別子と対応する処理ウィンドウの実際時系列データセットと予測時系列データセットとを用いて、外れ値判定器140が、実際パフォーマンス負荷と予測パフォーマンス負荷との差を定量化することができる。そして、外れ値判定器140が、この定量化された情報に基づいて、ログメッセージを生成してよい。更に、外れ値判定器140が、処理ウィンドウに対応した期間に存在する予想スパイクを観察し、実際に観察されたスパイキング負荷が予測された予想スパイクよりも十分に長いために異常値として分類された実際時系列データセットを特定してもよい。
【0149】
S14014では、外れ値判定器140が、スライディング調整無しに非外れ値と識別された処理ウィンドウ(現在検討されている時間枠)について、ノイズ外れ値があるかどうかがテストされる。例えば、予想スパイクが原因である距離又は方向ベースの外れ値が非外れ値として識別された場合、ノイズ外れ値が観測されてよい。そして、外れ値判定部140は、予測時系列に比べて実際時系列がどれだけ大きいか/小さいかという情報や、予測時系列と実際時系列で予想されるスパイクに観察される長さの違いに関する情報を提供し、ノイズ外れ値について警告するログメッセージを作成してよい。ここでは、外れ値判定器140が、このテスト結果に応じて、調整ブール値としての偽値と、予想スパイクブール値として真値又は偽値を決定してよい。
【0150】
S14015では、外れ値判定器140が、処理ウィンドウ(現在検討されている時間枠)について、ノイズ外れ値(スライディング調整をとった非外れ値)を識別する。この場合、このような処理ウィンドウの日時識別子は、S14009で外れ値として識別され、その後のS14012で、スライディング調整を考慮して非外れ値として識別されている。このため、S14009で識別された外れ値がノイズ外れ値であることがわかる。さらに、外れ値判定器140が、この処理ウィンドウについての非外れ値が、予想スパイクによってノイズ外れ値になったかどうかをテストしてよい。そして、外れ値判定器140が、例えば、予想スパイクよりも早い又は遅い実際のスパイクについて警告するログメッセージを生成してよい。ここでは、外れ値判定器140が、このテスト結果に応じて、調整ブール値としての真値と、予想スパイクブール値として真値又は偽値を決定してよい。
【0151】
S14016では、外れ値判定器140が、外れ値ブール値、ノイズブール値、予想スパイクブール値、調整ブール値、及び、生成したログメッセージをログDB130の外れ値判定テーブル132に格納する。外れ値ブール値及びノイズブール値は、S14009及びS14012の少なくとも一つの結果に従う値である。予想スパイクブール値、調整ブール値、及び、生成したログメッセージは、S14014又はS14015の結果としての値である。
【0152】
S14017では、外れ値判定器140が、実際の外れ値とノイズ外れ値とを分析する(例えばいくつかの連続した処理ウィンドウに対応した期間という大きな文脈に関して分析する)。この分析は、例えば、ログDB130(外れ値判定テーブル132)における外れ値ブール値、ノイズブール値、予想スパイクブール値及び調整ブール値に基づいて行われる。例えば、実際の外れ値(外れ値ブール値“1”とノイズブール値“0”又は“None”とに対応した処理ウィンドウでのパフォーマンス負荷)については、外れ値判定器140が、実際の外れ値の継続時間等の追加情報を特定してよい。また、例えば、ノイズ外れ値(ノイズブール値“1”に対応した処理ウィンドウでのパフォーマンス負荷)については、外れ値判定器140が、例えば、予想スパイクブール値及び調整ブール値等を基に、予想スパイクの発生パターン、及び、実際のスパイクが予想スパイクと比較してどの程度大きいかを識別してよい。実際のスパイクの大きさは、ノイズ外れ値に対応した日時識別子(及び、スライディング調整の大きさ)を基に実際時系列データから特定されてよい。予想スパイクの大きさは、ノイズ外れ値に対応した日時識別子(及び、スライディング調整の大きさ)を基に予測時系列データから特定されてよい。S14017において、外れ値判定器140が、分析結果に基づくログメッセージを生成し、ログメッセージをログDB130に格納してもよい。
【0153】
【0154】
外れ値検出結果画面1200は、ノイズ低減外れ値検出装置100によりディスプレイ400に表示されるGUI(Graphical User Interface)である。外れ値検出結果画面1200の表示内容は、例えば、ログDB130及び時系列DB200から全てのログメッセージ、外れ値及び時系列情報を取得して定期的に(例えば頻繁に)更新されてよい。
【0155】
外れ値検出結果画面1200は、グラフィカル可視化エリア401、及びログメッセージ出力エリア402を有する。
【0156】
グラフィカル可視化エリア401には、時系列DB200の実際時系列データと予測時系列データとに基づき、実際パフォーマンス負荷及び予測パフォーマンス負荷の時系列が、例えばグラフで表示される。また、グラフィカル可視化エリア401には、ログDB130(例えば外れ値判定テーブル132)に基づき特定される外れ値発生時間帯(例えば、外れ値ブール値“1”とノイズブール値“0”又は“None”とに対応した日時識別子の連続した範囲)が表示されてよい。
【0157】
ログメッセージ出力402エリアには、ログDB130に格納されているログテキストメッセージが、グラフィカル可視化エリア401における表示の説明的な代替出力として表示される。
【0158】
外れ値検出結果画面1200は、GUI以外のUIでもよい。また、外れ値検出結果画面1200が有する表示エリアは、グラフィカル可視化エリア401及びログメッセージ出力エリア402に限らないでもよいし、それらの表示エリアは二つ以上のエリアに分離してもよいし一つの表示エリアとされてもよいし、各表示エリアは任意の位置に配置されてよい。
【0159】
図11A及び
図11Bが示した処理において、ログメッセージは、外れ値が検出された場合でも非外れ値(例えばノイズ外れ値)が検出された場合でも作成されてよい。これにより、
図12に例示の通り、ログメッセージが表示されれば、オペレータが、例えば、或る日時の正常な実際パフォーマンス負荷について、ノイズ外れ値として検出されたから正常なのか、ノイズ外れ値として検出されていないが元々正常であるのかを、区別することができる。なお、ログメッセージは、どういうステップを経て(上述したフローチャートのどのステップを経て)どのような外れ値検出結果となったのかを表すメッセージを含んでよい。
【0160】
図13は、ノイズ低減外れ値検出装置100のハードウェア構成例を示す。
【0161】
ノイズ低減外れ値検出装置100は、例えば、一般的な計算機であり、メモリ502と、補助記憶デバイス503と、通信インターフェース504と、メディアインターフェース505と、入出力デバイス506と、それらに接続されたCPU501とを有する。インターフェース504~506が、それぞれインターフェースデバイスの一例である。CPU501が、プロセッサの一例である。
【0162】
通信インターフェース504は、ネットワーク508を介して他の装置(例えば、解析対象のデータを格納する外部データベース)と通信するためのインターフェースデバイスである。
【0163】
メモリ502は、例えば、RAM(Random Access Memory)であり、CPU601が実行するプログラムやデータ等を記憶する。補助記憶デバイス503は、例えば、HDD又はSSDであり、CPU501が実行するプログラムやCPU501が使用するデータ等を記憶する。外部記憶メディア507は、メディアインターフェース505に着脱可能であり、メディアインターフェース505は、外部記憶メディア507との間のデータの入出力を仲介する。
【0164】
コンソール500は、入出力デバイス506に接続されており、入出力デバイス506は、コンソール500との間で情報の入出力を行う。コンソール500は、例えばディスプレイ400を含む。
【0165】
CPU501は、メモリ502又は補助記憶デバイス503に記憶されたプログラムを実行し、メモリ502又は補助記憶デバイス503に記憶されたデータを用いて各種処理を実行する。
【0166】
ノイズ低減外れ値検出装置100に実装される各機能は、CPU501が補助記憶デバイス503又はメモリ502に格納されたプログラムを実行することにより実現されてよい。上述したDB又はテーブルといった情報は、メモリ502、補助記憶デバイス503、外部記憶メディア507、及び、ネットワーク508を介してアクセス可能な外部記憶装置のうちの少なくとも一つに格納される。
【0167】
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【0168】
例えば、ノイズ低減外れ値検出装置100は、ITシステムの運用管理のユースケースに適用されてよいが、実際時系列データと予測時系列データとの比較による同様のデータ分析が可能な他のユースケースにも適用されてよい。また、例えば、ウィンドウセット毎のループ処理は並列に行われてよい。
【0169】
また、例えば、点ベースの処理及び分布ベースの処理の少なくとも一つについて、予想スパイク検出、方向算出及び距離算出のうちの一部の外れ値サブ検出が無くてもよいし、予想スパイク検出、方向算出及び距離算出のうちの少なくとも一部の外れ値サブ検出に代えて又は加えて他種の外れ値サブ検出が採用されてもよい。
【0170】
また、例えば、外れ値検出器110(予想スパイク検出器112)は、予想スパイク検出を点ベースで行うか分布ベースで行うかを、自動で決定してよい。具体的には、例えば、スパイクの発生タイミングの差分が小さい事象を表すデータ(例えば、所定の処理の所定の開始日時と実際の開始日時との差分が許容値以下であることを表すデータ)が外れ値検出器110に入力された場合、外れ値検出器110(予想スパイク検出器112)は、予想スパイク検出を点ベースで行うことを決定してよい。スパイクの発生タイミングの差分が大きい事象を表すデータ(例えば、所定の処理の所定の開始日時と実際の開始日時との差分が許容値を超えていることを表すデータ)が外れ値検出器110に入力された場合、外れ値検出器110(予想スパイク検出器112)は、予想スパイク検出を分布ベースで行うことを決定してよい。
【0171】
また、例えば、スライディング調整長は、予定画された日時と実際の日時との差を表すデータ(例えば、所定の処理の所定の開始日時と実際の開始日時との差分を表すデータ)を基に外れ値検出器110(予想スパイク検出器112)により自動決定されてよい。
【0172】
また、例えば、用意される外れ値サブ検出器は一種類のみでもよい。また、例えば、実際時系列データ及び予測時系列データについて用意されるエントリID(
図3A及び
図3B参照)は一つだけでもよい。言い換えれば、それらの時系列データについて、点ベースの処理と分布ベースの処理のどちらかだけが行われてもよい。例えば、外れ値サブ検出器が一種類だけでエントリIDも一つだけの場合、外れ値サブ検出器の出力が外れ値判定器140の出力とされてもよい。また、点ベース処理及び分布ベース処理の少なくとも一方について、複数のエントリIDがあってもよい。また、各外れサブ検出器の出力として、ブール値に代えて又は加えて他種の情報が採用されてもよい。
【符号の説明】
【0173】
100:ノイズ低減外れ値検出装置