(57)【要約】【課題】限定的なデータサンプリングにより学習用のデータ群の分布に偏りがあっても、外れ値を高精度に検知可能なモデルを構築する。【解決手段】本発明の実施形態に係る情報処理装置は、データ加工部と、学習部とを備える。前記データ加工部は、複数の対象装置の状態を表すＮ次元のデータ群を、複数のパターンで離散化する。前記学習部は、前記複数のパターンで前記データ群を離散化した複数の離散化データ群と、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）のパラメータＫの複数の候補値とをそれぞれ１つずつ組み合わせて複数の仮モデルを生成し、前記データ群に基づき前記複数の仮モデルを評価することにより、前記複数の仮モデルからモデルを選択する。【選択図】図３
2018169994.tif 000002
【特許請求の範囲】
【請求項１】
複数の対象装置の状態を表すＮ次元のデータ群を、複数のパターンで離散化するデータ加工部と、
前記複数のパターンで前記データ群を離散化した複数の離散化データ群と、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）のパラメータＫの複数の候補値とをそれぞれ１つずつ組み合わせて複数の仮モデルを生成し、前記データ群に基づき前記複数の仮モデルを評価することにより、前記複数の仮モデルからモデルを選択する学習部と
を備えた情報処理装置。
【請求項２】
前記学習部は、前記データ群に基づき前記複数の仮モデルのそれぞれの評価値を計算し、前記評価値に基づき、前記複数の仮モデルから前記モデルを選択する
請求項１に記載の情報処理装置。
【請求項３】
前記学習部は、前記仮モデルに基づき前記データ群の各データのスコアを計算し、前記スコアに基づき、前記仮モデルの評価値を計算する
請求項２に記載の情報処理装置。
【請求項４】
前記評価値は、前記スコアのばらつきを表す値である
請求項３に記載の情報処理装置。
【請求項５】
前記ばらつきを表す値は、標準偏差、不偏標準偏差または分散である
請求項４に記載の情報処理装置。
【請求項６】
前記学習部は、前記標準偏差、前記不偏標準偏差または前記分散が最も小さい前記仮モデルを前記モデルとして選択する
請求項５に記載の情報処理装置。
【請求項７】
前記仮モデルの前記評価値は、前記仮モデルに基づく前記データ群の識別率である
請求項２に記載の情報処理装置。
【請求項８】
前記データ加工部は、前記データに含まれるＮ個の値のそれぞれを第１の値〜第Ｎの値により除算し、除算後の値を端数処理し、端数処理後の値に前記第１の値〜第Ｎの値のそれぞれを乗じることにより、前記データ群を離散化し、前記第１の値〜第Ｎの値は、前記データ群における前記Ｎ個の値のそれぞれのばらつきを表す値を所定値で除算した値である
請求項１ないし７のいずれか一項に記載の情報処理装置。
【請求項９】
前記対象装置から判定対象となる、第１の測定値〜第Ｎの測定値を含むデータを受信するデータ受信部と、
前記選択したモデルに基づいて前記受信したデータのスコアを計算し、前記スコアを閾値と比較することにより、前記データが外れ値か否かを判定する外れ値検知部と、
を備えた請求項１ないし８のいずれか一項に記載の情報処理装置。
【請求項１０】
複数の対象装置の状態を表すＮ次元のデータ群を、複数のパターンで離散化するステップと、
前記複数のパターンで前記データ群を離散化した複数の離散化データ群と、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）のパラメータＫの複数の候補値とをそれぞれ１つずつ組み合わせて複数の仮モデルを生成し、前記データ群に基づき前記複数の仮モデルを評価することにより、前記複数の仮モデルからモデルを選択するステップと
を備えた情報処理方法。
【請求項１１】
複数の対象装置の状態を表すＮ次元のデータ群を、複数のパターンで離散化するステップと、
前記複数のパターンで前記データ群を離散化した複数の離散化データ群と、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）のパラメータＫの複数の候補値とをそれぞれ１つずつ組み合わせて複数の仮モデルを生成し、前記データ群に基づき前記複数の仮モデルを評価することにより、前記複数の仮モデルからモデルを選択するステップと
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、情報処理方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）およびメモリなどの計算資源の技術が発展するとともに、ビッグデータ関連インフラが整備されてきている。また、データ収集基盤プログラム、リアルタイム処理基盤プログラム等の技術が整備され、さらにそれらがオープンソースソフトウェアとして誰もが使えるようになっている。
これらを受け、故障予兆の検知やセキュリティ侵入検知といった異常検知技術が今後強く求められる。
【０００３】
異常検知技術のひとつとして、機械学習による外れ値検知がある。外れ値検知には、統計学を使った手法と、使わない手法がある。統計学を使った手法では、平均からのずれが、標準偏差を基準として一定以上離れた場合に、外れ値と認定するという手法が一般的である。しかし、この方法を使うには、対象データの分布が単峰性を持つことを仮定する必要がある。故障の予測やネットワーク不正侵入検知など、外れ値検知を活用したいシーンの多くでは、データが多変量、且つ、生成メカニズムが複雑であることが多く、常に単峰性を仮定することは難しい。
【０００４】
一方、統計学を用いない手法では、データ間の距離に基づく外れ値検知手法がある。この手法を、距離ベース外れ値検知と呼ぶ。距離ベース外れ値検知は、単峰性が仮定できないデータに対しても適用することができる。最も有名な距離ベース外れ値検知アルゴリズムとして、Ｋ−近傍法が知られている。しかしながら、Ｋ−近傍法では、データ分布に格差（取得データ内におけるデータ密度の格差）がある場合に、検知基準を適切に設定できないという欠点がある。
【０００５】
空間内においてデータ分布の格差がある場合にも有効な距離ベース外れ値検知のアルゴリズムとして、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）がある。ＬＯＦは、教師なし学習アルゴリズムのひとつであり、通常、学習データとして正常データのみを用いる。しかし、ＬＯＦは、機械学習であるため、機械学習手法の抱える問題のひとつである過学習の問題がある。
【０００６】
過学習への対策技術として、正則化という手法がある。しかしながら、正則化は、回帰や分類など、入力データセットと出力値との間の関係を「関数」として学習するタイプの機械学習にのみ適用可能である。ＬＯＦは、学習により関数を生成するタイプの機械学習ではないため、ＬＯＦに正則化を適用することはできない。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm（k-nearest neighbors algorithm）
【非特許文献２】http://www.dbs.ifi.lmu.de/Publikationen/Papers/LOF.pdf（LOF: Identifying Density-Based Local Outliers）
【非特許文献３】http://www.keihirose.com/material/392-399_hirose.pdf（スパースモデリングとモデル選択）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、限定的なデータサンプリングにより学習用のデータ群の分布に偏りがあっても、高精度に外れ値を検知することを可能にするモデルを構築可能な情報処理装置、情報処理方法およびコンピュータプログラムを提供する。
【課題を解決するための手段】
【０００９】
本発明の実施形態に係る情報処理装置は、データ加工部と、学習部とを備える。前記データ加工部は、複数の対象装置の状態を表すＮ次元のデータ群を、複数のパターンで離散化する。前記学習部は、前記複数のパターンで前記データ群を離散化した複数の離散化データ群と、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）のパラメータＫの複数の候補値とをそれぞれ１つずつ組み合わせて複数の仮モデルを生成し、前記データ群に基づき前記複数の仮モデルを評価することにより、前記複数の仮モデルからモデルを選択する。
【図面の簡単な説明】
【００１０】
【図１】ＬＯＦの説明図。
【図２】ＬＯＦの説明図。
【図３】本発明の実施形態に係る情報処理システムのブロック図。
【図４】図３のシステムの動作シーケンス図。
【図５】各監視対象装置から収集したデータ例を示す図。
【図６】図５のデータを正規化した例を示す図。
【図７】図６のデータを、複数の離散化パターンのそれぞれで離散化した例を示す図。
【図８】離散化処理の説明図。
【図９】仮モデルごとに計算したスコアの標準偏差の例を示す図。
【図１０】仮モデルごとに計算した識別率を示す図。
【図１１】監視装置のブロック図。
【図１２】本実施形態に係る情報処理装置のハードウェア構成例のブロック図。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１２】
本実施形態は、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）による機械学習において、現実的な学習データ数（サンプル数）に基づき、高い精度で外れ値を検知可能とするモデル（ＬＯＦモデル）、すなわち、誤検知の極めて少ないモデルを学習することを特徴の１つとする。
【００１３】
以下、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）の概要と、本発明者が本発明をなすに至った経緯について説明する。
【００１４】
図１に、多数のデータを複数次元空間にプロットした図を示す。黒いドット（点）が、プロットされたデータを表す。ここでは、説明のため、２次元を想定するが、３次元以上でもかまわない。データ集団Ｃ１とデータ集団Ｃ２が存在し、さらに、これらのデータ集団から離れた位置にデータＯ２とデータＯ１が存在する。データ集団Ｃ２の密度は、データ集団Ｃ１の密度より高く、全体のデータ分布で見ると、データの密度が偏っているといえる。データ集団Ｃ１とデータ集団Ｃ２はともに正常データであり、データＯ１とデータＯ２共に外れ値であるとする。人間の目で見ると、データＯ１とデータＯ２共に外れ値であることが容易に分かるが、これを自動で認識しようとする場合、単純には実現できない。
【００１５】
図１のデータ群を対象に、距離ベース外れ値検知（例えばＫ−近傍法）を行うことを考える。この場合、データ集団Ｃ２から見てデータＯ２が外れ値となるような基準（閾値）を設定すると、データ集団Ｃ２に比べて密度が低いデータ集団Ｃ１に属する個々のデータは、この基準に照らすと、全て外れ値とみなされてしまう。逆に、データ集団Ｃ１から見てデータＯ１が外れ値となるような基準を設定してしまうと、データＯ２は、データ集団Ｃ２と距離が近いと判断され、正常データとみなされてしまう。
【００１６】
このように、データが生成されるメカニズムが本質的に異なるために空間内で正常データの分布（密度）に格差がある場合、Ｋ−近傍法等では、検知基準を適切に設定できず、外れ値を正しく検出できなくなる場合がある。このような場合においても、外れ値を正しく検知可能とするアルゴリズムがＬＯＦである。
【００１７】
図２は、ＬＯＦのアルゴリズムを説明するための図である。正常データであるデータ集団Ｃと、データＰとが、複数次元空間（本例では２次元空間）にプロットされている。この図に基づき、ＬＯＦにおける基礎的な概念である「Ｋ距離」について説明する。
【００１８】
ある点に注目し、周囲の点を、注目点から近い順に数えていくとする。このとき、Ｋ番目に近い点（近傍点）までの距離をＫ距離と呼ぶ。Ｋは、ＬＯＦのパラメータ情報であり、注目点に対する近傍点の個数を定める。パラメータＫは、注目点を中心とする球（円）に入る点数の閾値（ＭｉｎＰｔｓ：ａ  ｍｉｎｉｍｕｍ  ｎｕｍｂｅｒ  ｏｆ  ｐｏｉｎｔｓ）であるとも言える。
【００１９】
図２の点Ｐに着目し、Ｋ＝３とすると、図のｄｍａｘが、点ＰにとってのＫ距離となる。なお、ｄｍｉｎは、点Ｐから最も近い点までの距離である。点Ｐを中心とする半径Ｋの距離の球の領域を考えると、その中に点が３つ入っている。点Ｐに関する密度（局所到達可能密度）は、一例として、点Ｐから上記の３つの点までの距離の平均の逆数により計算できる。図には、点Ｐを中心とする半径Ｋの距離の球（２次元球、すなわち円）が描かれている。もし点Ｐが外れ値であれば、Ｋ距離は長くなるため、球の体積が大きくなり、密度は低くなることが想定される。
【００２０】
ここで、点ＰのＫ距離圏内に存在する３つの点についても同様に、Ｋ距離を求める。図には、これら３つの点のそれぞれを中心とする半径Ｋの距離の球（円）が描かれている。
これら３つの点のそれぞれに関する密度も計算する。密度の計算は、上記同様に、３つの点のそれぞれについて、Ｋ距離圏内の３つの点までの距離の平均の逆数を計算することで行う。これら３つの点は外れ値ではないため、これら３つの点に関する密度はいずれも高くなることが想定される。なお、これら３つの点のそれぞれについてｄｍａｘとｄｍｉｎを計算した場合に、これらのうち最も大きなものがｉｍａｘ、最も小さなものがｉｍｉｎである。
【００２１】
ここで、点Ｐの外れ度合いを、以下の式で算出されるスコアによって評価する。
【数１】
2018169994.tif 000003
もし、点Ｐが３つの点と同じ集団に属していれば、点ＰのＫ距離圏の密度は、３つの点それぞれのＫ距離圏の密度と同程度となり、上記スコアは１または１に近い値となる。一方、点Ｐが外れ値であれば、点ＰのＫ距離圏の密度は、３つの点それぞれのＫ距離圏の密度に比べて小さくなるため、スコアは１より十分大きくなる。１より大きい閾値を設定し、スコアが閾値より大きければ、点Ｐは外れ値、スコアが閾値以下であれば、点Ｐは外れ値でない（正常データ）であると判断できる。この際に用いる閾値は、操作者が評価時に適宜設定すればよい。あるいは、閾値を、事前に定めておき、評価時にこの値を用いてもよい。
【００２２】
上述したＬＯＦによれば、空間内でデータの分布（密度）に本質的な格差がある場合でも、外れ値を高い精度で検出できる。しかしながら、ＬＯＦは機械学習であるため、過学習の問題がある。ＬＯＦにおける過学習とは、本来正常のはずのデータが、現状得られているデータ分布から見ると外れ値に見えてしまうことである。これは、限られたデータサンプリングにおいて、データがたまたまある領域に集中してしまうと、ＬＯＦの利点が逆に弊害となり、そこから若干離れた領域は、本来正常な領域であっても、スコアが高くなってしまうことに起因する。このような偶発的なデータ分布の格差は、十分なデータサンプルを集めることで解消されるものである。しかしながら、多次元空間では、次元数の増加に伴い、爆発的に体積が増加する。そのため、空間内全体においてデータの揺らぎに影響を受けないほどデータを集めることは、容易でない。
【００２３】
そこで、本実施形態は、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）による機械学習において、現実的なデータサンプル数に基づき、高精度に外れ値を検知できるモデルの学習を実現しようとするものである。
【００２４】
図３は、本実施形態に係る情報処理システムの全体構成を示す図である。図３の情報処理システムは、情報処理装置１０と、複数の監視対象装置（以下、対象装置）２０と、監視装置３０とを備える。情報処理装置１０は、ネットワーク４０を介して、複数の対象装置２０および監視装置３０と接続されている。ネットワーク４０は、有線ネットワークでも、無線ネットワークでも、これらのハイブリッドのネットワークであってもかまわない。情報処理装置１０と対象装置２０とを接続するネットワークと、情報処理装置１０と監視装置３０とを接続するネットワークが物理的に同一でも、異なってもかまわない。
【００２５】
情報処理装置１０は、大きく、学習段階と、判定段階との２つの動作を実行する。学習段階では、情報処理装置１０は、複数の対象装置２０のそれぞれからデータを収集し、収集したデータを学習データとして用いて、外れ値を検知するためのモデルを構築する。判定段階では、情報処理装置１０は、各対象装置２０からデータを受信し、受信したデータが外れ値であるかを、モデルに基づき判定する。外れ値である場合は、情報処理装置１０は、監視装置３０に、外れ値と判断されたデータおよび当該データの発生元の対象装置に関する情報を送信する。以下、このような本システムについてさらに詳細に説明する。
【００２６】
複数の対象装置２０のそれぞれは、情報処理装置１０による監視対象となる装置である。対象装置２０は、例えば、計算機能を備えたコンピュータ装置、ネットワーク機器、ビルや工場等の設備機器、および、家庭内の家電機器などである。コンピュータ装置の例として、デスクトップ型パーソナルコンピュータ（ＰＣ）、ノート型ＰＣ、移動体端末（スマートフォン、タブレット端末、携帯電話など）などがある。設備機器の例として、空調機器や照明機器などがある。家電機器の例として、空調機器、照明機器、ＴＶなどがある。ネットワーク機器の例として、ルータ、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）スイッチ、アクセスポイントなどがある。ここで列挙した以外に、ウェアラブルデバイスなど、他にも様々な装置が考えられる。複数の対象装置２０のそれぞれが、１つのＬＡＮスイッチが備える複数のポートのそれぞれに対応してもよい。以下の説明において、複数の対象装置２０はいずれも同じ種類の装置であるとする。
【００２７】
複数の対象装置２０のそれぞれは、データ測定部２１と、データ送信部２２とを備える。
【００２８】
データ測定部２１は、対象装置２０の状態を測定することにより、対象装置２０の状態を表す複数の特徴量（第１の特徴量〜第Ｎの特徴量）を取得する。データ測定部２１は、取得した複数の特徴量（第１の特徴量〜第Ｎの特徴量）を含むデータを、メモリ等の記憶部（図示せず）に格納する。特徴量は、対象装置２０の測定値に基づく値である限り、何でもよい。一例として、特徴量は、測定値そのものでもよいし、測定値の統計値（平均、最大値、最小値、標準偏差など）でもよいし、測定値に基づき対象装置２０を分類したときのカテゴリ（例えば温度を測定した場合の高温、中温、低温のカテゴリなど）を表す値でもよい。または特徴量は、異なる種類の測定値間の演算値（例えば電流と電圧とを乗じた電力）でもよいし、その他の値でもよい。以下では、特徴量が測定値の場合を例に説明を行うが、測定値を特徴量と読み替えることで、特徴量が、測定値以外の値の場合に対しても、本発明は実施可能である。
【００２９】
ここで、データ測定部２１が測定する値の例として、コンピュータ装置の場合、ＣＰＵの稼働率、通信特性値（通信量（送信量、受信量）、通信のエラー率（送信エラー率、受信エラー率）、平均スループットなど）、ストレージ装置に対するデータの読み出しまたは書き込み量などがある。空調機器の場合、運転状態（オン、オフなど）、温度、湿度などがある。照明機器の場合、動作状態（オン、オフなど）、照度などがある。測定は、センサを用いて行ってもよいし、ＣＰＵ（具体的にはＣＰＵで動作するアプリケーションまたはＯＳ（オペレーティングシステム））が計算した値を取得することで行ってもよい。ＣＰＵからの値の取得は、データ測定部２１が、ＣＰＵに値の取得要求を行い、ＣＰＵから値を取得することで行ってもよいし、ＣＰＵが所定の記憶領域（レジスタまたはメモリ）に、演算した値を定期的に書き込み、この値を読み出すことで行ってもよい。ここで述べた以外の方法で、測定を行ってもよい。
【００３０】
データ送信部２２は、データ測定部２１により測定されたデータを、ネットワーク４０を介して、情報処理装置１０に送信する。データは、実際には、使用する通信プロトコルに応じてパケットまたはフレームに整形されて、送信される。一例として、データは、ＴＣＰ／ＩＰに従って送信される。データの送信タイミングは、データ測定が一定時間間隔（例えば１分間隔、１０分間隔、３０分間隔、１時間間隔、１日間隔など）で行われる場合は、当該データ測定のタイミングに合わせて、一定時間間隔ごとに送信してもよいし、情報処理装置１０がデータの送信要求を、対象装置２０に送信し、この送信要求に応じてデータを送信してもよい。送信するデータは、送信要求で指定されたデータ（例えば所定の時刻のデータなど）でもよいし、対象装置２０が測定した最新のデータでもよい。ここで述べた以外の方法で、データを送信してもよい。なお、データ送信部２２は、送信するデータをデータ測定部２１から直接受け取ってもよいし、図示しない記憶部から読み出すことで、送信するデータを取得してもよい。
【００３１】
情報処理装置１０は、データ受信部１１、制御部１２、データ加工部１３、外れ値検知部１４、アラート送信部１５、学習部１６、および記憶装置１７を備える。記憶装置１７は、受信データ記憶部Ｄ１と、設定データ記憶部Ｄ２と、結果データ記憶部Ｄ３とを含む。
【００３２】
情報処理装置１０は、上述したように、大きく学習段階の動作と、判定段階の動作とを実行する。学習段階では、各対象装置２０からデータを収集および蓄積し、蓄積したデータに基づいて、モデル（ＬＯＦモデル）の生成を行う。判定段階では、各対象装置２０から受信したデータに対して、ＬＯＦモデルに基づいて、外れ値か否かの判定を行う。
【００３３】
学習段階における各対象装置２０からのデータ収集は、各対象装置２０が正常状態であるときに行い、収集されたデータが正常データであることを前提としてもよい。あるいは、そのような前提を課すことなく、各対象装置からデータを収集してもよい。対象装置２０が１年に数回しか異常にならないのが一般的であれば、１か月分のデータを収集すると、収集されるデータに異常データが含まれないことが普通であるが、若干の異常データが含まれる可能性もある。本実施形態は、収集されるデータがすべて正常データである場合、および、収集されるデータに若干の異常データが含まれる場合のいずれも対応可能である。
【００３４】
図４は、学習段階および判定段階のそれぞれの動作シーケンスを示す。
【００３５】
［学習段階］
データ受信部１１は、各対象装置２０から送信されたデータを受信する（Ｓ１１）。
【００３６】
制御部１２は、本情報処理装置の全体の動作を司る。制御部１２は、データ受信部１１に接続されており、データ受信部１１を用いて、各対象装置２０からデータを収集する（Ｓ１２）。制御部１２は、記憶装置１７に接続されており、収集したデータを、記憶装置１７における受信データ記憶部Ｄ１に保存する（Ｓ１３）。受信データ記憶部Ｄ１は、一例としてデータベースにより構成される。ここで、データ収集時、各対象装置２０は、正常状態である（異常状態でない）ことを前提としてもよい場合、本システムの管理者が、各対象装置２０の管理者に、各対象装置２０が正常状態であることを事前に確認してもよい。
【００３７】
各対象装置２０から送信されるデータは、予め定めたフォーマットに従っているものとする。データに含まれるＮ個の測定値は、フォーマットに従った順序で並べられている。
【００３８】
また、データには、対象装置２０の識別子（対象装置ＩＤ）、およびデータの識別子（データＩＤ）が関連づけられていてもよい。この場合、対象装置ＩＤは、各対象装置２０を区別可能な値であれば何でもよい。対象装置ＩＤは、本情報処理装置が予め各対象装置に割り当てたＩＤでもよいし、対象装置のユーザのユーザＩＤでもよい。制御部１２が、受信したデータのパケットの宛先アドレスを特定し、予め保持しているアドレスと対象装置ＩＤとの対応表から、対象装置ＩＤを特定してもよい。また、データＩＤは、同じ対象装置から収集したデータ間を区別可能な値であれば、何でもよい。データの送信毎に１インクリメントする値でもよいし、対象装置におけるデータの生成時刻または測定時刻でもよい。データＩＤは、制御部１２がデータを取得した時点で、当該データに割り当ててもよい。例えばデータを取得するごとに、１インクリメントした値をデータＩＤとして割り当ててもよい。また、データ内にＮ個の各測定値を識別可能となるような要素識別子を含めてもよい。
【００３９】
ここでは、複数の測定値が一度にまとめて送信される場合を想定しているが、複数の測定値がそれぞれ別々のタイミングで送信されてもよい。この場合、制御部１２が、それぞれ別々に受信された測定値を並べて、並べた後の測定値を含むデータを、受信データ記憶部Ｄ１に保存すればよい。あるいは、個々の測定値を受信するごとに、受信した測定値を、データベースの該当する項目に保存してもよい。但し、その場合は、要素識別子をデータ内に含めるか、分割シーケンスＩＤをデータに含める必要がある。
【００４０】
図５に、受信データ記憶部Ｄ１に保存されたデータ例を示す。各対象装置２０から収集したデータが、データベースに保存されている。この例では、各対象装置（対象装置１〜ｈ）からそれぞれｓ個のデータを受信している。データベースにおける個々のエントリ（横一列）は、対象装置ＩＤと、データＩＤと、Ｎ個の測定値とを含んでいる。
【００４１】
ここで、ｉ番目の対象装置におけるｊ番目のデータのｒ番目の測定値を、“ｘｉ，ｊ，ｒ”と表す。例えば、１番目の対象装置における１番目のデータの２番目（種類２）の測定値は、“ｘ１，１，２”である。図５の例では、この値は０．７である。
【００４２】
学習部１６は、本実施形態に係るモデルを生成する学習処理を行う。学習部１６は、予め定めた条件が成立したかを判断し、予め定めた条件が成立すると、学習処理を開始する。予め定めた条件としては、受信データ記憶部Ｄ１に一定量のデータが蓄積されたことでもよいし、予め定めた時刻になったことでもよいし、本情報処理装置の管理者がユーザインタフェース（キーボード、マウス、タッチパネル、または音声入力など）を用いて学習指示を入力し、この学習指示を受けたことでもよい。ここで述べた以外の条件でもよい。
【００４３】
学習処理において、学習部１６は、受信データ記憶部Ｄ１から、モデル学習に用いる複数のデータ（データセット）を読み出す（Ｓ１４）。読み出したデータを、学習データと呼ぶ。学習部１６は、任意の方法で、受信データ記憶部Ｄ１において学習データを特定する。一例として、現在からＸ日前（３０日前など）までの過去のデータを、学習データとして特定する。別の方法として、期間の開始時刻と終了時刻を指定し、これらの期間に含まれるデータを学習データとして特定してもよい。以下の説明では、図５に示したデータベースにおいて、対象装置１〜ｈのデータ１〜ｓが学習データとして特定された場合を想定する。
【００４４】
学習部１６は、データ加工部１３で行うデータ加工用のパラメータ情報を生成する（Ｓ１５）。データ加工は、正規化と、本実施形態で新たに定義および導入した“離散化”とからなる。この離散化は、過学習対策として行うものである。このため、データ加工用のパラメータ情報は、正規化用のパラメータ情報と、離散化用のパラメータ情報とを含む。
【００４５】
正規化は、学習データセットを対象に、測定値の種類毎に、尺度調整と重心移動とを行うものである。尺度調整は、複数の測定値のうちの最大値により各測定値を除算することで、各測定値を０〜１までの値となるように調整するものである。重心移動は、尺度調整後の複数の測定値からこれらの平均値を減算することで、平均値が原点（ゼロ）となるように調整するものである。学習部１６は、測定値の種類毎に算出した最大値と平均値とを、正規化用のパラメータ情報として取得する。学習部１６は、正規化用のパラメータ情報を、設定データ記憶部Ｄ２に格納する。
【００４６】
離散化は、正規化完了後の学習データセットをＮ次元空間にプロットした場合に、学習データを表す点の分布（密度）の偏りに過剰に反応することを避けるため、学習データを加工するものである。
【００４７】
学習部１６は、加工の荒さ（目盛りの荒さまたは精度の荒さとも言う）に違いを付けた複数の離散化パターンを生成する。予め複数の離散化パターンを記憶装置１７または別の記憶装置に記憶させておき、これらを学習部１６が候補として読み出してもよい。以下の説明では、離散パターンを、単にパターンと呼ぶこともある。
【００４８】
離散化パターンの例を以下に３つ示す。パラメータｍは１以上の任意の実数である。［・・・］はガウス記号であり、小数点以下の切り捨てを行う。例えば［１．４５］は、１である。
【数２】
2018169994.tif 000004
【００４９】
ｘ’ｉ，ｊ，ｒは、ｉ番目の対象装置のｊ番目のデータにおけるｒ番目の測定値の正規化後の値である。σｘ’ｉ，ｒは、種類ｒの正規化後の測定値（正規化後のｒ番目の測定値）の標準偏差である。標準偏差はばらつきを表す値の一例であり、分散など、ばらつきを表す別の値を用いることも可能である。学習部１６は、測定値の種類毎に、正規化後の測定値の標準偏差σｘ’ｉ，ｒを計算する。また、学習部１６は、ｍ（１以上の任意の実数）の値を決定する。ｍの値は、予めメモリまたはアプリケーションプログラム等に格納されていて、それを読み出してもよいし、本情報処理装置の管理者がユーザインタフェースを用いて、ｍの値を指定してもよい。あるいは、予め定めた範囲の中から学習部１６がランダムに選択することも可能である。ｍの決定方法は任意でかまわない。一例としてｍの値は、１０である。ｍ、ｍ２、ｍ３は、例えば加工の荒さ（目盛りの荒さまたは精度の荒さ）に対応する。
【００５０】
パターン１は、正規化後の測定値ｘ’ｉ，ｊ，ｒを、σｘ’ｉ，ｒ／ｍ（σｘ’ｉ，ｒをｍで除算した値）で除算し、小数点以下を切り捨てた後に、再度、σｘ’ｉ，ｒ／ｍを積算する。ｒ＝１〜Ｎとした場合に、σｘ’ｉ，１／ｍ〜σｘ’ｉ，Ｎ／ｍは、本実施形態に係る第１の値〜第Ｎの値に対応する。
パターン２は、正規化後の測定値ｘ’ｉ，ｊ，ｒを、σｘ’ｉ，ｒ／ｍ２（σｘ’ｒをｍの二乗で除算した値）で除算し、小数点以下を切り捨てた後に、再度、σｘ’ｉ，ｒ／ｍ２を積算する。ｒ＝１〜Ｎとした場合に、σｘ’ｉ，１／ｍ２〜σｘ’ｉ，Ｎ／ｍ２は、本実施形態に係る第１の値〜第Ｎの値に対応する。
パターン３は、正規化後の測定値ｘ’ｉ，ｊ，ｒを、σｘ’ｉ，ｒ／ｍ３（σｘ’ｒをｍの三乗で除算した値）で除算し、小数点以下を切り捨てた後に、再度、σｘ’ｉ，ｒ／ｍ３を積算する。ｒ＝１〜Ｎとした場合に、σｘ’ｉ，１／ｍ３〜σｘ’ｉ，Ｎ／ｍ３は、本実施形態に係る第１の値〜第Ｎの値に対応する。
【００５１】
例えば、ｍを１０とすると、パターン１は、標準偏差の１／１０の目盛り幅で離散化するパターン、パターン２は標準偏差の１／１００の目盛り幅で離散化するパターン、パターン３は標準偏差の１／１０００の目盛り幅で離散化するパターンであるといえる。ここでは離散化パターンを３つ示したが、４つ以上でもよいし、２つ以下でもよい。
また、ｍの値は１０に限定されない。
【００５２】
上述した例では、端数処理として、小数点第１位以下の切り捨てを行ったが、四捨五入または小数点以下の切り上げを行ってもよい。また、小数点第１位ではなく、第２位またはそれより下位を対象として、端数処理を行ってもよい。また、本実施形態では、離散化の前に正規化を行っているが、正規化を省略する構成も可能である。
【００５３】
学習部１６は、複数の離散化パターン（離散化用のパラメータ情報）を、設定データ記憶部Ｄ２、または別の記憶部に格納してもよい。
【００５４】
学習部１６は、学習データセットの加工（正規化と、離散化）を依頼する指示情報を、正規化用のパラメータ情報および複数の離散化パターン（離散化用のパラメータ情報）とともに、データ加工部１３に出力する（Ｓ１６）。
【００５５】
データ加工部１３は、学習部１６から提供された正規化用のパラメータ情報と、離散化用のパラメータ情報に基づき、学習データセットに対して、正規化と離散化を行う。
【００５６】
すなわち、データ加工部１３は、正規化用のパラメータ情報（測定値の種類毎の最大値と平均値）に基づき、学習データセットを正規化する。具体的には、前述したように、個々の学習データに対して、測定値の種類毎に、上記最大値で測定値を除算することで、測定値を、０〜１の範囲内の値に調整する（尺度調整）。そして、尺度調整後の測定値から上記平均値を減算する（重心移動）。正規化後の学習データセットのイメージを図６に示す。なお、本実施形態では、学習データを直接、正規化しているが、学習データに含まれる複数の測定値から複数の第２特徴量を計算し、複数の第２特徴量を含む第２学習データを生成し、第２学習データに対して正規化を行ってもよい。この場合、以降の処理も、第２学習データを対象に行う。第２特徴量は、前述した特徴量と同様、測定値そのものでもよいし統計値でもよいし、カテゴリ値でもよいし、２つ以上の測定値間の演算値でもよいし、その他の値でもよい。なお、第２特徴量を計算する元となる値は、測定値以外の第１特徴量でもよい。
【００５７】
また、データ加工部１３は、正規化後の学習データセットに対して、複数の離散化パターンのそれぞれを用いて、離散化を行う。これにより、複数の離散化パターンのそれぞれについて、離散化された学習データセットが得られる。離散化された学習データを、加工データと呼ぶ。図７に、離散化パターンごとに得られた加工データセットのイメージを示す。図７（Ａ）が離散化パターン１に対応する加工データセット、図７（Ｂ）が離散化パターン２に対応する加工データセット、図７（Ｃ）が離散化パターン３に対応する加工データセットを表す。
【００５８】
また、加工データセット内に複数の同じ加工データが存在する場合、１つの加工データのみを残し、残りを削除することで、加工データセットに含まれる複数の加工データをユニーク化する。これにより、同一座標にＫ個以上のデータが存在することで注目点のＫ距離が０となり逆数が発散してスコアが計算できなくなることを阻止できる。
【００５９】
ある３つの学習データ（仮に学習データＡ、Ｂ、Ｃとする）を対象に、離散化の具体例を示す。各学習データにおいて、種類ｒの正規化後の測定値が０．７７７、０．７７６、０．７７８であったとする。また、当該種類ｒの標準偏差は、０．５９８であったとする。また、ｍ＝１０とする。
【００６０】
このとき、パターン１を用いた場合、０．７７７の離散化後の値は、［０．７７７／（０．５９８／１０）］×（０．５９８／１０）＝［１２．９９３３］×（０．５９８／１０）＝１２×（０．５９８／１０）＝０．７１７６となる。
０．７７６の離散化後の値は、［０．７７６／（０．５９８／１０）］×（０．５９８／１０）＝［１２．９７６５］×（０．５９８／１０）＝１２×（０．５９８／１０）＝０．７１７６となる。
０．７７８の離散化後の値は、［０．７７８／（０．５９８／１０）］×（０．５９８／１０）＝［１３．０１００］×（０．５９８／１０）＝１３×（０．５９８／１０）＝０．７７７４となる。
離散化前の測定値（正規化後の測定値）と、離散化後の測定値をまとめると、以下のようになる。
【表１】
2018169994.tif 000005
学習データＡとＣに着目すると、離散化前の値の差分は、０．７７８−０．７７７＝０．００１である。一方、離散化後の値の差分は、０．７７７４−０．７１７６＝０．０５９８である。離散化前の間隔０．００１に比べて、離散化後では間隔が０．０５９８となり、大きく離散化されたことが分かる。つまり、種類ｒの測定値の間隔が、離散化により、大きく広げられている。このことから、離散化を行うことで、データ密度を低くできることが理解される。
【００６１】
同じ例を用いて、パターン２を適用した場合の、離散化前の値と、離散化後の値は以下のようになる。この例では、どの学習データ間でも、離散化による値の幅の変化はパターン１と比べて小さい。
【表２】
2018169994.tif 000006
【００６２】
同じ例を用いて、パターン３を適用した場合の、離散化前の値と、離散化後の値は以下のようになる。この例では、どの学習データ間でも、離散化による値の幅の変化はパターン１と比べてさらに小さい。
【表３】
2018169994.tif 000007
【００６３】
図８は、本実施形態に係る離散化を概念的に表したものである。図８（Ａ）は正規化後の学習データセットを２次元空間にプロットしたものである。横方向が種類１の離散化後の測定値、縦方向が種類２の離散化後の測定値に対応する。図８（Ｂ）は、図８（Ａ）の学習データセットを離散化することで得られた加工データセットを２次元空間にプロットしたものである。離散化前では、学習データ分布（データ密度）に偏りが見られるが、離散化後では、データ分布の偏りが緩和されている。より具体的には、密度の高い領域の密度が低くなることで、全体のデータ分布が均一に近づいている。前述した目盛り幅に応じた離散化が行われることで、元々密度の低い領域では、密度が低くなることが抑制されている。
【００６４】
学習部１６は、以降の処理において、上述した複数の離散化パターンを用いて、高い精度で外れ値を検知できるモデル（ＬＯＦモデル）を構築する。
【００６５】
このために、学習部１６は、データ加工部１３から、各離散化パターンで離散化された加工データセットを取得する（Ｓ１７）。学習部１６は、各離散化パターンに対応する加工データセットと、ＬＯＦのパラメータＫの候補値の範囲とに基づいて、ＬＯＦの学習アルゴリズムを利用して、複数の仮モデルを生成する（Ｓ１８）。複数の仮モデルを、正規化データセットを用いて評価することにより、各仮モデルの評価値をそれぞれ計算する（同Ｓ１８）。そして、評価値に基づき、複数の仮モデルのうちの１つのモデルを、外れ値検知用のモデル（ＬＯＦモデル）として選択する（Ｓ１９）。
【００６６】
以下、ＬＯＦモデルを生成する方法について詳細に説明する。
【００６７】
学習部は、複数の離散化パターンのうちの１つと、パラメータＫの候補値の範囲に含まれる複数の候補値（以下、Ｋ値と記述）のうちの１つとの全ての組み合わせについて、仮モデルを生成する。仮モデルは、当該組み合わせ数だけ生成される。例えば離散化パターン数が３、Ｋ値の個数が１０であれば、３×１０＝３０の仮モデルが生成される。
【００６８】
仮モデルは、当該組み合わせに含まれる離散化パターンで離散化された加工データセットと、当該組み合わせに含まれるＫ値とを少なくとも含む。仮モデルは、判定対象となるデータが与えられた場合に、仮モデルに含まれる加工データセットとＫ値に基づき、当該データのスコア（式１）を計算する関数として構成されてもよい。この場合、仮モデルは、判定対象となるデータを入力変数ｘとし、スコアを計算して出力変数ｚとする関数（ｚ＝ｆ（ｘ））と、当該スコアの計算に用いる加工データセットとを含むモデルファイルである。関数は、加工データセットとＫ値に基づき、ＬＯＦアルゴリズムにより当該データのスコア（式１）を計算するプログラムコードを含む。関数に、スコアを閾値と比較するプログラムコードと、比較結果として外れ値か否かを示す値を出力するプログラムコードとを含めてもよい。
【００６９】
ここで、Ｋの候補値の範囲は、予めメモリ等の記憶部に設定しておき、学習部１６は、これを読み出してもよい。あるいは、候補値の範囲を複数設定しておき、管理者が１つの範囲を、ユーザインタフェースを介して選択し、選択された範囲を学習部１６が読み出してもよい。または、管理者がユーザインタフェースを介して候補値の範囲を入力してもよい。候補値の範囲は、開始位置と終了位置とによって表現してもよいし、開始位置と幅とによって表現してもよい。例えば、候補値の範囲が１０以上５０以下の場合、前者の例では、“開始位置１０、終了位置５０”を指定し、後者の例では、“開始位置１０、幅４０”を指定する。
【００７０】
学習部１６は、正規化データセットに基づき、仮モデルの評価値を計算する。より詳細には、学習部１６は、仮モデルに基づき、正規化データセットに含まれる複数のデータのスコア（式１参照）を計算する。この計算は、仮モデルにおける加工データセットを空間に展開し、データ（正規化されたデータ）を当該空間に注目点Ｐ（図２参照）としてマッピングした場合に、仮モデルに含まれるＫ値と、式１に従って、当該データのスコアを計算することに相当する。注目点Ｐに対するＫ距離圏内の各点は加工データである。仮モデルがデータを入力変数、スコアを出力変数とする関数として構成されていれば、この関数にデータを入力することでスコアを計算する。学習部１６は、複数のデータのスコアのばらつきを表す値を、仮モデルの評価値として計算する。
【００７１】
ここで、ばらつきを表す値の具体例として、標準偏差、不偏標準偏差または分散などがある。ここでは標準偏差を想定する。標準偏差の計算式を以下に示す。
【数３】
2018169994.tif 000008
σｅはスコアの標準偏差、ｎは正規化データセットに含まれるデータ数、ｙはデータｉのスコア、μはｎ個のデータのスコアの平均である。
【００７２】
学習部１６は、以上の処理を、上記の組み合わせ数分繰り返す。すなわち、学習部１６は、上記の組み合わせ数の仮モデルのそれぞれについて、評価値（スコアの標準偏差）を計算する。これにより、複数の仮モデルのそれぞれについて、スコアの標準偏差を得る。
【００７３】
学習部１６は、複数の仮モデルのうち、標準偏差が最も小さい仮モデルを選択する。あるいは、これとは別の例として、標準偏差が閾値以下の仮モデルを選択してもよい。例えば複数の仮モデルについて順番に評価値（スコアの標準偏差）を計算し、閾値以下の標準偏差が計算された時点で、以降の処理を停止する。これにより、処理の高速化を図ることができる。
【００７４】
図９に、３つの離散化パターン１、２、３と、９６個のＫ値（５〜１００）との組み合わせに基づき、複数の仮モデルを生成し、これらの仮モデルに対して、スコアの標準偏差を計算した例を表形式で示す。この例では、仮モデル１〜２８８が生成されている。一例として、仮モデル１は、離散化パターン１で正規化データセットを離散化した加工データセットと、Ｋ値＝５とに基づき生成された仮モデルである。また、仮モデル９７は、離散化パターン２で正規化データセットを離散化した加工データセットと、Ｋ値＝５とに基づき生成された仮モデルである。仮モデル１９３は、離散化パターン３で正規化データセットを離散化した加工データセットと、Ｋ値＝５とに基づき生成された仮モデルである。
【００７５】
学習部１６は、仮モデル１〜２８８の中で最も標準偏差が小さい仮モデルを、ＬＯＦモデルとして選択する（Ｓ１９）。図９の例では、仮モデル１〜２８８のうち、最小の標準偏差は、仮モデル８の標準偏差０．１３４である。よって、学習部１６は、仮モデル８をＬＯＦモデルとして選択する。ＬＯＦモデルに含まれるＫ値は１２である。ＬＯＦモデルに含まれる加工データセットは、離散化パターン１で正規化データセットを離散化した加工データセットである。
【００７６】
ここで、最小の標準偏差を有する仮モデルをＬＯＦモデルとする理由について説明する。加工データセットには、ノイズが含まれる可能性や、若干の異常データが含まれる可能性はあるものの、大多数のデータは正常である。このため、大多数のデータのスコアは１．０近傍になり、したがって、スコア分布の標準偏差は小さいことが期待される。したがって、スコアの標準偏差を指標とし、これが最小になる仮モデルを、ＬＯＦモデルとする方法は有効であると言える。
【００７７】
最小の標準偏差が２つもしくはそれ以上存在する場合、一例として、Ｋ値が最も小さい仮モデルをＬＯＦモデルとする。この理由は、Ｋ値は小さいほど感度が高くなるためである。また、別の方法として、離散化幅が最も大きい離散化パターンで離散化した加工データセットを含む仮モデルをＬＯＦモデルとする方法も可能である。離散化幅が大きいほど、加工化データの値の有効桁数を短くできるため、ＬＯＦモデルファイルのデータ容量が小さくなるためである。
【００７８】
学習部１６は、ＬＯＦモデルを、外れ値検知部１４に提供する（Ｓ２０）。また、学習部１６は、このＬＯＦモデルを、設定データ記憶部Ｄ２に格納する（Ｓ２１）。なお、学習部１６は、ＬＯＦモデルの生成に利用された離散化パターンを表す情報（パラメータｍの値を含む）を、設定データ記憶部Ｄ２に格納してもよい。
【００７９】
（変形例）ＬＯＦモデルを構築する別の方法として、以下のようにしてもよい。上記と同様にして複数の仮モデルを生成する。仮モデルのうち、最も識別率（識別精度）が良い、すなわち誤検知率が最も低い仮モデルをＬＯＦモデルとする。誤検知率または識別率は、仮モデルの評価値の一例である。誤検知率は、例えば以下のようにして計算できる。正規化データセットに含まれる各データについて、仮モデルでスコア（式（１）参照）を計算し、スコアが予め定めた閾値（１より大きい閾値）以上であれば、外れ値（不正解）、閾値未満であれば、外れ値でない（正解）と判断する。そして、不正解の回数を、正解と不正解の回数の合計で除算することにより、誤検知率を計算する。本方法は、各データが正常データであることを前提としている。一般に、識別率には、誤検知率と、検知率との２つの意味が含まれる。誤検知率は、正常データのうちのいくつが異常と判定されたかを意味する。検知率は、異常データのうち、いくつが異常と判定されかを意味する。各データが正常データであることを前提としている場合、検知率は確認できないため、誤検知率のみで識別率を評価する。ここでは誤検知率が最も低い仮モデルをＬＯＦとしたが、誤検知率が閾値以下の仮モデルのうちの１つをＬＯＦモデルとしてもよい。
【００８０】
上述した変形例に対して、交差検証法を適用してもよい。例えば、まずＫの値を仮決めする。その上で、加工データセットを、Ｗ個の部分データセットに分割する。２番目〜Ｗ番目の部分データセットを訓練事例、１番目の部分データセットに対応する部分正規化データセットをテスト事例として利用して、誤検知率を計算する。Ｗ個の部分データセットそれぞれが１回ずつテスト事例として利用されるまで同様の処理を繰り返す。結果として得られたＷ個の誤検知率の代表値を統計的な方法で決定する。一例として、平均をとる方法がある。この代表値を仮決めしたＫにおける誤検知率と定義する。当該仮決めしたＫと、使用した加工データセットとに基づく仮モデルを生成する。このプロセスを、Ｋを変えながら各離散化パターンに対して繰り返し、仮モデルと誤検知率のテーブルを作成する。このテーブルの中から、最適な仮モデルをＬＯＦモデルとする。例えば最も誤検知率の低かった仮モデルを採択する。
【００８１】
図１０に、仮モデル（図では離散化パターンとＫ値の組によって仮モデルを表現している）と、誤検知率とをまとめた表を示す。この例では、交差検証法を用いて、各仮モデルについて、誤検知率を求めている。学習部１６は、この中から、最も誤検知率が低い仮モデル（離散化パターンとＫ値との組）を選択する。図１０の例では、離散化パターン１とＫの値（＝１１）の組に対応する仮モデルが、誤検知率が最も低い。このため、離散化パターン１とＫの値（＝１１）の組に対応する仮モデルをＬＯＦモデルとして選択する。
【００８２】
［判定段階］
制御部１２は、データ受信部１１を介して、各対象装置からデータを取得し（Ｓ３１、Ｓ３２）、取得したデータを受信データ記憶部Ｄ１に格納する（Ｓ３３）。なお、学習段階と、判定段階とで、データを保存するデータベースを分けてもよいし、同じデータベースを用いてもよい。
【００８３】
また、制御部１２は、データの正規化に必要なパラメータ情報（測定値の種類ごとの最大値と平均値）を、設定データ記憶部Ｄ２から読み出す（Ｓ３４）。このパラメータ情報は、学習段階で設定データ記憶部Ｄ２に格納したものと同じである。そして、制御部１２は、対象装置から取得したデータの加工（ここでは正規化のみ）を依頼する指示情報を、読み出したパラメータ情報とともにデータ加工部１３に出力する（Ｓ３５）。
【００８４】
データ加工部１３は、制御部１２に指示されたデータを、正規化用のパラメータ情報に従って加工（ここでは正規化のみ）し、正規化したデータを制御部１２に返す（Ｓ３６）。
【００８５】
制御部１２は、データ加工部１３から受け取った正規化後のデータについて、当該データが外れ値か否かの判定を行うことを依頼する指示情報を、外れ値検知部１４に出力する（Ｓ３７）。
【００８６】
外れ値検知部１４は、制御部１２から指示されたデータが外れ値か否か（すなわち対象装置が異常か否か）を、ＬＯＦモデルに基づき判定する。外れ値検知部１４は、当該判定結果を、制御部１２に返す（Ｓ３８）。
【００８７】
具体的な動作例として、外れ値検知部１４は、制御部１２から指示されたデータと、ＬＯＦモデルとからスコアを計算する。このスコアの計算の動作例を説明する。ＬＯＦモデルに含まれる加工データセットをプロットしたＮ次元空間対象に、判定対象となるデータをさらにプロットした場合に、判定対象となるデータを表す点を注目点として、注目点から近い順に、Ｋ番目に近い点まで（すなわちＫ距離圏内のＫ個の点）を特定する。注目点について、Ｋ個の点のそれぞれとの距離を計算し、注目点に対する密度を算出する。例えば、注目点からＫ個の点までの距離の平均の逆数により、密度を計算する。特定したＫ個の点のそれぞれについても同様にして、Ｋ距離圏内のＫ個の点を特定し、密度を求める。
【００８８】
注目点に対して求めた密度と、特定したＫ個の点のそれぞれについて求めた密度とから、スコアを計算する。そして、スコアを閾値と比較し、スコアが閾値以上であれば、判定対象となるデータは外れ値である（すなわち、対象装置は異常状態にある、もしくは異常状態にある可能性がある）と判断する。一方、スコアが閾値未満であれば、判定対象となるデータは、外れ値でない（対象装置は正常状態にある）と判断する。ここで用いる閾値（判定段階用の閾値）は、学習段階で用いたものと同じ値でもよいし、学習段階で用いたものと異なる値でもよい。後者の場合、管理者がユーザインタフェースを介して閾値を入力してもよいし、予めメモリ等の記憶部に判定段階用の閾値を格納しておき、これを読み出してもよい。
【００８９】
判定時の演算量を低減するため、ＬＯＦモデルに使用した加工データセットの各データについて、Ｋ距離内のＫ個のデータがどれであるかを特定した情報（近傍データ情報と呼ぶ）を、テーブル等の形式で保存しておいてもよい。この近傍データ情報を利用することで、注目点のＫ距離圏内に存在するＫ個の各点についてＫ距離を求める際、各点のＫ距離圏に存在する点（データ）を特定する処理を高速に行うことができる。この場合、本実施形態のＬＯＦモデルは、Ｋの値に加え、当該近傍データ情報を含んでもよい。
【００９０】
制御部１２は、外れ値検知部１４から受けとった判定結果と、判定対象となったデータ（正規化前のデータとするが、正規化後のデータでもよい）とを、結果データ記憶部Ｄ３に格納する（Ｓ３９）。制御部１２は、データ加工部１３から受けた判定結果が、判定対象となったデータが外れ値であることを示す場合、アラート送信部１５にアラート送信を依頼する指示情報を出力する（Ｓ４０）。アラート送信部１５は、制御部１２の指示情報に従って、監視装置３０にアラートメッセージを送信する（Ｓ４１）。アラートメッセージの構成は任意でよいが、一例として、外れ値と判定されたデータ（正規化前のデータとするが、正規化後のデータでもよい）、および当該データの送信元となる対象機器の識別情報を含む。
【００９１】
図１１に監視装置３０のブロック図を示す。通信部３３は、情報処理装置１０の制御部１２からアラートメッセージを受信する。制御部３１は、アラートメッセージを表示部３５に表示するとともに、記憶部３２に格納する。操作部３４は、監視装置３０の管理者により操作される入力インタフェースである。管理者は、表示部３５に表示されたアラートメッセージを確認すると、操作部３４を用いて、対象装置２０の管理者端末または対象装置２０に、外れ値が検出されたことを通知するメッセージを送信する操作を行ってもよい。
【００９２】
以上、本実施形態によれば、ＬＯＦによる機械学習において、学習データセットをデータ分布の偏りを緩和するように（データ分布を均一化するように）加工することにより、学習データ数が少ない場合においても、誤検知の極めて少ないモデルを作成することが可能となる。すなわち、学習データセットに偶発的なデータ分布の偏りが存在する場合においても、精度の高いモデルを作成できる。さらに、データ数削減による演算速度の向上も見込める。
【００９３】
また、本実施形態で、標準偏差の値と端数処理とを利用した離散化を行っており、この方式を利用することで、データ分布の偏りを緩和して（密度の高い領域の密度を低くして）、精度の高いＬＯＦモデルを生成できることが、本発明者により確認されている。ただし、本実施形態は、標準偏差の値を用いることに限定されず、目盛り幅に応じて密度の高い領域に属する点間の距離を広げることができる加工が可能な限り、別の値を利用することも可能である。
【００９４】
本実施形態に係る情報処理装置のハードウェア構成について、図１２を参照して説明する。本実施形態に係る情報処理装置は、コンピュータ１００により構成される。図１２は、コンピュータ１００の一例を示す図である。
【００９５】
図１２のコンピュータ１００は、プロセッサ１０１と、入力装置１０２と、表示装置１０３と、通信装置１０４と、記憶装置１０５と、を備える。プロセッサ１０１、入力装置１０２、表示装置１０３、通信装置１０４、および記憶装置１０５は、バス１０６により相互に接続されている。
【００９６】
プロセッサ１０１は、コンピュータ１００の制御装置および演算装置を含む電子回路である。プロセッサ１０１として、例えば、汎用目的プロセッサ、中央処理装置（ＣＰＵ）、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、コントローラ、マイクロコントローラ、状態マシン、特定用途向け集積回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラム可能論理回路（ＰＬＤ）、およびこれらの組合せを用いることができる。
【００９７】
プロセッサ１０１は、バス１０６を介して接続された各装置（例えば、入力装置１０２、通信装置１０４、記憶装置１０５）から入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を、バス１０６を介して接続された各装置（例えば、表示装置１０３、通信装置１０４、記憶装置１０５）に出力する。具体的には、プロセッサ１０１は、コンピュータ１００のＯＳ（オペレーティングシステム）や、図３の情報処理装置の機能を実現する情報処理プログラムなどを実行し、コンピュータ１００を構成する各装置を制御する。
【００９８】
情報処理プログラムは、コンピュータ１００に、情報処理装置の上述の各機能構成を実現させるプログラムである。情報処理プログラムは、コンピュータ読み取り可能な記憶媒体に記憶される。上記の記憶媒体は、例えば、光ディスク、光磁気ディスク、磁気ディスク、磁気テープ、フラッシュメモリ、半導体メモリであるが、これに限られない。プロセッサ１０１が情報処理プログラムを実行することにより、コンピュータ１００が情報処理装置として機能する。
【００９９】
入力装置１０２は、コンピュータ１００に情報を入力するための装置である。入力装置１０２は、例えば、キーボード、マウス、およびタッチパネルであるが、これに限られない。ユーザは、入力装置１０２を用いることにより、各種の設定を行うことができる。
【０１００】
表示装置１０３は、画像や映像を表示するための装置である。表示装置１０３は、例えば、ＬＣＤ（液晶ディスプレイ）、ＣＲＴ（ブラウン管）、およびＰＤＰ（プラズマディスプレイ）であるが、これに限られない。表示装置１０３は、ＧＵＩ又はＣＵＩを表示する。また、表示装置１０３は、記憶装置１０５に記憶された各種のデータを表示してもよい。
【０１０１】
通信装置１０４は、コンピュータ１００が外部装置と無線又は有線で通信するための装置である。通信装置１０４は、例えば、モデム、ハブ、およびルータであるが、これに限られない。センサのデータは、通信装置１０４を介して外部装置から入力され、記憶装置１０５に記憶されてもよい。
【０１０２】
記憶装置１０５は、コンピュータ１００のＯＳや、情報処理プログラム、情報処理プログラムの実行に必要なデータ、および情報処理の実行により生成されたデータなどを記憶するハードウェアの記憶媒体である。記憶装置１０５には、主記憶装置と外部記憶装置とが含まれる。主記憶装置は、例えば、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ＮＡＮＤフラッシュ型メモリであるが、これに限られない。また、外部記憶装置は、例えば、ハードディスク、光ディスク、ＳＳＤ、および磁気テープであるが、これに限られない。記憶装置１０５は、図３の記憶装置１７に対応する。
【０１０３】
なお、コンピュータ１００は、プロセッサ１０１、入力装置１０２、表示装置１０３、通信装置１０４、および記憶装置１０５を、それぞれ１つ又は複数備えてもよいし、プリンタやスキャナなどの周辺機器を接続されていてもよい。また、コンピュータ１００は、表示装置１０３または入力装置１０２を備えない構成でもよい。
【０１０４】
また、図３の情報処理装置は、単一のコンピュータ１００により構成されてもよいし、相互に接続された複数のコンピュータ１００からなるシステムとして構成されてもよい。
【０１０５】
さらに、情報処理プログラムは、コンピュータ１００の記憶装置１０５に予め記憶されていてもよいし、コンピュータ１００の外部の記憶媒体に記憶されていてもよいし、インターネット上にアップロードされていてもよい。いずれの場合も、情報処理プログラムをコンピュータ１００にインストールして実行することにより、情報処理装置の機能が実現される。
【０１０６】
本実施形態における用語“プロセッサ”は汎用目的プロセッサまたは中央処理装置（ＣＰＵ）でもよいし、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の回路でもよいし、これらの組合せでもよい。汎用目的プロセッサまたはＣＰＵの場合、命令コードを記述したプログラムを、汎用目的プロセッサまたはＣＰＵに実行させることにより、本実施形態の情報処理装置の機能を実現できる。
【０１０７】
また、用語“記憶装置”は、ハードディスク装置、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等、データを永続的に記憶可能なストレージ装置でもよいし、メモリでもよい。メモリは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）等の揮発性メモリでもよいし、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ）、ＮＡＮＤ（ｉｎｖｅｒｔｅｄ  ＡＮＤ）型フラッシュメモリ等の不揮発性メモリでもよいし、これらの両方でもよい。これらのメモリは、プロセッサによって読み出しおよび書き込みの少なくとも一方が可能である。
【０１０８】
本発明は、上述した実施形態に限定されるものではなく、本発明の構成要素を種々に具体化できる。また、上記実施形態における各構成要素を適宜、拡張し、変更し、削除し、または組み合わせて、本発明を形成することも可能である。また、別の構成要素を新たに追加して、本発明を形成することも可能である。
【符号の説明】
【０１０９】
１０：情報処理装置
２０：監視対象装置（対象装置）
３０：監視装置
４０:ネットワーク
１１：データ受信部
１２：制御部
１３：データ加工部
１４：外れ値検知部
１５：アラート送信部
１６：学習部
１７：記憶装置
２１：データ測定部
２２：データ送信部
３１：制御部
３２：記憶部
３３：通信部
３４：操作部
３５：表示部
【図１】
2018169994.tif 000009
【図２】
2018169994.tif 000010
【図３】
2018169994.tif 000011
【図４】
2018169994.tif 000012
【図５】
2018169994.tif 000013
【図６】
2018169994.tif 000014
【図７】
2018169994.tif 000015
【図８】
2018169994.tif 000016
【図９】
2018169994.tif 000017
【図１０】
2018169994.tif 000018
【図１１】
2018169994.tif 000019
【図１２】
2018169994.tif 000020
【手続補正書】
【提出日】平成30年2月7日(2018.2.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の対象装置の状態を表すＮ次元のデータ群を、複数のパターンで離散化するデータ加工部と、
前記複数のパターンで前記データ群を離散化した複数の離散化データ群と、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）のパラメータＫの複数の候補値とをそれぞれ１つずつ組み合わせて複数の仮モデルを生成し、前記データ群に基づき前記複数の仮モデルを評価することにより、前記複数の仮モデルからモデルを選択する学習部と
を備えた情報処理装置。
【請求項２】
前記学習部は、前記データ群に基づき前記複数の仮モデルのそれぞれの評価値を計算し、前記評価値に基づき、前記複数の仮モデルから前記モデルを選択する
請求項１に記載の情報処理装置。
【請求項３】
前記学習部は、前記仮モデルに基づき前記データ群の各データのスコアを計算し、前記スコアに基づき、前記仮モデルの評価値を計算する
請求項２に記載の情報処理装置。
【請求項４】
前記評価値は、前記スコアのばらつきを表す値である
請求項３に記載の情報処理装置。
【請求項５】
前記ばらつきを表す値は、標準偏差、不偏標準偏差または分散である
請求項４に記載の情報処理装置。
【請求項６】
前記学習部は、前記標準偏差、前記不偏標準偏差または前記分散が最も小さい前記仮モデルを前記モデルとして選択する
請求項５に記載の情報処理装置。
【請求項７】
前記学習部は、前記各データのスコアを閾値と比較することにより前記各データが外れ値か否かを判断し、外れ値と判断された回数の、外れ値でないと判断された回数と外れ値と判断された回数との合計に対する割合により識別率を計算し、前記識別率は、前記仮モデルの前記評価値である
請求項３に記載の情報処理装置。
【請求項８】
前記データ加工部は、前記データに含まれるＮ個の値のそれぞれを第１の値〜第Ｎの値により除算し、除算後の値を端数処理し、端数処理後の値に前記第１の値〜第Ｎの値のそれぞれを乗じることにより、前記データ群を離散化し、前記第１の値〜第Ｎの値は、前記データ群における前記Ｎ個の値のそれぞれのばらつきを表す値を所定値で除算した値である
請求項１ないし７のいずれか一項に記載の情報処理装置。
【請求項９】
前記対象装置から判定対象となる、第１の測定値〜第Ｎの測定値を含むデータを受信するデータ受信部と、
前記選択したモデルに基づいて前記受信したデータのスコアを計算し、前記スコアを閾値と比較することにより、前記データが外れ値か否かを判定する外れ値検知部と、
を備えた請求項１ないし８のいずれか一項に記載の情報処理装置。
【請求項１０】
複数の対象装置の状態を表すＮ次元のデータ群を、複数のパターンで離散化するステップと、
前記複数のパターンで前記データ群を離散化した複数の離散化データ群と、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）のパラメータＫの複数の候補値とをそれぞれ１つずつ組み合わせて複数の仮モデルを生成し、前記データ群に基づき前記複数の仮モデルを評価することにより、前記複数の仮モデルからモデルを選択するステップと
をコンピュータが実行する情報処理方法。
【請求項１１】
複数の対象装置の状態を表すＮ次元のデータ群を、複数のパターンで離散化するステップと、
前記複数のパターンで前記データ群を離散化した複数の離散化データ群と、ＬＯＦ（Ｌｏｃａｌ  ｏｕｔｌｉｅｒ  ｆａｃｔｏｒ）のパラメータＫの複数の候補値とをそれぞれ１つずつ組み合わせて複数の仮モデルを生成し、前記データ群に基づき前記複数の仮モデルを評価することにより、前記複数の仮モデルからモデルを選択するステップと
をコンピュータに実行させるためのコンピュータプログラム。