(57)【要約】【課題】測定対象の異常を検出する際、線形に連続して相関を有しない測定データを用いた場合でも精度良く異常を検出する技術の提供を可能とする。【解決手段】観測対象における複数の項目について当該項目の状態を示す測定データを取得し、所定のタイミングで取得した測定データを一つのデータ群とし、異なるタイミングで取得した複数のデータ群を学習データとし、複数の項目のうちＮ個の組み合わせについて学習データに含まれる測定データからＮ次元の確率密度を求め、当該Ｎ次元の確率密度を複数の前記組み合わせについて求めて、学習モデルを生成し、評価対象とするデータ群のうち、前記項目のＮ個の組み合わせに係る測定データが得られる確率を学習モデルから求め、当該確率に基づいて異常スコアを算出し、前記項目の複数の組み合わせに係る異常スコアに基づいて前記データ群のスコアを算出し、当該データ群のスコアに基づいて観測対象の異常を検知する。【選択図】図１
2019159604.tif 000002
【特許請求の範囲】
【請求項１】
観測対象における複数の項目について当該項目の状態を示す測定データを取得するデータ取得部と、
所定のタイミングで取得した測定データを一つのデータ群とし、異なるタイミングで取得した複数のデータ群を学習データとし、前記複数の項目のうちＮ個の組み合わせについて前記学習データに含まれる前記測定データからＮ次元の確率密度を求め、当該Ｎ次元の確率密度を複数の前記組み合わせについて求めて、学習モデルを生成するモデル生成部と、
評価対象とする前記データ群のうち、前記項目のＮ個の組み合わせに係る前記測定データが得られる確率を前記学習モデルから求め、当該確率に基づいて異常スコアを算出するスコア算出部と、
前記項目の複数の組み合わせに係る前記異常スコアに基づいて前記データ群のスコアを算出し、当該データ群のスコアに基づいて前記観測対象の異常を検知する検知部と、
を備える異常検知装置。
【請求項２】
前記項目を示すノードと当該ノードの組み合わせを示すリンクとを表示装置に表示させる際、前記リンクを前記異常スコアに応じた表示形態で生じさせる表示制御部を備える請求項１に記載の異常検知装置。
【請求項３】
前記モデル生成部が、
Ｎ個の前記項目の組み合わせのうち、各項目が取り得る測定データの範囲を第一〜第Ｎの軸にとり、  前記第一〜第Ｎの項目の測定データから求めたＮ次元の確率密度について、各項目の確率密度を高い方から累積して所定の累積確率に達したところで確率密度が高い空間と確率密度が低い空間とに超平面で分割し、当該超平面における前記Ｎ次元の確率密度の面積をα％断面面積とし、前記超平面において各項目が取り得る範囲の面積を全体面積として求め、
前記全体面積を前記α％断面面積で除してα％断面比を求め、
前記α％断面比が閾値未満の組み合わせを選択し、選択した組み合わせについて前記学習モデルを生成する請求項１又は２に記載の異常検知装置。
【請求項４】
観測対象における複数の項目について当該項目の状態を示す測定データを取得するステップと、
所定のタイミングで取得した測定データを一つのデータ群とし、異なるタイミングで取得した複数のデータ群を学習データとし、前記複数の項目のうちＮ個の組み合わせについて前記学習データに含まれる前記測定データからＮ次元の確率密度を求め、当該Ｎ次元の確率密度を複数の前記組み合わせについて求めて、学習モデルを生成するステップと、
評価対象とする前記データ群のうち、前記項目のＮ個の組み合わせに係る前記測定データが得られる確率を前記学習モデルから求め、当該確率に基づいて異常スコアを算出するステップと、
前記項目の複数の組み合わせに係る前記異常スコアに基づいて前記データ群のスコアを算出し、当該データ群のスコアに基づいて前記観測対象の異常を検知するステップと、
をコンピュータが実行する異常検知方法。
【請求項５】
観測対象における複数の項目について当該項目の状態を示す測定データを取得するステップと、
所定のタイミングで取得した測定データを一つのデータ群とし、異なるタイミングで取得した複数のデータ群を学習データとし、前記複数の項目のうちＮ個の組み合わせについて前記学習データに含まれる前記測定データからＮ次元の確率密度を求め、当該Ｎ次元の確率密度を複数の前記組み合わせについて求めて、学習モデルを生成するステップと、
評価対象とする前記データ群のうち、前記項目のＮ個の組み合わせに係る前記測定データが得られる確率を前記学習モデルから求め、当該確率に基づいて異常スコアを算出するステップと、
前記項目の複数の組み合わせに係る前記異常スコアに基づいて前記データ群のスコアを算出し、当該データ群のスコアに基づいて前記観測対象の異常を検知するステップと、
をコンピュータに実行させるための異常検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検知装置、異常検知方法及び異常検知プログラムに関する。
【背景技術】
【０００２】
生産設備において故障が発生し、生産が停止してしまうと、生産効率が低下する。このため、故障の前兆を検出してメンテナンスを行い、生産の停止を防止することや、故障が発生した場合に、速やかに故障原因を特定して修理を行うことが望まれる。しかしながら、生産設備の大規模化や複雑化に伴い、故障の予兆となる異常の検出や故障の原因である異常個所の検出等（以下、異常の検出とも称す）を作業員が手作業で行うことは困難になってきている。
【０００３】
また、インターネットを介してウェブサービスや業務サービス等を提供する情報システムでは、社会インフラとしての重要性が高まるにつれて、障害によるサービスの遅延や中断等が許されない状況となっており、そのサービスを提供するサーバ等の装置を安定可動させられるように運営管理することが重要となっている。このため発生した異常だけでなく、明確な異常になっていない性能劣化や将来発生が予想される障害の兆候といった状態を検出し、計画的なメンテナンスを行うことが求められている。
【０００４】
このような異常を検出する技術として、例えば以下に示す特許文献１乃至特許文献３などが挙げられる。特許文献１では、性能種目又は観測対象を要素とし、少なくとも第１の要素に関する性能情報の時系列変化を示す第１の性能系列情報と、第２の要素に関する性能情報の時系列変化を示す第２の性能系列情報との相関関数を導出し、この相関関数に基づいて相関モデルを生成しこの相関モデルを各要素間の組み合わせについて求め、観測対象から新たに検出し取得される性能情報に基づいて、相関モデルの変化を分析する異常検知装置が提案されている。
【０００５】
特許文献２では、複数のコンピュータの各々が、何れか他のコンピュータに対して行うサービスのトランザクションを収集し、該トランザクションからシステムにおけるノード間の相関行列を算出し、そこからそのノードの活性バランスを表す特徴ベクトルを求める。その特徴ベクトルを確率モデルにより監視することで、異常状態への遷移を検出する異常検出システムが提案されている。
【０００６】
特許文献３では、システムにおけるメトリックのペアの相関関係を表す相関関数の候補を複数記憶し、前記複数の相関関数の候補の中から、相関関数に係るメトリックの異常時の相関破壊の発生しやすさを示す検出感度をもとに、一つの相関関数を、前記メトリックのペアの相関関数として抽出するシステム分析装置が提案されている。
【０００７】
また、測定データについて機械学習し、ニューラルネットワークやＳＶＭ（support vector machine）によって異常を判断する技術も提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−１９９５３３号公報
【特許文献２】特開２００５−２１６０６６号公報
【特許文献３】特許第６１８３４５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ニューラルネットワークやＳＶＭによってブラックボックス的に異常を判断するシステムでは、異常を検出できても異常の根拠が示されず、この異常に応じた適切な対応をとることが難しい。
【００１０】
また、二つの要素の組み合わせ毎に相関関係を求めて異常を検出することにより、異常となった要素を特定できるようにしたシステムも提案されているが、このようなシステムでは、二つの要素の組み合わせについて線形に連続した相関関係がなければ異常を検出できないという問題があった。
【００１１】
コンピュータシステムの異常を検出する場合、異常を検出する要素となるＣＰＵの稼働率やメモリの使用率、実行中のスレッド数等の情報が容易に取得でき、また同じ条件であれば同じ現象が発生する可能性が高いため、線形の相関を有する要素を選択することが容易である。
【００１２】
一方、生産設備等の異常を検出する場合、種々の要素が関連しあって異常が発生することもあるため各要素の測定データが線形に相関するとは限らない。また、生産設備の状態を測定するには、そのためのセンサや入力インターフェイスを設置することになるため、線形の相関を有するデータを探すためにあらゆる要素にセンサ等を設置するようなことは現実的でない。このため、従来の異常検知システムでは精度よく異常を検出することが困難なことがあった。
【００１３】
そこで、本発明は、測定対象の異常を検出する際、線形の相関を有しない測定データを用いた場合でも精度良く異常を検出する技術の提供を目的とする。
【課題を解決するための手段】
【００１４】
本発明に係る異常検知装置は、
観測対象における複数の項目について当該項目の状態を示す測定データを取得するデータ取得部と、
所定のタイミングで取得した測定データを一つのデータ群（例えばレコード）とし、異なるタイミングで取得した複数のデータ群を学習データとし、前記複数の項目のうちＮ個の組み合わせについて前記学習データに含まれる前記測定データからＮ次元の確率密度を求め、当該Ｎ次元の確率密度を複数の前記組み合わせについて求めて、学習モデルを生成するモデル生成部と、
評価対象とする前記データ群のうち、前記項目のＮ個の組み合わせに係る前記測定データが得られる確率を前記学習モデルから求め、当該確率に基づいて異常スコアを算出するスコア算出部と、
前記項目の複数の組み合わせに係る前記異常スコアに基づいて前記データ群のスコアを算出し、当該データ群のスコアに基づいて前記観測対象の異常を検知する検知部と、
を備える。
【００１５】
前記異常検知装置は、前記項目を示すノードと当該ノードの組み合わせを示すリンクとを表示装置に表示させる際、前記リンクを前記異常スコアに応じた表示形態で生じさせる表示制御部を備えてもよい。
【００１６】
前記異常検知装置は、前記モデル生成部が、
Ｎ個の前記項目の組み合わせのうち、各項目が取り得る測定データの範囲を第一〜第Ｎの軸にとり、第二の項目が取り得る測定データの範囲を前記第一の軸と直交する第二の軸にとり、
前記第一〜第Ｎの項目の測定データから求めたＮ次元の確率密度について、各項目の確
率密度を高い方から累積して所定の累積確率に達したところで確率密度が高い空間と確率密度が低い空間とに超平面で分割し、当該超平面における前記Ｎ次元の確率密度の面積をα％断面面積とし、前記超平面において各項目が取り得る範囲の面積を全体面積として求め、
前記全体面積を前記α断面面積で除してα％断面比を求め、
α％断面比が閾値未満の組み合わせを選択し、選択した組み合わせについて前記学習モデルを生成してもよい。
【００１７】
また、本発明に係る異常検知方法は、
観測対象における複数の項目について当該項目の状態を示す測定データを取得するステップと、
所定のタイミングで取得した測定データを一つのデータ群とし、異なるタイミングで取得した複数のデータ群を学習データとし、前記複数の項目のうちＮ個の組み合わせについて前記学習データに含まれる前記測定データからＮ次元の確率密度を求め、当該Ｎ次元の確率密度を複数の前記組み合わせについて求めて、学習モデルを生成するステップと、
評価対象とする前記データ群のうち、前記項目のＮ個の組み合わせに係る前記測定データが得られる確率を前記学習モデルから求め、当該確率に基づいて異常スコアを算出するステップと、
前記項目の複数の組み合わせに係る前記異常スコアに基づいて前記データ群のスコアを算出し、当該データ群のスコアに基づいて前記観測対象の異常を検知するステップと、
をコンピュータが実行する。
【００１８】
前記異常検知方法は、前記項目を示すノードと当該ノードの組み合わせを示すリンクとを表示装置に表示させる際、前記リンクを前記異常スコアに応じた表示形態で生じさせるステップを有してもよい。
前記異常検知方法は、
Ｎ個の前記項目の組み合わせのうち、各項目が取り得る測定データの範囲を第一〜第Ｎの軸にとり、第二の項目が取り得る測定データの範囲を前記第一の軸と直交する第二の軸にとり、
前記第一〜第Ｎの項目の測定データから求めたＮ次元の確率密度について、各項目の確率密度を高い方から累積して所定の累積確率に達したところで確率密度が高い空間と確率密度が低い空間とに超平面で分割し、当該超平面における前記Ｎ次元の確率密度の面積をα％断面面積とし、前記超平面において各項目が取り得る範囲の面積を全体面積として求め、
前記全体面積を前記α断面面積で除してα％断面比を求め、
α％断面比が閾値未満の組み合わせを選択し、選択した組み合わせについて前記学習モデルを生成してもよい。
【００１９】
なお、課題を解決するための手段に記載の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。課題を解決するための手段の内容は、コンピュータ等の装置若しくは複数の装置を含むシステム、コンピュータが実行する方法、又はコンピュータに実行させるプログラムとして提供することができる。例えば、本発明は、前記異常検知方法の各ステップをコンピュータに実行させるためのプログラムであってもよい。また、本発明は、このプログラムを保持するコンピュータで読み取り可能な記録媒体であってもよい。
【発明の効果】
【００２０】
本発明によれば、測定対象の異常を検出する際、線形に連続した相関を有しない測定データを用いた場合でも精度良く異常を検出する技術を提供できる。
【図面の簡単な説明】
【００２１】
【図１】図１は、実施形態の異常検知装置の構成を示すブロック図である。
【図２】図２は、記憶装置に記憶された測定データの例を示す図である。
【図３】図３は、異常検知装置のハードウェア構成を示す図である。
【図４】図４は、測定データを取得する処理手順を示す図である。
【図５】図５は、学習モデルを生成する処理手順を示す図である。
【図６】図６は、観測対象の異常を検知する処理手順を示す図である。
【図７】図７は、二次元の確率密度の一例をグラフで示した図である。
【図８】図８は、評価対象の測定データ（標本）について、確率密度関数から求められる異常スコアの説明図である。
【図９】図９は、検知結果の表示例を示す図である。
【図１０】図１０は、異常要因を示すネットワーク図の一例を示す図である。
【図１１】図１１は、特定の項目の組み合わせにおける異常スコアの時系列グラフを例示する図である。
【図１２】図１２は、確率密度を用いた異常検出を行う例の説明図である。
【図１３Ａ】図１３Ａは、ガウスカーネル関数を足し合わせて平均する例を示す図である。
【図１３Ｂ】図１３Ｂは、ガウスカーネル関数で複雑な確率密度関数を近似する例を示す図である。
【図１４】図１４は、ガウス分布を混合する例を示す図である。
【図１５】図１５は、混合要素の等高線を示す図である。
【図１６】図１６は、混合分布の周辺確率密度の等高線を示す図である。
【図１７】図１７は、α％断面比の説明図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態について、図面を用いて説明する。なお、下記の実施形態は本発明の例示であり、本発明は、下記の構成には限定されない。
【００２３】
＜装置構成＞
図１は、本実施形態の異常検知装置の構成を示すブロック図である。異常検知装置３は、生産設備等の観測対象における複数の項目について測定データを取得し、このデータの確率密度を推定して尤度の低いものを異常とする。
【００２４】
図１に示すように、異常検知装置３は、観測対象の一例である各生産設備２と通信回線Ｎを介して接続されている。通信回線Ｎは、単なるケーブルであってもＬＡＮ等のネットワークであっても良い。また、通信回線は、有線であっても無線であっても良い。
【００２５】
異常検知装置３は、データ取得部３１や、モデル生成部３２、スコア算出部３３、検知部３４、表示制御部３５を有している。
【００２６】
データ取得部３１は、観測対象における複数の項目について当該項目の状態を示す測定データを取得し、記憶装置へ記憶させる。測定データは例えば、モータの回転数や駆動電流の値、アクチュエータの制御信号や動作回数等、生産設備２で制御等に用いている情報を測定データとして、通信回線Ｎを介して取得する。また、データ取得部３１は、異常検知装置３が備えるセンサで、生産設備２から発せられる音や熱、振動等を測定し、この測定値を測定データとしてもよい。
【００２７】
モデル生成部３２は、所定のタイミングで取得した測定データを一つのレコード（データ群）とし、異なるタイミングで取得した複数のレコードを学習データとし、前記複数の項目のうち二つの組み合わせについて前記学習データに含まれる前記測定データから二次
元の確率密度を求め、当該二次元の確率密度を複数の前記組み合わせについて求めて、学習モデルを生成する。
【００２８】
スコア算出部３３は、評価対象とする前記データ群のうち、前記項目の二つの組み合わせに係る前記測定データが得られる確率を前記学習モデルから求め、当該確率に基づいて異常スコアを算出する。
【００２９】
検知部３４は、複数の前記項目の組み合わせに係る前記異常スコアに基づいて、前記観察対象の異常を検知する。
【００３０】
表示制御部３５は、検知部３４で検知した異常の検知結果等を表示装置に表示させる。例えば、表示制御部３５は、前記項目を示すノードと当該ノードの組み合わせを示すリンクとを表示装置に表示させる際、前記リンクを前記異常スコアに応じた表示形態で生じさせる。
【００３１】
図２は、データ取得部３１が取得して記憶装置に記憶された測定データの例を示す。図２の例において、測定データは、観測開始後、所定時間間隔で取得され、所定のタイミングで取得された複数項目の測定値が一つのレコードとして記憶され、異なるタイミングで順次取得された複数のレコードが学習データとして蓄積される。
【００３２】
図３は、異常検知装置３のハードウェア構成を示す図である。異常検知装置３は、例えば図３に示すようなコンピュータ（情報処理装置）である。図３に示す異常検知装置３は、ＣＰＵ（Central Processing Unit）３０１、主記憶装置３０２、補助記憶装置（外部
記憶装置）３０３、通信ＩＦ（Interface）３０４、入出力ＩＦ（Interface）３０５、ドライブ装置３０６、通信バス３０７を備えている。ＣＰＵ３０１は、プログラムを実行することにより本実施の形態に係る処理等を行う。主記憶装置３０２は、ＣＰＵ３０１が読み出したプログラムやデータをキャッシュしたり、ＣＰＵの作業領域を展開したりする。主記憶装置は、具体的には、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等である。補助記憶装置３０３は、ＣＰＵ３０１により実行されるプログラムや、位置情報などを記憶する。補助記憶装置３０３は、具体的には、ＨＤＤ（Hard-disk Drive
）やＳＳＤ（Solid State Drive）、ｅＭＭＣ（embedded Multi-Media Card）、フラッシュメモリ等である。主記憶装置３０２や補助記憶装置３０３は、測定データを記憶する記憶装置としても機能する。通信ＩＦ３０４は、他のコンピュータとの間でデータを送受信する。
【００３３】
異常検知装置３は、通信ＩＦ３０４を介してネットワークに接続される。通信ＩＦ３０４は、具体的には、有線又は無線のネットワークカード等である。入出力ＩＦ３０５は、入出力装置と接続され、ユーザから入力を受け付けたり、ユーザへ情報を出力したりする。入出力装置は、具体的には、キーボード、マウス、ディスプレイ３５１、タッチパネル、センサ３５２等である。ディスプレイ３５１は、異常の検知結果等の情報をユーザに対して表示する。センサ３５２は、例えば、温度センサ、振動センサ、加速度センサ、撮像装置、マイク等、観測対象の状態を測定する手段である。
【００３４】
ドライブ装置３０６は、磁気ディスク、光磁気ディスク、光ディスク等の記憶媒体に記録されたデータを読み出したり、記憶媒体にデータを書き込んだりする。そして、以上のような構成要素が、通信バス３０７で接続されている。なお、これらの構成要素はそれぞれ複数設けられていてもよいし、一部の構成要素（例えば、ドライブ装置３０６）を設けないようにしてもよい。また、入出力装置がコンピュータと一体に構成されていてもよい。また、ドライブ装置３０６で読み取り可能な可搬性の記憶媒体や、フラッシュメモリのような可搬性の補助記憶装置３０３、通信ＩＦ３０４などを介して、本実施の形態で実行
されるプログラムが提供されるようにしてもよい。
【００３５】
ＣＰＵ３０１は、プログラムを主記憶装置にロードして実行する。異常検知装置３において、ＣＰＵ３０１は、データ取得部３１や、モデル生成部３２、スコア算出部３３、検知部３４として動作する。
【００３６】
ＣＰＵ３０１は、本例において処理装置に相当する。ＣＰＵ３０１は、ＭＰＵ（Micro Processor Unit）、マイクロプロセッサ、プロセッサとも呼ばれる。ＣＰＵ３０１は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のＣＰＵがマルチコア構成を有していても良い。上記各部の少なくとも一部の処理は、ＣＰＵ以外のプロセッサ、例えば、Digital Signal Processor(DSP)、Graphics Processing Unit（GPU）、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。また、上記各部の少なくとも一部の処理は、集積回路（ＩＣ）、その他のデジタル回路であっても良い。また、上記各部の少なくとも一部にアナログ回路が含まれても良い。集積回路は、ＬＳＩ，Application Specific Integrated Circuit（ASIC），プログラマブルロジックデバイス（ＰＬ
Ｄ）を含む。ＰＬＤは、例えば、Field-Programmable Gate Array(FPGA)を含む。上記各
部は、プロセッサと集積回路との組み合わせであっても良い。組み合わせは、例えば、ＭＣＵ（Micro Controller Unit），ＳｏＣ（System-on-a-chip），システムＬＳＩ，チッ
プセットなどと呼ばれる。
【００３７】
〈異常検知方法〉
次に、上述の構成を有する異常検知装置３が実行する異常検知方法について説明する。図４は、測定データを取得する処理手順を示す図、図５は、学習モデルを生成する処理手順を示す図、図６は、観測対象の異常を検知する処理手順を示す図である。
【００３８】
異常検知装置３は、ユーザの操作等により観測開始の指示を受けると、図４の処理を開始し、所定の測定タイミングに達したか否かを判定する（ステップＳ１０）。
【００３９】
ステップＳ１０にて否定判定の場合、異常検知装置３は、図４の処理を終了する。一方、ステップＳ１０にて肯定判定の場合、異常検知装置３は、測定データを取得する（ステップＳ２０）。
【００４０】
ステップＳ２０にて、異常検知装置３は、予め設定された複数の項目について測定データを取得する。例えば、異常検知装置３は、温度センサや振動センサ等によって、測定対象の状態を測定することによって測定データを取得する。また、異常検知装置３は、測定対象の記憶媒体から動作履歴等の情報を読み出す、又は制御信号等の情報を取得し、これらの情報を測定データとしてもよい。なお、図４では、簡単のため、複数項目について測定データを取得する処理を一つのステップで示したが、各項目の測定データを順次取得する手順や、複数項目の測定データを並行して取得するなど、所定の項目について測定データを取得できれば、任意の手順で取得してよい。測定データは、標準化や正規化、基準化されて、所定の形式に変換されてもよい。例えば、次式のように、項目毎に平均を０、標準偏差を１としたデータに標準化してもよい。
標準化後の値＝（数値−平均値）／標準偏差
【００４１】
また、次式のように、項目毎に最小値を０、最大値を１としたデータに基準化してもよい。
基準化後の値＝（数値−最小値）／（最大値−最小値）
【００４２】
そして、異常検知装置３は、所定のタイミングで取得した測定データを一レコードとし
て記憶装置へ記憶させる（ステップＳ３０）。ここで所定のタイミングとは、例えば同じタイミングである。また、厳密に同じ時刻に限るものではなく、各項目の状態が互いに関連し合う程度に近いタイミングであればよく、例えば、所定期間毎に測定データを取得する場合に、同じ期間内に取得した測定データを同じタイミングで取得した測定データとしてもよい。また、所定のタイミングとは、同じ異常を検知する為に予め定められた測定タイミングであってもよい。例えば、或る製品を製造する際の第１〜第ｎプロセスで測定したデータを一レコードとし、次に製品を製造する際の第１〜第ｎプロセスで測定したデータを次のレコードとする。この場合、製品ごとの異常を検知する為に第１〜第ｎプロセスで測定されるタイミングを所定のタイミングとしている。
【００４３】
異常検知装置３は、ユーザの操作等により測定終了の指示を受けるまで図４の処理をくり返し実行する。これにより測定タイミング毎に測定データのレコードを蓄積して学習データとする。
【００４４】
異常検知装置３は、ユーザの操作等によって開始が指示されたときや、所定の時間間隔で図５の処理を開始する。
【００４５】
ステップＳ１１０にて、異常検知装置３は、学習データのうち、二つの組み合わせ毎に相関係数を求める。例えば、項目Ａ，Ｂ，Ｃとあった場合、［Ａ，Ｂ］［Ｂ，Ｃ］［Ａ，Ｃ］のように、全ての組み合わせについてピアソンの相関係数を算出する。
【００４６】
ステップＳ１２０にて、異常検知装置３は、ステップＳ１１０で算出した相関係数に基づき、関連性の高い組み合わせを選択する。例えば、相関係数が閾値以上の組み合わせを選択する。なお、これに限らず、上位所定数の組み合わせを選択することや、全ての組み合わせのうち、所定割合の組み合わせを選択すること、更に、これらを組み合わせて選択することとしてもよい。また、ステップＳ１１０，Ｓ１２０では、ピアソンの相関係数を用いて項目の組み合わせを選択したが、これに限らず、各項目の関連性の強さを評価できるものであれば、ＭＩＣ（Maximum Information Coefficient）や、後述のように確率密
度を用いたものであってもよい。
【００４７】
ステップＳ１３０にて、異常検知装置３は、ステップＳ１２０で選択した組み合わせについて前記学習データに含まれる前記測定データから二次元の確率密度を求め、当該二次元の確率密度を複数の前記組み合わせについて求めて、学習モデルを生成する。確率密度は、最尤法やベイズ推定、カーネル密度推定法、混合ガウス分布等の手法を用いて推定できる。なお、具体的な算出手法については後述する。また、異なる二項目の組み合わせについて算出された確率密度の集合を学習モデルと呼ぶものとする。
【００４８】
図７は、二次元の確率密度の一例をグラフで示した図である。図７では、ｘ軸に項目Ａの測定値をとり、ｙ軸に項目Ｂの測定値をとり、ｚ軸に確率密度をとり、各測定値に対する確率密度の変化をメッシュ状に示している。図７において、確率密度の高い部分、即ちメッシュで示される山の高い部分が、正常な測定値としての尤度が高い部分であり、確率密度の低い部分が正常な測定値としての尤度が低い部分である。
【００４９】
また、異常検知装置３は、ユーザの操作等によって異常の検知が指示されたときや、評価用のデータが取得された場合等、所定の検知タイミングとなった場合に、図６の処理を開始する。なお、本例では、図５の学習モデルを作成する処理と、図６の異常を検知する処理を分けて示したが、学習モデルを作成する処理に続けて異常を検知する処理を実行しても良い。
【００５０】
ステップＳ２１０にて、異常検知装置３は、新たに取得された測定データのレコード等
を評価対象とし、当該評価対象のレコードからステップＳ１２０で選択された項目の組み合わせを抽出する。
【００５１】
ステップＳ２２０にて、異常検知装置３は、評価対象としてステップＳ２１０で抽出した組み合わせの測定データを用いて、当該測定データが出現する確率を学習モデルから取得する。
【数１】
2019159604.tif 000003
【００５２】
図８は、評価対象の測定データ（標本）について、確率密度関数から求められる異常スコアの説明図である。図８では、縦軸に項目Ｃの測定値、横軸に項目Ｄの測定値をとり、各測定値から求められる異常スコアを等高線状に示している。図８の例では、黒点で示した学習データが、図８の右辺側及び上辺側に集中しており、この部分の確率密度が高くなっている。このため、図８の右上の異常スコアが低く、左下へいくにつれて異常スコアが高くなっている。ここで、項目Ｃの測定値が８５、項目Ｄの測定値が７．５の測定データが取得された場合、異常スコアが６００００を超え、異常スコアが１５０００以下に集中している学習データに対して、高い異常スコアであることが検知できる。
【００５３】
ステップＳ２３０にて、異常検知装置３は、前記組み合わせ毎の異常スコアに基づいて、レコード毎の総合的なスコア（以下、単にレコードのスコアとも称す）を求める。レコードのスコアは、前記組み合わせ毎の異常スコアを入力とする関数であればよく、例えば、平均値や、最大値、重み付き平均等であってもよい。重み付き平均とは、例えば、前記項目の組み合わせ毎に予め重みを設定し、各異常スコアに重みを乗じて平均を算出する。即ち、重要な項目や異常の影響が反映されやすい項目の重みを高めて、スコアを算出する。また、ステップＳ１２０の組み合わせを選択する処理を省略し、ステップＳ１１０で求めた相関係数の絶対値を重みに反映させて各異常スコアを求めてもよい。また、各組み合わせについて、異常時のデータが存在する場合には、各組み合わせの測定データと異常時のデータとからロジスティック回帰を行い、これにより求めた異常の程度に基づいて、当該組み合わせに係る異常スコアの選択や重み付けを行ってもよい。これに限らず、機械学習など他の手法を用いて組み合わせの選択や重み付けを行ってもよい。
【００５４】
ステップＳ２４０にて、異常検知装置３は、ステップＳ２３０で求めたレコードのスコアに基づいて、観測対象の異常を検知する。例えば、当該レコードのスコアが閾値を超えた場合に、異常が発生したと検知し、当該レコードのスコアが閾値を超えていない場合には、異常が発生していないと検知する。
【００５５】
そして、ステップＳ２５０にて、異常検知装置３は、上記検知結果をユーザに対して出力する。図９は、検知結果の表示例を示す図である。図９の検知結果は、異常の発生の有無８１や、異常が検知された項目（以下、異常項目とも称する）８２、異常要因を示すネットワーク図８３を有している。
【００５６】
異常項目８２は、例えば、異常スコアが閾値を越えた組み合わせの項目である。また、異常スコアが閾値を超えた複数の組み合わせに共通して存在する項目を異常項目としてもよい。例えば、項目Ａ，Ｂの組み合わせと、項目Ｂ，Ｃの組み合わせの異常スコアが、閾値を超えた場合、これらの組み合わせに共通する項目Ｂを異常項目と判定する。また、項目Ａ，Ｃが項目Ｂ以外の項目との組み合わせで異常スコアが閾値を超えていない場合には、項目Ａ，Ｃは異常項目でないと判定してもよい。なお、本実施形態では、主に二つの項
目の組み合わせについて異常スコアを求めたが、三つ以上の項目の組み合わせについて異常スコアを求めてもよい。この場合でも図９と同様に、異常スコアが閾値を越えた組み合わせを異常と判定し、異常スコアが高い順に項目の組み合わせを表示することができる。
【００５７】
図１０は、異常要因を示すネットワーク図８３の一例を示す図である。図１０では、各項目を丸いノード８４で示し、項目の組み合わせを各ノード間をつなぐ線（リンク）８５で示している。図１０において、各ノード８４の「○○○○」は、「項目Ａ」「項目Ｂ」など、各項目を示す識別情報である。また、図１０では、便宜上、ノード８４とリンク８５の一部にのみ符号を付して示したが、同じ形状の要素は同様のノードやリンクを示している。
【００５８】
リンク８５は、そのノード（項目）８４の組み合わせに係る異常スコアに応じた表示形態で示されており、例えば、異常スコアが高いほど、太い線で示される。リンク８５の表示形態は、これに限らず、異常スコアに応じて、線の色や、輝度、点滅状態、又はこれらの組み合わせを変えて表示されるものでもよい。例えば、異常スコアが低い場合、細い緑の線で表示し、異常スコアが高い場合、太い赤の線で表示し、異常スコアがこの中間の場合、異常スコアに応じた中間の太さにすると共に、緑から赤の中間の色相とする。また、異常スコアが閾値を超えた場合にリンク８５を点滅表示し、異常スコアが高いほど、点滅速度を高めて表示してもよい。
【００５９】
このように二つの項目の組み合わせ毎に異常スコアを算出して表示することにより、異常と判断された根拠をユーザが視覚的に把握できる。また、ネットワーク図８３を表示する際に、異常スコアの順に所定数のノード８４やリンク８５を表示することや、ユーザが指定したノード８４やリンク８５を検索して表示すること、特定の設備やエリアに係るノード８４やリンク８５を表示すること等により、絞り込みを行うこともできる。
【００６０】
図１１は、特定の項目の組み合わせにおける異常スコアの時系列グラフを例示する図である。ユーザが、図９や図１０の検知結果から、所望の項目の組み合わせを選択すると、図１１に示すように、当該組み合わせにおける異常スコアの時系列変化を示すグラフを表示させることができる。
【００６１】
図１１では、横軸に時刻をとり、縦軸に異常スコアをとって、何時にどれくらい継続して異常値を示したのかを把握できるようにしている。図１１の例では、１５時１５分から１５時２０分の間で測定データ（実線）が、閾値（点線、図示の例では４０）を超え、異常と検出されたことが示されている。これにより異常が起きたタイミングを正確に把握することができる。また、異常が一過性のものか、継続的なものか等により、真の異常とノイズとの切り分けが容易になる。
【００６２】
また、本実施形態では、項目間の異常スコアを確率密度に基づいて求めているので、各項目の正常な測定データが線形の相関を有していない場合でも精度良く異常を検出することができる。例えば、図１２のグラフ９１は、縦軸に項目Ｅの測定値、横軸に項目Ｆの測定値をとり、各測定値に応じた正常な測定学習データを黒点で示している。例えば、生産設備２の少なくとも一部が異なる動作モードで動作し得る場合は、正常な測定データが、このように分布することがある。グラフ９１では、各項目の測定値に線形の相関がないため、従来の相関係数を用いた異常の判定手法では異常を検出できない。しかしながら、本実施形態では、これらの確率密度を求めることで、グラフ９２のように確率密度の高い領域９５を特定し、この領域９５内であれば正常、この領域９５から外れるほど異常度が高いと判定できるため、線形の相関を有していない測定データであっても精度良く異常を検知できる。
【００６３】
〈確率密度の算出手法〉
（１）カーネル密度推定法（ＫＤＥ：Kernel density estimation）
【数２】
2019159604.tif 000004
【００６４】
ここでK(ｘ,ｘ')はカーネル関数であり、今回は式（３）のようなガウスカーネルを用
いている。ｈ>0はガウスカーネルのバンド幅、ｄはｘの次元数を示す。
【数３】
2019159604.tif 000005
【００６５】
また、バンド幅はScott’s Ruleを用いて求めている。ｎをデータ数とすると、Scott’s Ruleは式（４）のようになる。
【数４】
2019159604.tif 000006
【００６６】
上記の数式により、図１３Ａに示すように、各測定データｘi が中心のガウスカーネル関数（破線）を足し合わせて平均した密度分布（実線）が得られる。これにより図１３Ｂのような複雑な確率密度関数も滑らかに近似できる。
そして、現在の測定データがこの密度分布のどの位置にあるかを異常スコアとして算出することで異常検知が可能となる。
【００６７】
（２）混合ガウスモデル（ＧＭＭ：Gaussian Mixture Model）
混合ガウスモデル(GMM)は、図１４に示すように、いくつかのガウス分布を線形結合し
て得られる分布である。K個のガウス分布の重ね合わせは以下の式（５）で与えられる。
ここでπkは混合係数であり、0≦πk≦1とする。
【数５】
2019159604.tif 000007
【００６８】
最適なパラメタは最尤推定法で得ることができ、混合ガウスモデルの対数尤度関数は以下の式（６）のようになる。これはEMアルゴリズムによって解くことが可能である。
ここでXは、X={ｘ_1,ｘ_2,・・・,ｘ_N}、例えば各レコードの測定データｘの値である。
【数６】
2019159604.tif 000008
【００６９】
図１５は、３つの混合要素の等高線を、それぞれの混合係数とともに示している。この混合分布の周辺確率密度p(x)の等高線を示したものが図１６となっている。
【００７０】
異常検知装置３は、正常データに対する周辺確率密度を予め求めておき、現在の測定データがこの密度分布のどの位置にあるかを異常スコアとして算出することで異常検知が可能となる。例えば、図１６において、測定データをプロットした点９８は、正常データと同じ等高線内にあるため、正常と判定できる。一方、測定データをプロットした点９９は、正常データから外れた位置にあるため、異常と判定できる。
【００７１】
〈変形例〉
前述の実施形態では、学習モデルとして採用する項目を相関関数によって選択する例を示したが、これに代えて、確率密度分布のα％断面比を用いてもよい。本変形例は、前述の実施形態と比べて、項目の選択にα％断面比を用いた構成が異なり、その他の構成は同じであるため、同一の要素については同符号を付す等して再度の説明を省略する。
【００７２】
モデル生成部３２は、Ｎ個の項目の組み合わせのうち、各項目が取り得る測定データの範囲を第一〜第Ｎの軸にとり、第一〜第Ｎの項目の測定データから求めたＮ次元の確率密度について、各項目の確率密度を高い方から累積して所定の累積確率密度に達したところで確率密度が高い空間と確率密度が低い空間とに超平面で分割し、当該超平面における前記Ｎ次元の確率密度の面積をα％断面面積として求める。また、モデル生成部３２は、前記超平面において各項目が取り得る範囲、即ち当該超平面に示される最小値から最大値までの範囲の面積を全体面積として求める。そして、モデル生成部３２は、全体面積を前記α％断面面積で除してα％断面比を求め、当該α％断面比が閾値未満の組み合わせを選択し、選択した組み合わせについて学習モデルを生成する。
【００７３】
図１７は、二つの項目の組み合わせにおけるα％断面比の説明図である。図１７のグラフ９６では、ｘ軸に項目Ａの測定値、ｙ軸に項目Ｂの測定値、ｚ軸に確率密度をとり、各測定値に対する確率密度の変化をメッシュ状に示している。即ち図１７では、確率密度の変化がメッシュ状の山として示されている。即ち、図１７の例では、各項目の値（測定データ及び学習データ）を２次元(x, y)のデータとし、確率密度を高さとしている。ここで項目Ａ，Ｂの測定値が取り得る領域の面積を全体面積とし、（max（項目Ａ）―min（項目Ａ））×（max（項目Ｂ）―min（項目Ｂ））のように求める。
【００７４】
また、この確率密度の山をグラフ９７のように所定の確率密度、例えば各項目の確率密度を高い方から累積して所定の累積確率に達したところで切断した場合の断面（波線状の網掛け部分）の面積を求める。
【００７５】
そして、この全体面積と断面面積とから式ａのようにα％断面比を求める。
α％断面比＝断面面積／（（max（項目Ａ）―min（項目Ａ））×（max（項目Ｂ）―min（項目Ｂ）））  ・・・式ａ
【００７６】
このα％断面比は、以下の手順のように、各項目をマス目で区切って近似的に求めてもよい。
【００７７】
（手順１）xの最小値から、xの最大値までの範囲をxの取り得る区間とみなし、この区
間をn等分する。同様にyの取りうる区間を定めてn等分し、各項目の値の取りうる領域を
ｎ×ｎのマス目に分割する。なお、各マス目の面積はすべて等しいものとする。
【００７８】
（手順２）ｘ−ｙ面における各マス目の代表座標（例えば中心座標）を定め、その代表座標の確率密度を計算する。
【００７９】
（手順３）手順２で定めたｎ×ｎのマス目すべての確率密度をすべて合計し、合計値Ｓ
を求める。
【００８０】
（手順４）手順３で求めたｎ×ｎのマス目すべての確率密度を大きい順に並べ、大きい方から順次足し上げ、累積確率を求める。このとき、累積確率を合計値Ｓで割った値が所定値（例えば９９．９９％）に最も近くなるマス目を求める。
【００８１】
（手順５）手順４で得られたマス目と同じ高さにあるマス目の数を求める。ここで同じ高さとは、確率密度の取り得る範囲をｎ等分し、各マスの確率密度のうち、同じ範囲に入るものを同じ高さとする。
【００８２】
（手順６）手順５で得られたマス目の数（α％断面面積）を、マス目全体の数(全体面
積)で割った値をα%断面面積比として求める。
【００８３】
図５の学習モデルを生成する処理において、本例の異常検知装置３は、ステップＳ１１０の相関関数を求める処理に代えて、各組み合わせのα％断面比を求め、ステップＳ１２０にてα％断面比の小さい組み合わせを選択する。
【００８４】
このようにα％断面比を用いることで、測定値が線形の相関を有しない項目の組み合わせについても適切に選択することができる。
【００８５】
また、所定の確率密度で断面を切るのではなく、ユーザが求める標本精度に応じたα％断面比を設定し、各組み合わせの確率密度について、当該α％断面比となる断面面積を式１から逆算し、この断面面積となる確率密度を閾値として求める。これにより、各項目の組み合わせにおいて、異常を判定する場合の確率密度の閾値を適切に設定できる。即ち、異常の要因となっている項目を精度よく判別できる。
【００８６】
なお、図１７の例では、二つの項目を組み合わせた二次元のデータについて確率密度を高さ方向にとった３次元の空間を平面で切断してα％断面面積を求めたが、三つ以上の項目を組み合わせた場合、例えば確率密度を含む四次元以上の空間を超平面（hyperplane）で分割して、α％断面面積を求めてもよい。
【符号の説明】
【００８７】
２  ：生産設備
３  ：異常検知装置
３１：データ取得部
３２：モデル生成部
３３：スコア算出部
３４：検知部
３５：表示制御部
【図１】
2019159604.tif 000009
【図２】
2019159604.tif 000010
【図３】
2019159604.tif 000011
【図４】
2019159604.tif 000012
【図５】
2019159604.tif 000013
【図６】
2019159604.tif 000014
【図７】
2019159604.tif 000015
【図８】
2019159604.tif 000016
【図９】
2019159604.tif 000017
【図１０】
2019159604.tif 000018
【図１１】
2019159604.tif 000019
【図１２】
2019159604.tif 000020
【図１３Ａ】
2019159604.tif 000021
【図１３Ｂ】
2019159604.tif 000022
【図１４】
2019159604.tif 000023
【図１５】
2019159604.tif 000024
【図１６】
2019159604.tif 000025
【図１７】
2019159604.tif 000026