(57)【要約】【課題】システムの異常の原因箇所・要因の推定精度を向上させること。【解決手段】状態判定装置は、システムの各構成要素の状態に対応する第１の層と前記システムにおける第１の層の各構成要素から出る観測情報の状態に対応する第２の層との関係を示す第１の因果グラフに対して、前記第１の層の各構成要素から出る観測情報に対する変換によって得られる第２の観測情報の状態に対応する第３の層を前記第１の層と前記第２の層との間に追加した第２の因果グラフと、前記第１の層と前記第３の層との間のエッジの重みを操作する関数ｆの集合Ｆと、前記変換を行う関数ｇの集合Ｇとに基づいて、前記システムから収集される観測情報の状態への尤度が最大である前記各構成要素の状態を判定する判定部と、前記判定部によって判定された前記各構成要素の状態を出力する出力部と、を有する。【選択図】図４
2018124829.tif 000002
【特許請求の範囲】
【請求項１】
システムの各構成要素の状態に対応する第１の層と前記システムにおける第１の層の各構成要素から出る観測情報の状態に対応する第２の層との関係を示す第１の因果グラフに対して、前記第１の層の各構成要素から出る観測情報に対する変換によって得られる第２の観測情報の状態に対応する第３の層を前記第１の層と前記第２の層との間に追加した第２の因果グラフと、前記第１の層と前記第３の層との間のエッジの重みを操作する関数ｆの集合Ｆと、前記変換を行う関数ｇの集合Ｇとに基づいて、前記システムから収集される観測情報の状態への尤度が最大である前記各構成要素の状態を判定する判定部と、
前記判定部によって判定された前記各構成要素の状態を出力する出力部と、
を有することを特徴とする状態判定装置。
【請求項２】
前記判定部は、前記第１の因果グラフに基づいて、前記システムから収集される観測情報の状態に関して第１の最大事後確率を計算し、前記関数ｆと前記関数ｇとの組み合わせごとに、前記第２の因果グラフに基づいて、当該組み合わせにおける第２の最大事後確率を計算すると共に当該組み合わせにおける前記各構成要素の状態を判定し、
前記出力部は、前記第２の最大事後確率の中で、前記第１の最大事後確率よりも大きな第２の最大事後確率に関して判定された前記各構成要素の状態を出力する、
ことを特徴とする請求項１記載の状態判定装置。
【請求項３】
前記出力部は、前記第２の最大事後確率の中で、前記第１の最大事後確率に対する大きさの程度が閾値を超える第２の最大事後確率に関して判定された前記各構成要素の状態を出力し、
前記重みの操作の度合いが大きい前記関数ｆに係る前記組み合わせほど、前記閾値が大きくされる、
ことを特徴とする請求項２記載の状態判定装置。
【請求項４】
前記システムから収集される観測情報について異常度を計算し、当該異常度に基づいて、当該観測情報の状態を判定する計算部、
を有することを特徴とする請求項１乃至３いずれか一項記載の状態判定装置。
【請求項５】
システムの各構成要素の状態に対応する第１の層と前記システムにおける第１の層の各構成要素から出る観測情報の状態に対応する第２の層との関係を示す第１の因果グラフに対して、前記第１の層の各構成要素から出る観測情報に対する変換によって得られる第２の観測情報の状態に対応する第３の層を前記第１の層と前記第２の層との間に追加した第２の因果グラフと、前記第１の層と前記第３の層との間のエッジの重みを操作する関数ｆの集合Ｆと、前記変換を行う関数ｇの集合Ｇとに基づいて、前記システムから収集される観測情報の状態への尤度が最大である前記各構成要素の状態を判定する判定手順と、
前記判定手順において判定された前記各構成要素の状態を出力する出力手順と、
をコンピュータが実行することを特徴とする状態判定方法。
【請求項６】
請求項１乃至４いずれか一項記載の各部としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、状態判定装置、状態判定方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムの運用におい異常が発生した際に、オペレータは、ＣＰＵ使用率やエラーログ、トラヒックログなどシステムの機器から得られる様々な観測情報の観測値と、これまでの知識と経験をもとに原因箇所・要因の特定を行い、原因箇所に対処を行っていた。オペレータの判断を支援する手法の１つとして因果グラフを用いた分析手法がある。
【０００３】
因果グラフを用いた異常発生原因箇所・要因推定手法とは、システムの構成要素の一部に異常が発生した場合に与える影響関係を記述した因果グラフを用いて迅速に原因箇所・要因を特定する手法である（例えば、非特許文献１〜３）。これらの手法は主に事前構築、学習フェーズと推論フェーズの二つのパートに分けられる。
【０００４】
学習フェーズにおいては、システムの構成要素１つ１つ（例：ルータ、サーバ）を機器状態・要因層のノードとし、各ノードで異常が発生した場合、影響を与える観測層のノード（例：アラート、パケットエラー、ＣＰＵ使用率なのどのシステムの構成要素から取得できる観測情報）に向かってある重み付きのエッジを張る。システムの専門家の知識や過去の事例をもとに全てのノードに対し行うことで、システム全体の影響関係を記述した因果グラフが完成する。
【０００５】
図１は、因果グラフを説明するための図である。図１において、Ｘ（ｘ１，ｘ２，…ｘｎ）は、システムの構成要素となるｎ個の機器のそれぞれの状態を表し、各ｘｉは、０（正常状態）又は１（異常状態）の値をとる。Ｙ（ｙ１，ｙ２，…ｙｍ）は、ｍ個の観測情報の状態を表し、例えば、Ｙがパケットエラーの発生の有無を表す観測層であれば、各ｙｊは０（パケットエラーなし）又は１（パケットエラー発生）を表す。エッジの重みは、条件付き確率Ｐで定義され、例えば、Ｐ（ｙｊ＝１｜ｘｉ＝１）は、ｘｉが１をとったときｙｊも１になる確率を表す。
【０００６】
推論フェーズでは、システム内で異常が発生したとき、構築された因果グラフの中で異常が観測されているノードに向かってきているエッジを逆にたどることにより、真因となっている原因箇所・要因を特定する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Srikanth Kandula, Dina Katabi, and Jean-philippe Vasseur. Shrink: A tool for failure diagnosis in IP networks. Proceedings of the 2005 ACM SIGCOMM workshop on Mining network data, pages 173-178, 2005.
【非特許文献２】R.R. Kompella, J. Yates, A. Greenberg, and A.C. Snoeren. IP Fault Localization via Risk Modeling. IEEE Transactions on Dependable and Secure Computing, 7(4):1-14, 2010.
【非特許文献３】He Yan, Lee Breslau, Zihui Ge, Dan Massey, Dan Pei, and Jennifer Yates. G-RCA: A Generic Root Cause Analysis Platform for Service Quality Management in Large IP Networks. IEEE/ACM Transactions on Networking, 20(6):1734-1747, 2012.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来技術では、学習フェーズで、専門家の知識や過去の故障事例、システムの観測データから相関関係などをもとに因果グラフを構築するための手法が提案されているが、過去に起こっていない異常が発生したときの影響関係は記述できない。
【０００９】
また、システムのマシンを新しくすることにより、ノードの影響範囲が変わるということもあり、学習フェーズのみにおいてシステムの因果関係を正確に記述するようなグラフを構築することは難しい。
【００１０】
また、異常が発生しても機器がアラートを発しなかったり、観測値の分析ミスにより誤って観測層のノードを異常状態と判定したりと必ずしも本来の観測情報の状態を簡単に判断できない。
【００１１】
このように、正確な因果グラフを構築できていない場合、また観測層の状態を正確に判定できていない場合には原因箇所・要因の推定精度が低下する可能性が有る。
【００１２】
本発明は、上記の点に鑑みてなされたものであって、システムの異常の原因箇所・要因の推定精度を向上させること目的とする。
【課題を解決するための手段】
【００１３】
そこで上記課題を解決するため、状態判定装置は、システムの各構成要素の状態に対応する第１の層と前記システムにおける第１の層の各構成要素から出る観測情報の状態に対応する第２の層との関係を示す第１の因果グラフに対して、前記第１の層の各構成要素から出る観測情報に対する変換によって得られる第２の観測情報の状態に対応する第３の層を前記第１の層と前記第２の層との間に追加した第２の因果グラフと、前記第１の層と前記第３の層との間のエッジの重みを操作する関数ｆの集合Ｆと、前記変換を行う関数ｇの集合Ｇとに基づいて、前記システムから収集される観測情報の状態への尤度が最大である前記各構成要素の状態を判定する判定部と、前記判定部によって判定された前記各構成要素の状態を出力する出力部と、を有する。
【発明の効果】
【００１４】
システムの異常の原因箇所・要因の推定精度を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】因果グラフを説明するための図である。
【図２】本発明の実施の形態におけるシステム構成例を示す図である。
【図３】本発明の実施の形態における推定装置１０のハードウェア構成例を示す図である。
【図４】本発明の実施の形態における推定装置１０の機能構成例を示す図である。
【図５】本発明の実施の形態における因果グラフの構成例を示す図である。
【図６】推定装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【図７】ノードとエッジの関係を表現したテキストファイルの一例を示す図である。
【図８】Ｘの状態列の出力例を示す図である。
【図９】機器・要因状態層Ｘの状態の推定処理の処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、学習フェーズにおいて、従来の因果グラフに対して拡張した因果グラフを構築する。また、推論フェーズにおいて、因果グラフのエッジと観測情報の状態の修正を行う。そうすることで、因果グラフや観測情報の正確性が低い場合においても高精度な原因箇所・要因の推定を可能とする。
【００１７】
図２は、本発明の実施の形態におけるシステム構成例を示す図である。図２において、推定装置１０は、複数の機器２０とネットワークを介して接続される。
【００１８】
各機器２０は、推定装置１０によって観測対象とされる運用システムの構成要素である。運用システムは、ネットワークシステム又はコンピュータシステム等、様々なシステムであってよい。
【００１９】
推定装置１０は、運用システムにおいて異常が発生した場合に、運用システムから観測情報を収集し、当該観測情報に基づいて、異常の原因箇所・要因の推定を行う１以上のコンピュータである。なお、本実施の形態において、観測情報とは、運用システムにおける観測項目又は観測対象の観測結果を示す情報をいう。観測結果は、観測値そのものであってもよいし、或る現象の有無あってもよい。或る現象とは、例えば、特定のメッセージ（例えば、パケットエラーを示すメッセージ）を含むログの出力である。
【００２０】
図３は、本発明の実施の形態における推定装置１０のハードウェア構成例を示す図である。図３の推定装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び入力装置１０７等を有する。
【００２１】
推定装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２２】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って推定装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００２３】
図４は、本発明の実施の形態における推定装置１０の機能構成例を示す図である。図４において、推定装置１０は、ＵＩ部１１、因果グラフ構築部１２、修正候補構築部１３、異常度計算部１４及び推論部１５等を有する。これら各部は、推定装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。推定装置１０は、また、因果グラフＤＢ１６及び修正候補ＤＢ１７等のデータベースを利用する。これら各データベースは、例えば、補助記憶装置１０２、又は推定装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２４】
ＵＩ部１１は、運用システムの中の異常発生箇所・要因の推定を支援する情報として、各機器２０の状態（正常又は異常）を示す情報を出力する。ＵＩ部１１は、また、運用システムに新たに機器２０が追加された際などは、因果グラフへのノードの追加やそれに伴う因果関係の変更指示を利用者から受け付け、因果グラフを修正する。
【００２５】
因果グラフ構築部１２は、従来の因果グラフを拡張し、新しい層と、関数を導入可能なモデル（因果グラフ）を構築（生成）する。
【００２６】
図５は、本発明の実施の形態における因果グラフの構成例を示す図である。本実施の形態では、観測情報の状態層Ｙ＝ｙｊ（ｊ＝１，…，ｍ）と機器・要因状態層Ｘ＝ｘｉ（ｉ＝１，…，ｎ）とを結んだ有向マルコフモデル（従来の因果グラフ）における、観測情報の状態層Ｙが、ノイズを含んだ観測情報（実際に観測される観測情報）の状態層Ｙとされ、真の観測情報の状態層Ｚ＝ｚｊ（ｊ＝１，…，ｍ）がＹとＸとの間に追加される。
【００２７】
真の観測情報の状態層Ｚは、本来であれば観測されうる観測情報の状態を表す。すなわち、真の観測情報とは、実際に観測される観測情報からノイズを除去する変換を行うことで得られる観測情報をいう。ノイズとは、例えば、観測ミスである。観測ミスは、観測情報が出力されているにも関わらず、何らかの原因により当該観測情報を捕捉できないことや、機器２０側の設定ミスにより、本来であれば出力されるべき観測情報が出力されないこと等である。例えば、真の観測情報の状態層Ｚは、「故障Ａは、観測層のノードＢ、Ｃ、Ｄに影響が出る」という故障について、実際にノードＢ、Ｃ、Ｄに影響が出ている状態である。
【００２８】
また、当該因果グラフは、ｘｉからｚｊへのエッジｅｉｊの重みの値を変更する関数の集合Ｆ＝Ｉ＋Ｕ'，ｕ'ｉｊ∈［０，±１］と、真の観測情報の状態ｚｊにノイズを加えｙｊに出力する関数の集合Ｇ＝Ｉ＋Ｕ''，ｕ''ｉｊ∈［０，±１］との導入が予定される。なお、Ｉは、単位行列のような恒等写像を示す。
【００２９】
因果グラフ構築部１２によって構築された因果グラフは、因果グラフＤＢ１６に記憶される。
【００３０】
修正候補構築部１３は、関数の集合Ｆ及びＧを構築する。関数の集合Ｆ及びＧの構築とは、Ｆ又はＧに属する各関数の実体（式）を生成することをいう。具体的には、修正候補構築部１３は、因果グラフＤＢ１６に記憶された因果グラフに対し、ｆｋを、因果グラフの中で変換が可能な任意のエッジの重みに作用する関数とし、変換可能な全てのパターンを網羅した関数の集合をＦとする。ｆｋは、ＸとＺとからなる完全二部グラフのｋ番目の部分グラフに作用する関数である。ｋは完全二部グラフの部分グラフの個数だけ存在する。なお、変換とは、任意のＸとＺのノードｘｉとｚｊとの間のエッジの重みを変更する操作をいう。例えば、本実施の形態では、エッジの重みを０又は１にする場合について説明する。エッジの重みを０にすることは、当該エッジを削除することと等価であり、エッジの重みを１にすることは、当該エッジを追加することと等価である。但し、エッジの重みは、多値又は連続値であってもよい。
【００３１】
修正候補構築部１３は、また、真の観測情報の状態層Ｚの全ての部分集合のそれぞれについて、要素の状態値を変換する関数をｇｓとし（ｓ＝１，…，ｍ）、Ｇをｇｓの集合とする。なお、ｍは、真の観測情報の状態層Ｚの全ての部分集合の個数である。
【００３２】
修正候補構築部１３によって構築された関数の集合Ｆ及びＧは、修正候補ＤＢ１７に記憶される。
【００３３】
異常度計算部１４は、運用システム内の機器２０に対するコマンド操作により観測情報を機器２０から収集し、当該観測情報について異常度を計算する。異常度の計算手法は、閾値を超えたか否かに基づいて、０又は１で判定されてもよいし、ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒなどの外れ値計算手法、自己回帰モデルなどの一般的な時系列分析等を用いて計算されてもよい。異常度計算部１４は、更に、異常度に基づいて、ノイズを含んだ観測情報の観測層Ｙのノードｙｊの状態を判定する。ｙｊが、正常（０）又は異常（１）の値をとるのであれば、異常度計算部１４は、計算した異常度に基づいて、ｙｊが０又は１のいずれの状態に該当するのかを判定する。ｙｊが、正常（０）、異常（１）、又は部分的に異常（０．５）の３値をとるのであれば、異常度計算部１４は、計算した異常度に基づいて、ｙｊが当該３値のうちのどの状態になるのかを判定する。判定には、閾値との比較やｔ−検定等が用いられてもよい。ｙｊの状態が０から１までの連続値を取りうるのであれば、計算された異常値が０から１に正規化され、正規化後の値がｙｊの値とされてもよい。
【００３４】
推論部１５は、因果グラフＤＢ１６に記憶された因果グラフ、修正候補ＤＢ１７に記憶された関数の集合Ｆ及びＧに対し、異常度計算部１４によって、観測情報に基づいて計算された、ノイズを含んだ観測情報の状態層ｙｊの状態を当てはめて、状態層ｙｊの状態を最も良く表す（状態層ｙｊの状態に対して尤度が最高である）ｘｉの状態を推定する。
【００３５】
以下、推定装置１０が実行する処理手順について説明する。図６は、推定装置１０が実行する処理手順の一例を説明するためのフローチャートである。
【００３６】
ステップＳ１０１において、因果グラフ構築部１２は、既存技術（例えば、非特許文献１〜３）で構築可能な因果グラフのエッジの重みをｘｉ、ｙｊの辺ごとに動的に変化させることができるような因果グラフを構築（生成）する。当該因果グラフの機器・要因状態層Ｘ及びノイズを含んだ観測情報の状態層Ｙの各ノードやエッジの重みの初期値は、運用システムの構成情報や過去の異常発生事例等に基づいて計算される。当該因果グラフでは、新たに真の観測情報の状態層Ｚが導入され、真の観測情報の状態層Ｚにノイズを与えてＹに写像する関数の集合Ｇの適用が可能とされる。ｙｊは、ｚｊにノイズを付与した観測情報となる。換言すれば、ｚｊは、ｙｊからノイズを除去した観測情報である。
【００３７】
また、当該因果グラフでは、ｘｉ、ｚｊに対してエッジの重みに作用する関数の集合Ｆの適用が可能とされる。Ｆによって、当該因果グラフは事前に想定した範囲外への影響が発生することも考慮できるモデルとなる。例えば、関数の集合Ｆによりエッジの重みを後から変更できるようにすることで、当該因果グラフは、運用システムの構成情報が間違っていた場合や、過去に起きたことがない故障に対しても対応可能となる。
【００３８】
因果グラフ構築部１２は、以上のように様々な状態を表現できる因果グラフを構築すると、当該因果グラフの各層のノードとエッジとの関係が記載されたテキストファイルを因果グラフＤＢ１６に記憶する。
【００３９】
図７は、ノードとエッジの関係を表現したテキストファイルの一例を示す図である。図７の左側には、因果グラフの一例が示されている。図７の右側には、当該因果グラフに対応するテキストファイルが示されている。当該テキストファイルには、エッジ名とそのエッジがつなぐノードの関係と、エッジに対する重みとが記述される。
【００４０】
エッジ名とそのエッジがつなぐノードの関係は、例えば、ｅＡＳＬ１：ＡＳｐｉｎｅ１、Ｌｉｎｋ１のように記述される。当該記述は、エッジ名ｅＡＳＬ１のエッジが、ＸのノードＡＳｐｉｎｅ１とＹのノードＬｉｎｋ１とを接続することを示す。
【００４１】
エッジに対する重みは、例えば、ｅＡＳＬ１：１、０のように記述される。当該記述は、条件付き確率Ｐ（ｙｊ＝１｜ｘｉ＝１）＝１、Ｐ（ｙｊ＝０｜ｘｉ＝１）＝０というように、条件付き確率の値を示す。すなわち、「ｅＡＳＬ１：１、０」におけるコロン（：）の後の最初の数値は、条件付き確率Ｐ（ｙｊ＝１｜ｘｉ＝１）を示し、２番目の数値は、条件付き確率Ｐ（ｙｊ＝０｜ｘｉ＝１）を示す。なお、図７では、便宜上、ノイズを含んだ観測情報の状態層Ｙのノードは省略されている。
【００４２】
続いて、修正候補構築部１３は、関数の集合Ｆを以下の方法で構築（生成）する（Ｓ１０２）。まず、修正候補構築部１３は、因果グラフのデータ（図７のテキストファイル）を因果グラフＤＢ１６から取得する。続いて、修正候補構築部１３は、エッジの重みが１又は０の場合において、ｆを、１と０を入れ替える変換とし、ｆｋを、因果グラフのＸからＺの任意のエッジの部分集合に対し作用する関数とする。ここで、任意のエッジの部分集合は、重みが０のエッジも含む。重みが０のエッジとは、例えば、図７の例では表現されていないエッジをいい、全ての条件付き確率が０となるエッジをいう。例えば、図７では、ＡＳｐｉｎｅ１とＬｉｎｋ２との間のエッジ、及びＢＬｅａｆ１とＬｉｎｋ１との間のエッジが、重みが０のエッジに該当する。したがって、任意のエッジの部分集合はＸとＺからなる完全二部グラフの部分集合の個数だけ存在し、ｆｋも同じだけ存在する。ｆｋは、ｋ番目の部分集合に対して、重みが１のエッジは０に、重みが０のエッジは１とする関数である。修正候補構築部１３は、ｆｋをまとめた集合をＦとする。修正候補構築部１３は、構築した関数の集合Ｆを修正候補ＤＢ１７へ記憶する。なお、重みが多値の場合、又は連続値の場合には、それぞれに応じた関数が定義されればよい。
【００４３】
続いて、修正候補構築部１３は、関数の集合Ｇを構築（生成）する（Ｓ１０３）。具体的には、修正候補構築部１３は、真の観測情報の状態層Ｚ上の観測情報の状態ｚｊが、０が正常、１が異常というような｛０，１｝の２値を取る場合に、ｇを０、１を反転させる関数とし、ｇｓを真の観測情報の状態層Ｚの要素がｓ個の任意の部分集合に対して、要素の状態値（０又は１）を反転させる関数とする（ｓ＝１，…，ｍ）。修正候補構築部１３は、ｇｓをまとめた集合をＧとする。修正候補構築部１３は、構築した関数の集合Ｇを修正候補ＤＢ１７へ記憶する。なお、観測情報の状態が多値又は連続値をとる場合、それぞれに応じた関数が定義されればよい。
【００４４】
なお、ステップＳ１０１〜Ｓ１０３は、運用システムにおける異常の発生とは無関係に予め実行されてよい。
【００４５】
運用システム内で異常が発生した際に、ＵＩ部１１が利用者から分析実行指示を受け付けると、ステップＳ１０４以降が実行される。
【００４６】
ステップＳ１０４において、異常度計算部１４は、システム内の各機器２０に対するコマンド操作により、各機器２０から観測情報を収集する。
【００４７】
続いて、異常度計算部１４は、収集された各観測情報をについて異常度を計算し、当該異常度に基づいて各観測情報の状態ｙｊ（すなわち、ノイズを含んだ観測情報の状態層Ｙ）判定する（Ｓ１０５）。
【００４８】
続いて、推論部１５は、因果グラフＤＢ１６に記憶されている因果グラフの情報と、修正候補ＤＢ１７に記憶されている関数の集合Ｆ及びＧと、異常度計算部１４による、ノイズを含んだ観測情報の状態層Ｙの判定結果とに基づき、機器・要因状態層Ｘの状態の推定を行う（Ｓ１０６）。すなわち、ノイズを含んだ観測情報の状態層Ｙに対して尤度が最高である機器・要因状態層Ｘの状態が推定される。
【００４９】
続いて、ＵＩ部１１は、推論部１５によって推定されたＸの状態列を異常発生箇所・要因を示す情報として出力する（Ｓ１０７）。例えば、図８に示されるようなテキストファイルが出力されてもよい。
【００５０】
図８は、Ｘの状態列の出力例を示す図である。図８には、図７に示した機器・要因状態層Ｘの各ノードの状態が０（正常状態）又は１（異常状態）によって示されている。図８の例では、ノードＢｓｐｉｎｅ１が１（異常状態）となっており、このノードが異常発生箇所、要因と推定される。
【００５１】
続いて、ステップＳ１０６の詳細について説明する。図９は、機器・要因状態層Ｘの状態の推定処理の処理手順の一例を説明するためのフローチャートである。
【００５２】
ステップＳ２０１において、推論部１５は、ＦとＧとを恒等写像Ｉとした状態で、最大事後確率ｐ＝ｍａｘＸＦ（Ｐ（Ｘ│Ｇ−１（Ｙ）））を、収集されたＹに基づいて計算する。この計算は、既存の因果グラフと同様に、既存手法にて、操作を加える前の最大事後確率ｐ＝ｍａｘＸＰ（Ｘ│Ｙ）を計算することと等価である。したがって、計算方法としては、例えば、非特許文献１に記載された方法が用いられてもよい。
【００５３】
続いて、推論部１５は、ＦとＧとを用いて因果グラフを変更して、最大事後確率ｐ'＝ｍａｘＸＦ（Ｐ（Ｘ│Ｇ−１（Ｙ）））を計算する（Ｓ２０２）。具体的には、推論部１５は、ｆｋ∈Ｆと、ｇｓ∈Ｇとの組み合わせごとに、最大事後確率ｐ'ｋｓ＝ｆｋ（Ｐ（Ｘ│ｇｓ−１（Ｙ）））を計算すると共に、Ｙに対して最も尤度の高いＸの状態列を求める。したがって、Ｆの要素数及びＧの要素数の少なくともいずれか一方が複数であれば、複数のｐ'ｋｓが算出され、ｐ'ｋｓごとにＸの状態列が求められる。
【００５４】
続いて、推論部１５は、ステップＳ２０２の中から、ｐ'ｋｓ／ｐが閾値τ（τ＞１）を超えるｐ'ｋｓ（すなわち、少なくともｐより大きいｐ'ｋｓ）を抽出し、抽出されたｐ'ｋｓに対応するＸの状態列を解の候補として出力する（Ｓ２０３）。すなわち、ｐに対する大きさの程度が閾値τを超えるｐ'ｋｓに対応するＸの状態列が解の候補として出力される。出力される解の候補は、閾値τ＞１を満たしており、既存の因果グラフによる手法よりも、最大事後確率が大きいＸの状態列である。すなわち、既存手法よりも精度よく異常発生の原因箇所・要因を示した解が抽出される。
【００５５】
なお、ｐ'ｋｓ／ｐが閾値τ（τ＞１）を超えるが否かの判定の際、推論部１５は、ｆｋによる因果グラフの変更の度合い（例えば、重みを変更したエッジの本数（追加したエッジの本数又は削除したエッジの本数等））に応じて、閾値τの値を変化させてペナルティを与えることで、ｆｋによる変更の自由度を制限する。
【００５６】
ペナルティを与えるというのは、例えば、閾値τを変更の度合に応じて変化させることをいい、ｆｋによる因果グラフの変更の度合いが相対的に小さい場合には、閾値τを小さくし、ｆｋによる因果グラフの変更の度合いが相対的に大きい場合には、閾値τを大きくすることをいう。そうすることで、変更の度合いが小幅な場合には最大事後確率ｐに対する最大事後確率ｐ'の上昇がわずかな場合でも解の候補とすることができ、変更の度合いが大幅な場合には最大事後確率ｐに対する最大事後確率ｐ'の上昇が大きい場合のみ解の候補となるようにすることができる。
【００５７】
閾値τの変化のさせ方は特定の方法に限定されないが、例えば、ｆｋやｇｓが作用する部分集合の要素数をｓとしたとき、τのｓ乗とする方法がある。
【００５８】
なお、図８は、解の候補が１つの場合に対応するが、解の候補は複数の場合が有る。この場合、例えば、最大事後確率ｐ'ｋｓに基づいて出力対象が絞り込まれてもよい。例えば、最大事後確率ｐ'ｋｓが上位Ｎ個（Ｎ≧１）である解の候補が出力対象とされてもよい。また、最大事後確率ｐ'ｋｓに基づいて、解の候補がソートされて出力されてもよい。また、解の候補ごとに、対応する最大事後確率ｐ'ｋｓが出力されてもよい。
【００５９】
上述したように、本実施の形態によれば、Ｆの変換によりエッジの加減を考慮しながら最大事後確率を計算することで、事前に構築した因果グラフが不正確な場合でもそれを修正しつつ、機器・要因状態層Ｘの状態を正しく推定することができる。同様に、Ｇの変換によりノイズの付加を考慮しながら最大事後確率を計算することで、観測情報の状態判定が不正確だった場合でも修正しながら状態層Ｘの状態を正しく推定することができる。その結果、システムの異常の原因箇所・要因の推定精度を向上させることができる。したがって、利用者は、高精度に原因箇所・要因を特定し、対処を行うために本実施の形態を利用することができる。
【００６０】
なお、本実施の形態において、推定装置１０は、状態判定装置の一例である。既存手法の因果グラフは、第１の因果グラフの一例である。図５に示されるような因果グラフは、第２の因果グラフの一例である。推論部１５は、判定部の一例である。ＵＩ部１１は、出力部の一例である。異常度計算部１４は、計算部の一例である。機器・要因状態層Ｘは、第１の層の一例である。ノイズを含んだ観測情報の状態層Ｙは、第２の層の一例である。真の観測情報の状態層Ｚは、第３の層の一例である。ノイズを含んだ観測情報は、第１の観測情報の一例である。真の観測情報は、第２の観測情報の一例である。最大事後確率ｐは、第１の最大事後確率の一例である。最大事後確率ｐ'は、第２の最大事後確率の一例である。
【００６１】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６２】
１０          推定装置
１１          ＵＩ部
１２          因果グラフ構築部
１３          修正候補構築部
１４          異常度計算部
１５          推論部
１６          因果グラフＤＢ
１７          修正候補ＤＢ
２０          機器
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
Ｂ            バス
【図１】
2018124829.tif 000003
【図２】
2018124829.tif 000004
【図３】
2018124829.tif 000005
【図４】
2018124829.tif 000006
【図５】
2018124829.tif 000007
【図６】
2018124829.tif 000008
【図７】
2018124829.tif 000009
【図８】
2018124829.tif 000010
【図９】
2018124829.tif 000011